← Back to list

Práticas recomendadas: Configurando AWS Lambda SQS batch size

Por que você deve evitar definir o tamanho do batch size = 1 para o padrão de eventos SQS Lambda

Eduardo Armelin in Data & Information Technology · 2025-04-18 18:29 · 1 claps · 3.8 min read
#aws-lambda #sqs-batch-size #sqs-lambda #batch-size #aws-finops
Open on Medium ↗
Wiki topics: CRY · Crypto & Web3 ☁️ · DevOps & Cloud

Práticas recomendadas: Configurando AWS Lambda SQS batch size

Por que você deve evitar definir o tamanho do batch size = 1 para o padrão de eventos SQS/Lambda

AWS Lamda, AWS SQS, Batch Size. `(imagem construida pelo Chat GPT por Suzzy Cipriano)

AWS Lamda, AWS SQS, Batch Size. `(imagem construida pelo Chat GPT por Suzzy Cipriano)

Ao usar o Lambda com o SQS como fonte de eventos, um dos parâmetros que podem ser configurados é o tamanho do batch size. Este parâmetro controla o número máximo de registros que o serviço de polling do Lambda acumulará antes de invocar a função do Lambda. O tamanho padrão do batch size para a fonte de eventos do SQS é 10. No entanto, já vi várias equipes definindo o tamanho do batch size = 1.

Definir o tamanho do batch size = 1 deve sempre ser evitado ao usar o Lambda com uma fonte de eventos SQS, pois isso impacta negativamente o custo e o desempenho. Vejamos dois cenários para entender como o custo e o desempenho são impactados pelo tamanho do batch size.

Cenário de configuração do tamanho do batch size e descrições

Uma função Lambda é configurada com uma fonte de eventos SQS e um envio de 200 mensagens é enviado para a fila SQS.

  • Cenário 1 usa tamanho do batch size = 10
  • Cenário 2 usa tamanho do batch size = 1

Métricas observadas para a função Lambda usando o CloudWatch:

Cenário de invocação e exemplos

  • O cenário 1 (tamanho do batch size= 10) possui 21 invocações.
  • O cenário 2 (tamanho do batch size= 1) possui 200 invocações.

Observação: Embora definamos o tamanho do batch size, a AWS não garante que todos os tamanhos de batch size sejam exatamente iguais. No entanto, o batch size nunca excederá o limite de tamanho definido.

No caso do cenário 1 (batch size = 10), pode-se esperar 20 batch size, cada um com tamanho 10, totalizando 200 mensagens. Em vez disso, observamos 24 invocações. Isso mostra que, embora possamos especificar um tamanho de batch size, não há garantia de que todos os batch size terão o mesmo tamanho.

No caso do Cenário 2 (tamanho do batch size=1), temos exatamente 200 invocações, pois o limite do tamanho do batch size não pode ser excedido.

Cenário e exemplos de duração do Lambda

A duração média para o cenário 1 (tamanho batch size = 10) é de 422 ms.

  • A duração é maior, pois cada invocação do Lambda processa um batch size de 10 mensagens.

A duração média para o cenário 2 (tamanho do batch size = 1) é de 106 ms.

  • A duração é menor que a do Cenário 1, pois cada função Lambda processa apenas uma mensagem.

A simultaneidade aumenta de 3 para 6 à medida que alteramos o tamanho do batch size de 10 para 1.

Resumo da comparação de custos e desempenho do Lambda

  • Com base nos dados acima, vemos que usar tamanho de batch size = 1 é aproximadamente 200% mais caro do que usar tamanho de batch size = 10.
  • Além disso, usar um tamanho de batch size baixo pode esgotar a simultaneidade do Lambda para a conta da AWS se houver um alto volume de transferência de mensagens.
  • Por padrão, o limite total de simultaneidade do Lambda é de 1.000 por conta; no entanto, esse é um limite flexível e pode ser modificado solicitando um aumento de cota.

Considerações sobre o tamanho do batch size do SQS

Se você estiver definindo tamanho de batch size = 1, para que, em caso de falhas, queira reprocessar um único evento, considere usar falhas de item de batch size. Falhas de item de batch size permitem que a função do Lambda reprocesse apenas mensagens com falha, em vez de reprocessar o batch size inteiro.

Evite configurar o tamanho de batch size SQS 1 para maior eficiência

Evite configurar o tamanho de batch size SQS 1 para Lambda com uma fonte de eventos SQS, pois

  • É caro
  • Pode levar a tempos de processamento mais longos para grandes volumes de mensagens (se a função Lambda precisar ser escalonada rapidamente)
  • Pode esgotar a simultaneidade disponível para funções Lambda na conta AWS

Habilite falhas de itens em batch size para lidar com registros de erros e melhorar a eficiência

Originally published at https://www.capitalone.com

Autoria: Sushma Onkar.


메타데이터
post_id
53580dce414c
slug
práticas-recomendadas-configurando-aws-lambda-sqs-batch-size-53580dce414c
url
https://medium.com/engenharia-de-dados-ci%C3%AAncia-de-dados-an%C3%A1lise-de/pr%C3%A1ticas-recomendadas-configurando-aws-lambda-sqs-batch-size-53580dce414c
canonical_url
https://medium.com/engenharia-de-dados-ci%C3%AAncia-de-dados-an%C3%A1lise-de/pr%C3%A1ticas-recomendadas-configurando-aws-lambda-sqs-batch-size-53580dce414c
author_url
https://medium.com/@eduardo-armelin
status
ok
fetched_at
2026-07-10 17:18:11