1. Introdução
Neste codelab, você vai configurar o n8n no Google Cloud Run. O n8n é uma ferramenta de automação de fluxo de trabalho de código aberto que permite aos usuários conectar diferentes aplicativos e serviços para automatizar tarefas repetitivas.
O codelab é baseado no guia de documentação do n8n, que explica como hospedar o n8n no Google Cloud Run. Vamos instalar e configurar uma versão do n8n que é uma implantação mais durável e de nível de produção do n8n no Cloud Run. Ele inclui recursos como um banco de dados para persistência e um gerenciador de secrets para dados sensíveis.
O que você aprenderá
- Implante o n8n no Google Cloud Run, uma plataforma de computação sem servidor totalmente gerenciada que executa contêineres sem estado na infraestrutura do Google.
O que você vai aprender
- Provisionamento e preenchimento de um banco de dados do Cloud SQL para PostgreSQL que vai atuar como uma versão persistente e durável para nossa instalação do n8n.
- Provisione a imagem do contêiner n8n no Google Cloud Run.
- Teste a instalação do n8n no Google Cloud Run.
O que é necessário
- Navegador da Web Google Chrome
- Uma conta do Gmail
- Um projeto do Cloud com faturamento ativado
2. Antes de começar
Criar um projeto
- No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
- Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto .
- Você vai usar o Cloud Shell, um ambiente de linha de comando executado no Google Cloud que vem pré-carregado com bq. Clique em "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

- Depois de se conectar ao Cloud Shell, verifique se sua conta já está autenticada e se o projeto está configurado com seu ID do projeto usando o seguinte comando:
gcloud auth list
- Execute o comando a seguir no Cloud Shell para confirmar se o comando gcloud sabe sobre seu projeto.
gcloud config list project
- Se o projeto não estiver definido, use este comando:
gcloud config set project <YOUR_PROJECT_ID>
- Ative as APIs necessárias com o comando mostrado abaixo. Isso pode levar alguns minutos.
gcloud services enable run.googleapis.com \
sqladmin.googleapis.com \
secretmanager.googleapis.com
Após a execução do comando, você vai ver uma mensagem semelhante à mostrada abaixo:
Operation "operations/..." finished successfully.
Se alguma API for esquecida, você sempre poderá ativá-la durante a implementação. Consulte a documentação para ver o uso e os comandos gcloud.
Por fim, vamos definir algumas variáveis de ambiente que serão usadas nos scripts que vamos executar nas próximas etapas. No terminal do Cloud Shell, execute os dois comandos a seguir. Não se esqueça de substituir GCP_PROJECT_ID e GCP_REGION pelos valores respectivos do ID do projeto e da região (por exemplo, us-central1) em que você quer fazer essa implantação. Vamos usar us-central1 para a implantação.
export PROJECT_ID=GCP_PROJECT_ID
export REGION=us-central1
3. crie uma instância do Cloud SQL
Vamos usar uma instância do Google Cloud SQL para PostgreSQL, que será nossa camada de persistência para armazenar a instância do n8n e os dados de execução. Isso é necessário para que nossa configuração seja durável.
O Cloud SQL para PostgreSQL é um serviço de banco de dados totalmente gerenciado que ajuda a configurar, manter, gerenciar e administrar seus bancos de dados relacionais PostgreSQL no Google Cloud Platform.
Execute o seguinte comando no Cloud Shell para criar a instância:
gcloud sql instances create n8n-db \
--database-version=POSTGRES_15 \
--tier db-g1-small \
--region=us-central1 \
--edition=ENTERPRISE \
--root-password=postgres
Esse comando leva aproximadamente 5 minutos para ser executado. Depois que o comando for executado, você vai ver uma saída indicando que ele foi concluído, além das informações da instância do Cloud SQL, como NAME, DATABASE_VERSION, LOCATION etc.
Usamos o valor root-password como postgres. Se você mudar para outra coisa, guarde essa informação.
4. Configurar o banco de dados do n8n e as credenciais de usuário do banco de dados
Agora que temos nossa instância do Cloud SQL para PostgreSQL pronta, podemos criar nosso banco de dados n8n nela, além de armazenar a senha do banco de dados e a chave de criptografia no Google Cloud Secrets Manager.
Primeiro, vamos criar um banco de dados chamado n8n na instância do Cloud SQL (n8n-db) que criamos. Todos os comandos abaixo devem ser executados no terminal do Google Cloud Shell.
gcloud sql databases create n8n --instance=n8n-db
Se a criação for bem-sucedida, você vai receber uma mensagem como esta:
Creating Cloud SQL database...done.
Created database [n8n].
instance: n8n-db
name: n8n
project: YOUR_GCP_PROJECT_ID
Agora que o banco de dados foi criado, vamos criar uma conta de usuário para ele. Vamos usar as seguintes credenciais:
- ID do usuário :
n8n-user - senha :
n8n
Observação: se você quiser usar outra senha mais forte (recomendada para produção), use-a em vez da senha escolhida aqui, ou seja, n8n. Mas use-a de forma consistente nos próximos comandos também.
O comando para criar o usuário do banco de dados é fornecido abaixo:
gcloud sql users create n8n-user \
--instance=n8n-db \
--password="n8n"
Neste ponto, é uma boa ideia armazenar as credenciais da senha do banco de dados do usuário e da chave de criptografia no Google Cloud Secret Manager, que é um sistema de armazenamento seguro e conveniente para chaves de API, senhas, certificados e outros dados sensíveis.
Começamos com o seguinte comando, que usa a senha que usamos (n8n)) e a transmite para o comando gcloud secrets create. Nossa chave secreta será n8n-db-password.
printf "n8n" | gcloud secrets create n8n-db-password --replication-policy="automatic" --data-file=-
Da mesma forma, vamos usar o próximo conjunto de comandos para gerar uma chave de criptografia e criar uma variável secreta n8n-encryption-key que vai armazenar o valor.
openssl rand -base64 -out my-encryption-key 42
gcloud secrets create n8n-encryption-key \
--data-file=my-encryption-key \
--replication-policy="automatic"
5. Criar uma conta de serviço para o Google Cloud Run
Vamos implantar o n8n no Google Cloud Run na próxima etapa. Para se preparar para isso, vamos criar uma conta de serviço que o Cloud Run usará para executar fluxos de trabalho do n8n. Para isso, queremos garantir que a conta de serviço criada tenha apenas as funções/permissões de requisito mínimo no Google Cloud.
De acordo com nossos requisitos atuais, vamos precisar dos seguintes papéis para a conta de serviço que criarmos:
roles/cloudsql.client: necessário para que a conta de serviço acesse nosso banco de dados do Cloud SQL.roles/secretAccessor: precisamos fornecer essa função para acessar as chaves do Secret Manager paran8n-db-passworden8n-encryption-key.
Vamos lá! Todos os comandos abaixo precisam ser executados no Google Cloud Shell. O primeiro cria a conta de serviço e, em seguida, fornecemos os papéis necessários, conforme discutido. Execute cada um dos comandos em sequência. Se for solicitado a especificar uma condição para qualquer um dos comandos abaixo, escolha "None".
gcloud iam service-accounts create n8n-service-account \
--display-name="n8n Service Account"
export SA_NAME=n8n-service-account@$PROJECT_ID.iam.gserviceaccount.com
gcloud secrets add-iam-policy-binding n8n-db-password \
--member="serviceAccount:$SA_NAME" \
--role="roles/secretmanager.secretAccessor"
gcloud secrets add-iam-policy-binding n8n-encryption-key \
--member="serviceAccount:$SA_NAME" \
--role="roles/secretmanager.secretAccessor"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SA_NAME" \
--role="roles/cloudsql.client"
Agora estamos prontos para implantar a imagem do contêiner n8n no Google Cloud Run.
6. Implantar o n8n no Google Cloud Run
Execute o comando a seguir no Google Cloud Shell:
gcloud run deploy n8n \
--image=n8nio/n8n:latest \
--command="/bin/sh" \
--args="-c,sleep 5;n8n start" \
--region=$REGION \
--allow-unauthenticated \
--port=5678 \
--memory=2Gi \
--no-cpu-throttling \
--set-env-vars="N8N_PORT=5678,N8N_PROTOCOL=https,DB_TYPE=postgresdb,DB_POSTGRESDB_DATABASE=n8n,DB_POSTGRESDB_USER=n8n-user,DB_POSTGRESDB_HOST=/cloudsql/$PROJECT_ID:$REGION:n8n-db,DB_POSTGRESDB_PORT=5432,DB_POSTGRESDB_SCHEMA=public,GENERIC_TIMEZONE=UTC,QUEUE_HEALTH_CHECK_ACTIVE=true" \
--set-secrets="DB_POSTGRESDB_PASSWORD=n8n-db-password:latest,N8N_ENCRYPTION_KEY=n8n-encryption-key:latest" \
--add-cloudsql-instances=$PROJECT_ID:$REGION:n8n-db \
--service-account=$SA_NAME
A implantação deve levar cerca de um minuto. Se a implantação for bem-sucedida, você vai ver uma mensagem semelhante a esta:
Deploying container to Cloud Run service [n8n] in project [YOUR_PROJECT_ID] region [us-central1]
Deploying new service...
Setting IAM Policy...done
Creating Revision...done
Routing traffic...done
Done.
Service [n8n] revision [n8n-00001-8nh] has been deployed and is serving 100 percent of traffic.
Service URL: https://n8n-<SOME_ID>.us-central1.run.app
Anote o URL do serviço na saída acima, já que você vai usá-lo na próxima etapa para iniciar o console do n8n.
7. Executar um fluxo de trabalho do n8n
Abra um navegador e acesse o URL do serviço que você recebeu na etapa anterior. Também é possível acessar o URL do serviço na página inicial do Cloud Run, em que o n8n aparece como um dos serviços.
Observação: se você receber um erro dizendo tela Cannot GET / ou n8n is starting up, isso geralmente indica que o n8n ainda está sendo iniciado. Atualize a página. Ela deve carregar em breve.
Eventualmente, você vai ver uma tela como a mostrada abaixo, em que é possível configurar a conta de proprietário:

Preencha os detalhes necessários, anote a senha e conclua a configuração. Você pode pular algumas etapas, incluindo a que pede o envio de uma chave de licença.
Se tudo correr bem, você vai ver a página inicial do n8n, como mostrado abaixo:

Se você já conhece o n8n, vai conseguir concluir o laboratório.
Se quiser fazer um pequeno test drive do n8n, tente o seguinte fluxo de trabalho:
- Clique em "Credenciais" e em Adicionar primeira credencial.

- Vamos configurar uma credencial de chave da API Gemini. Digite "gemini" para abrir a opção da API do Google Gemini (PaLM) e clique em Continuar.

- Você pode acessar a chave da API Gemini em https://aistudio.google.com/app/api-keys.
- Depois de receber a chave, cole-a. O n8n vai validar a chave, e a credencial será configurada.
5. Agora, acesse a opção "Fluxos de trabalho" e clique em "Começar do zero" ou crie um novo fluxo de trabalho. Isso vai abrir uma tela em branco, onde você pode criar os dois nós a seguir: um é um gatilho (Simple Chat) e o outro é um agente. Nele, vamos configurar a credencial que criamos para que o modelo de agente seja o Google Gemini. No final, você terá um fluxo de trabalho assim:

- Você pode executar esse fluxo de trabalho no painel de chat e, se tudo der certo, receber uma resposta aos seus comandos. Confira abaixo exemplos de telas de execução:

Isso conclui a validação da implantação do n8n no Google Cloud Run.
8. Limpeza
Se você optou por usar este codelab para aprender a instalar e executar o n8n no Google Cloud Run e não para produção / requisito permanente, é importante excluir os recursos criados durante este workshop para evitar cobranças contínuas na sua conta do Google Cloud.
Vamos excluir a instância do Cloud SQL e o serviço do Cloud Run que implantamos.
Verifique se as seguintes variáveis de ambiente estão definidas corretamente, de acordo com seu projeto e região:
export PROJECT_ID="YOUR_PROJECT_ID"
export REGION="YOUR_REGION"
Os dois comandos a seguir excluem os serviços do Cloud Run que implantamos:
gcloud run services delete n8n --platform=managed --region=${REGION} --project=${PROJECT_ID} --quiet
O comando a seguir exclui a instância do Cloud SQL:
gcloud sql instances delete n8n-db
Os dois comandos a seguir excluem as chaves do Secret Manager que criamos:
gcloud secrets delete n8n-db-password
gcloud secrets delete n8n-encryption-key
9. Parabéns
Parabéns! Você implantou o n8n no Google Cloud Run e validou a configuração com um fluxo de trabalho de exemplo.