Como usar n8n com AWS Lambda para funções serverless dentro de workflows

Você pode integrar n8n com AWS Lambda para executar funções serverless diretamente nos seus workflows, eliminando a necessidade de gerenciar servidores e reduzindo custos. Com essa combinação, você envia dados via HTTP, processa informações sem infraestrutura própria e escalona automaticamente conforme a demanda.

O n8n atua como orquestrador, enquanto a Lambda executa tarefas pontuais como processamento de dados, validações ou chamadas a APIs externas. Essa arquitetura é ideal para automações que exigem baixo custo, alta escalabilidade e resposta rápida, sem complexidade de configuração.

Por que combinar n8n e AWS Lambda para automação?

Usar n8n com AWS Lambda garante custo zero para inatividade e paga apenas pelo tempo de execução (a partir de US$0,20 por 1M de requisições). Enquanto Zapier e Make cobram por execução ativa e têm limites de operações, a Lambda permite milhões de execuções mensais gratuitas no plano free tier da AWS.

Essa combinação é poderosa para casos como:

  • Processamento de dados em lote: transforme planilhas ou arquivos JSON sem criar servidores.
  • Validações e APIs internas: crie endpoints serverless para validar CPFs, endereços ou integrar sistemas legados.
  • Automações reativas: dispare funções Lambda ao receber e-mails, notificações ou webhooks.

Comparação com outras ferramentas

Critérion8n + AWS LambdaZapierMake (ex-Integromat)
Custo inicialFree tier AWS (1M requisições/mês)Planos a partir de US$20/mêsPlanos a partir de US$16/mês
EscalabilidadeMilhões de execuções simultâneasLimite de tarefas/mêsLimite de operações/mês
PersonalizaçãoCódigo próprio (Python/Node.js)Funções pré-definidasMódulos visuais
InfraestruturaServerless (sem gerenciamento)Serverless (gerenciado)Serverless (gerenciado)

Curiosidade técnica: A Lambda usa contêineres efêmeros que iniciam em ~100ms e escalam para milhares de instâncias em segundos, ideal para picos de automação no n8n.

Pré-requisitos: o que você precisa antes de começar

Antes de integrar, você precisa ter:

  1. Conta AWS ativa (cadastre-se em aws.amazon.com e crie um usuário root).
  2. Credenciais IAM configuradas com permissões para Lambda e API Gateway (guarde a Access Key ID e Secret Access Key).
  3. Função Lambda pronta (ou crie uma seguindo o passo a passo abaixo).
  4. n8n instalado (local, Docker ou n8n Cloud).

Dica: Ative o AWS Cost Explorer para monitorar gastos da Lambda e evite surpresas no cartão.

Passo a passo: criando uma função Lambda para usar no n8n

Vamos criar uma função Lambda em Python que recebe dados via HTTP e retorna uma resposta processada. Você pode usar Node.js também — o processo é similar.

Passo 1: Criar a função Lambda

Acesse o AWS Console → Lambda → "Criar função". Escolha:

  • Nome: `processar-dados-n8n`
  • Runtime: Python 3.12
  • Arquitetura: x86_64

Clique em "Criar função".

Passo 2: Adicionar código mínimo

No editor de código, substitua o template padrão por:

def lambda_handler(event, context):
    # Extrair dados do body (JSON)
    body = event.get('body', '{}')
    dados = json.loads(body)
# Processamento simples (ex: adicionar timestamp)
resultado = {
    'status': 'sucesso',
    'dados_processados': dados,
    'timestamp': datetime.now().isoformat()
}
return {
    'statusCode': 200,
    'headers': {'Content-Type': 'application/json'},
    'body': json.dumps(resultado)
}

Clique em "Deploy".

Curiosidade: Para Node.js, use este template mínimo:

exports.handler = async (event) => {
    const body = JSON.parse(event.body);
    return {
        statusCode: 200,
        body: JSON.stringify({
            status: 'sucesso',
            dados: body,
            timestamp: new Date().toISOString()
        })
    };
};

Passo 3: Configurar trigger HTTP com API Gateway

Vá em "Configurar" → "Adicionar trigger" → Escolha "API Gateway":

  • API: Criar nova API
  • Tipo de segurança: Aberto (ou "Usar uma chave de API" para restringir acesso)
  • Método HTTP: POST
  • CORS: Habilite (para evitar erros de origem cruzada no n8n)

Clique em "Adicionar". Anote a URL do endpoint (ex: `https://abc123.execute-api.us-east-1.amazonaws.com/prod/processar`).

Passo 4: Ajustar tempo de execução e memória

Em "Configuração" → "Tempo de execução geral":

  • Timeout: Aumente para 15 segundos (padrão é 3).
  • Memória: 128MB é suficiente para tarefas leves (aumente para 512MB se processar arquivos grandes).

Clique em "Salvar".

Passo 5: Testar o endpoint

Abra o API Gateway → sua API → "Testar". Envie um JSON simples como:

{ "nome": "João", "idade": 30 }

O retorno deve ser:

{ "status": "sucesso", "dados_processados": { "nome": "João", "idade": 30 }, "timestamp": "2024-05-20T12:00:00.000Z" }

Conectando o n8n à AWS Lambda: configuração detalhada

No n8n, adicione um nó HTTP Request para chamar a Lambda. Configure assim:

Passo 1: Adicionar nó HTTP Request

Abra seu workflow no n8n e arraste um nó HTTP Request. Renomeie para "Chamar Lambda".

Passo 2: Preencher URL e método

No nó HTTP Request:

  • URL: Cole a URL do endpoint da Lambda (ex: `https://abc123.execute-api.us-east-1.amazonaws.com/prod/processar`).
  • Método: Selecione POST.
  • Authentication: Escolha "Header Auth" e adicione:
    • Name: `x-api-key`
    • Value: Cole a chave da API criada no API Gateway (se você a configurou).

Passo 3: Configurar corpo (body) e cabeçalhos

No campo "Body" do nó HTTP Request, envie os dados como JSON. Exemplo para processar um contato:

{
  "nome": "Maria Silva",
  "email": "maria@exemplo.com",
  "acao": "cadastrar"
}

Adicione um cabeçalho opcional para identificar a origem:

  • Name: `User-Agent`
  • Value: `n8n/1.0`

Passo 4: Capturar resposta no próximo nó

Conecte o nó HTTP Request a um nó Set ou Code para manipular a resposta da Lambda. Acesse os dados assim:

{{ $('Chamar Lambda').json.status }}
{{ $('Chamar Lambda').json.dados_processados }}

Dica: Use um nó IF para tratar respostas com `statusCode` diferente de 200 (erro).

Passo 5: Usar variáveis de ambiente no n8n

Para não expor a URL da Lambda, crie uma variável de ambiente no n8n:

  1. Vá em "Settings" → "Variables".
  2. Adicione uma variável chamada `LAMBDA_URL` com o valor do endpoint.
  3. No nó HTTP Request, use `{{ $env.LAMBDA_URL }}` na URL.

Enviando dados da Lambda para o n8n: retornos e manipulação

Para que o n8n processe a resposta da Lambda, sua função deve retornar um JSON com statusCode 200 e o campo body com os dados. No n8n, use expressões como {{ $('Chamar Lambda').json }} para acessar os campos retornados.

Estrutura de resposta ideal na Lambda

A função Lambda deve retornar sempre:

{
  "statusCode": 200,
  "body": JSON.stringify({
    "status": "sucesso",
    "dados": { ... },
    "metadados": { "timestamp": "2024-05-20T12:00:00Z" }
  })
}

Exemplo prático: Se sua Lambda valida CPFs, retorne:

{
  "statusCode": 200,
  "body": JSON.stringify({
    "valido": true,
    "cpf": "123.456.789-09",
    "mensagem": "CPF válido"
  })
}

Capturando dados no n8n

Conecte o nó HTTP Request a um nó Set para armazenar os dados retornados. Configure assim:

  1. Nó Set: Adicione variáveis com os dados da Lambda:
    • Nome: `cpf_valido`
    • Valor: {{ $('Chamar Lambda').json.valido }}
    • Nome: `mensagem_cpf`
    • Valor: {{ $('Chamar Lambda').json.mensagem }}
  2. Nó Code (opcional): Use JavaScript para manipular os dados:
    const response = $('Chamar Lambda').json;
    if (response.valido) {
      return [{ json: { acao: 'prosseguir', cpf: response.cpf } }];
    } else {
      return [{ json: { acao: 'recusar', motivo: response.mensagem } }];
    }
    

Curiosidade: A Lambda truncada o tempo de execução em máximo 15 minutos, mesmo que você configure um timeout maior. Use Step Functions se precisar de mais tempo.

Dicas avançadas: otimizando custos e performance

A AWS Lambda é econômica, mas configurações erradas explodem o custo. Ajuste região, memória e timeout para pagar apenas pelo necessário. Use o AWS Cost Explorer para rastrear gastos por serviço.

Reduzindo custos da Lambda

AjusteImpacto no custoComo fazer
Região AWSAté 50% mais baratoUse us-east-1 ou sa-east-1 (São Paulo) para workflows no Brasil (evite ap-southeast-1 que é 3x mais caro).
MemóriaCusto linear com memóriaMonitore no CloudWatch e reduza de 1024MB para 128MB se a função usar <50MB.
TimeoutPaga por cada 1ms além de 100msMantenha 3 segundos para funções rápidas (ex: validações). Aumente para 15s apenas se necessário.
Cold StartGasta mais em picos de usoUse Provisioned Concurrency (R$0,015 por GB-hora) para funções críticas.
LogsPaga por GB de logs armazenadosConfigure log retention para 1 dia (padrão é 30 dias).

Dica pro: Se sua função roda menos de 100ms, teste com 64MB de memória — em muitos casos, o custo cai pela metade sem perda de performance.

Monitoramento e alertas

Configure o AWS CloudWatch para monitorar:

  • Número de invocações e erros (métrica Invocations).
  • Duração média (métrica Duration).
  • Taxa de erros (métrica Errors).

Crie um Alerta CloudWatch para notificá-lo se a função falhar 3 vezes em 5 minutos. Acesse em CloudWatch → Alarmes → Criar Alarme.

Performance: reduzindo latência no n8n

Para workflows críticos, implemente estas otimizações no n8n:

  • Cache de respostas: Use um nó Cache para guardar resultados da Lambda e evitar chamadas repetidas.
  • Parallel Processing: Execute múltiplas Lambdas em paralelo com nós Split In Batches + HTTP Request.
  • Retry Policy: Configure no nó HTTP Request: Max Tries = 3 e Retry On = Status Codes 5xx.

Erros comuns e como resolvê-los no n8n + Lambda

A integração n8n-Lambda tem armadilhas clássicas: permissões IAM erradas, CORS não configurado ou timeouts. Aqui estão os erros mais frequentes e como debugá-los.

Erro 403: Access Denied (IAM)

Causa: A função Lambda não tem permissão para ser invocada ou o IAM do n8n está incorreto.

SoluçãoComando/Ação
Verifique a política IAM da função LambdaNo AWS Console, vá em IAM → Funções → processar-dados-n8n → aba "Permissões". Adicione a política AWSLambdaBasicExecutionRole.
Teste as credenciais do n8nNo nó HTTP Request, use a Access Key ID e Secret Access Key de um usuário com permissão lambda:InvokeFunction.
Debug com AWS CLIExecute: aws lambda invoke --function-name processar-dados-n8n --payload '{"teste":1}' response.json. Se der erro, o problema é na Lambda.

Erro 502: Bad Gateway (Timeout ou formato inválido)

Causa: O n8n não recebe resposta válida da Lambda dentro do tempo esperado (padrão 30s no n8n).

SoluçãoComando/Ação
Aumente o timeout no nó HTTP RequestNo n8n, configure o nó HTTP Request com Timeout = 60000 (60 segundos).
Verifique o timeout da LambdaNa AWS Console → Lambda → sua função → aba "Configuração" → "Tempo de execução geral". Aumente para 15s.
Formate o body corretamenteNo nó HTTP Request, envie o body como JSON válido: { "nome": "Teste" } (sem aspas extras).

Curiosidade: Erros 502 também ocorrem se a Lambda lançar uma exceção não capturada. Sempre use try/except no Python ou try/catch no Node.js.

Erro 400: Bad Request (CORS ou body mal formatado)

Causa: O API Gateway rejeita a requisição por CORS não configurado ou JSON inválido.

SoluçãoComando/Ação
Habilite CORS no API GatewayNo AWS Console → API Gateway → sua API → aba "CORS". Clique em "Habilitar CORS" e implante as mudanças.
Valide o body no código da LambdaAdicione um try/except para capturar erros de parsing:
try:
    dados = json.loads(event['body'])
except Exception as e:
    return {
        'statusCode': 400,
        'body': json.dumps({ 'erro': 'JSON inválido', 'detalhe': str(e) })
    }
Teste com Postman ou cURLEnvie a requisição manualmente para isolar o problema: curl -X POST https://abc123.execute-api.us-east-1.amazonaws.com/prod/processar -H "Content-Type: application/json" -d '{"nome":"Teste"}'

Erro: Lambda não aparece no n8n ou URL inválida

Causa: A URL do endpoint mudou ou a função foi deletada.

  • Verifique a URL: No AWS Console → API Gateway → sua API → aba "Stages". Copie a URL completa (inclua a stage, ex: /prod/processar).
  • Reconstrua o endpoint: Se a API Gateway for recriada, a URL muda. Atualize no nó HTTP Request do n8n e nas variáveis de ambiente.
  • Teste a URL no browser: Cole a URL no navegador com ?teste=1 para ver se a Lambda responde.

Alternativas e quando usar Lambda vs outras ferramentas

Lambda é poderosa, mas nem sempre é a melhor opção. Compare com EC2, Fargate, Step Functions ou serviços como Make/Zapier para escolher a ferramenta certa para seu caso de uso.

Lambda vs EC2: quando usar cada uma

CritérioAWS LambdaEC2 (t2/t3)
Custo inicialFree tier + US$0,20 por 1M de requisiçõesUS$3,50/mês (t2.micro) + custos de EBS
EscalabilidadeMilhões de execuções simultâneas (automático)Limite de instâncias (você gerencia)
ManutençãoServerless (sem atualizações)Você gerencia SO, patches, segurança
Use quando...Precisa de resposta rápida, baixo custo e sem infraPrecisa rodar 24/7 ou com recursos customizados (ex: Docker)

Exemplo: Use Lambda para validar CPFs em lote à noite. Use EC2 se precisar rodar um script Python que demora 2 horas todos os dias.

Lambda vs Fargate: containers serverless

Fargate é ideal se sua automação precisa de containers Docker personalizados ou mais de 15 minutos de execução. A Lambda tem limite de 15 minutos; o Fargate não.

CritérioAWS LambdaAWS Fargate
Tempo máximo15 minutos (hard limit)Sem limite (paga por segundo)
Preço por 1 horaUS$0,00001667 (128MB) a US$0,000133 (3GB)US$0,04048 (0.25 vCPU + 0.5GB) a US$1,6192 (8 vCPU + 30GB)
Casos de usoAPIs rápidas, processamento de eventosContainers longos, batch jobs, ML

Curiosidade: O Fargate cobra por vCPU e memória alocada, mesmo que o container não use tudo. A Lambda cobra apenas pelo tempo de execução.

Lambda vs Step Functions: orquestração complexa

Step Functions é a escolha certa se seu workflow tem múltiplas etapas, decisões ou loops. A Lambda é melhor para tarefas pontuais.

CritérioAWS LambdaAWS Step Functions
Preço por 1M de transiçõesUS$0,20 (invocação)US$0,025 por transição de estado
ComplexidadeSimples (1 função)Complexa (máquina de estados)
Use quando...Precisa apenas chamar uma funçãoPrecisa de retry, parallel branches ou condições

Exemplo: Para um workflow que baixa um arquivo, valida, envia para um banco e notifica o usuário, use Step Functions. Para apenas validar um CPF, use Lambda.

Lambda vs Make/Zapier: quando sair da ferramenta visual

Make e Zapier são fáceis, mas têm limites de operações e personalização. A Lambda + n8n é ideal para automações avançadas ou alto volume.

Critérion8n + AWS LambdaMake (ex-Integromat)Zapier
Número de execuções/mês1M free (Lambda) + ilimitado (n8n)1000-10000 (plano básico)750-50000 (plano gratuito)
PersonalizaçãoCódigo Python/Node.jsMódulos visuais + Code StepsMódulos visuais (sem código)
Custo para 100k execuções/mêsUS$20 (Lambda) + grátis (n8n)US$160 (plano Pro)US$200 (plano Professional)
Use quando...Precisa de alto volume, código ou integrações customAutomações simples sem códigoAutomações simples com apps populares

Dica: Se seu caso de uso é simples (ex: "enviar e-mail quando novo lead"), use Zapier ou Make. Se precisa de processamento de dados ou integrações não suportadas, use Lambda + n8n.

Link útil: Veja nossas recomendações de melhores IAs para gerar imagens grátis se precisar de automações com geração de conteúdo visual.

Perguntas frequentes sobre integração de n8n com AWS Lambda

Preciso saber programar para usar n8n com AWS Lambda?

Não é obrigatório. Você pode usar templates prontos em Python ou Node.js para funções simples. Para automações mais complexas, conhecimento básico de programação ajuda, mas o n8n gerencia a integração. A maioria dos casos de uso (validações, processamento de dados) pode ser resolvida com código mínimo.

Quais são os custos de usar Lambda no n8n?

A AWS Lambda tem um free tier de 1 milhão de requisições por mês. Após isso, custa US$0,20 por 1 milhão de requisições. O n8n é gratuito em sua versão open-source. Para 100 mil execuções/mês, o custo total fica em torno de US$20, bem abaixo de ferramentas como Zapier ou Make.

Como configurar permissões IAM para o n8n acessar Lambda?

Crie um usuário IAM com a política `AWSLambdaBasicExecutionRole` e adicione a permissão `lambda:InvokeFunction`. No n8n, use as credenciais desse usuário no nó HTTP Request. Sempre restrinja permissões ao mínimo necessário (princípio do menor privilégio).

Posso usar Lambda com n8n de forma gratuita?

Sim. A AWS oferece 1 milhão de requisições gratuitas por mês na Lambda. O n8n é open-source e pode ser usado gratuitamente em sua versão self-hosted. Para automações simples, você pode operar integralmente no free tier.

Qual é o limite de execução de uma função Lambda no n8n?

A Lambda tem um limite hard de 15 minutos por execução. Para tarefas mais longas, use AWS Fargate ou Step Functions. No n8n, configure o timeout do nó HTTP Request para corresponder ao da Lambda (máximo 15 segundos recomendado para evitar custos desnecessários).

Como debugar erros ao chamar Lambda do n8n?

Verifique os logs da Lambda no AWS CloudWatch. No n8n, use o nó Debug para inspecionar a resposta. Erros comuns incluem 403 (IAM), 502 (timeout) e 400 (JSON inválido). Teste o endpoint da Lambda diretamente com Postman ou cURL antes de integrar ao n8n.

É possível retornar dados de uma função Lambda para o n8n?

Sim. A Lambda deve retornar um JSON com statusCode 200 e body contendo os dados. No n8n, acesse os dados retornados com expressões como {{ $('Chamar Lambda').json.campo_desejado }}. Use nós Set ou Code para manipular a resposta conforme necessário.

Onde encontro a documentação oficial para integrar n8n e AWS Lambda?

A documentação oficial da AWS Lambda está em docs.aws.amazon.com/lambda. Para n8n, consulte docs.n8n.io. Este guia prático complementa ambas as documentações com exemplos práticos para automação serverless.

Automação serverless: o futuro é agora

Combinar n8n e AWS Lambda transforma a forma como você automatiza processos: sem servidores para gerenciar, escalabilidade instantânea e custos que só pagam pelo que você usa. Essa arquitetura é ideal para empreendedores e desenvolvedores que buscam liberdade sem complexidade, permitindo focar no que realmente importa — seus negócios e produtos.

Resumo rápido das vantagens:

  • Custo zero na inatividade: Pague apenas quando a Lambda for executada.
  • Escalabilidade automática: Milhões de execuções simultâneas sem configuração adicional.
  • Flexibilidade total: Use Python, Node.js ou qualquer runtime suportado pela Lambda.
  • Integração perfeita: n8n orquestra, Lambda executa — tudo em um único workflow.

Pronto para levar suas automações ao próximo nível? Explore nossa categoria de automação serverless para mais tutoriais, templates e dicas avançadas. E se tiver dúvidas, nossa comunidade está sempre pronta para ajudar!

Quer mais sobre o assunto? Veja todos os artigos de Ferramentas de IA ou a lista completa de artigos.