Configurar o comportamento de escalabilidade para mapeamentos de origem de eventos do SQS
Para filas padrão, o Lambda usa sondagem longa para sondar uma fila até que ela se torne ativa. Quando as mensagens estão disponíveis, o Lambda começa a processar cinco lotes por vez com cinco invocações simultâneas da sua função. Se ainda houver mensagens disponíveis, o Lambda aumentará o número de processos de leitura de lotes em até 300 instâncias a mais por minuto. O número máximo de lotes que podem ser processados simultaneamente por um mapeamento de fontes de eventos é 1.000.
Para filas FIFO, o Lambda envia mensagens para a função na ordem em que as recebe. Ao enviar uma mensagem para uma fila do FIFO, você especifica umID do grupo de mensagens. O Amazon SQS garante que as mensagens no mesmo grupo sejam entregues ao Lambda em ordem. Quando o Lambda lê suas mensagens em lotes, cada lote poderá conter mensagens de mais de um grupo de mensagens, mas a ordem das mensagens será mantida. Se a função retornar um erro, ela fará todas as tentativas possíveis nas mensagens afetadas antes que o Lambda receba mensagens adicionais do mesmo grupo.
Configuração de simultaneidade máxima para origens de eventos do Amazon SQS
É possível usar a configuração de simultaneidade máxima para controlar o comportamento de escalabilidade de suas fontes de eventos do SQS. A configuração de simultaneidade máxima limita o número de instâncias simultâneas da função que uma origem de evento do Amazon SQS pode invocar. A simultaneidade máxima é uma configuração em nível de origem do evento. Se você tiver diversas origens de eventos do Amazon SQS mapeadas para uma função, cada origem de evento poderá ter uma configuração de simultaneidade máxima separada. É possível usar a simultaneidade máxima para evitar que uma fila use toda a simultaneidade reservada da função ou todo o restante da cota de simultaneidade da conta. Não há custos para configurar a simultaneidade máxima em uma origem de evento do Amazon SQS.
Importante, a simultaneidade máxima e a simultaneidade reservada são duas configurações independentes. Não defina a simultaneidade máxima maior que a simultaneidade reservada da função. Se você configurar a simultaneidade máxima, certifique-se de que a simultaneidade reservada da função seja maior ou igual à simultaneidade máxima total para todas as origens de eventos do Amazon SQS na função. Caso contrário, o Lambda pode aplicar um controle de utilização para as suas mensagens.
Quando a cota de simultaneidade da sua conta é definida com o valor padrão de 1.000, um mapeamento de origem de eventos do Amazon SQS pode ser escalado para invocar instâncias de função até esse valor, a menos que você especifique uma simultaneidade máxima.
Se você receber um aumento na cota de simultaneidade padrão da sua conta, o Lambda talvez não consiga invocar instâncias de funções simultâneas até sua nova cota. Por padrão, o Lambda pode escalar para invocar até 1.250 instâncias de funções simultâneas para um mapeamento de origem de eventos do Amazon SQS. Se isso não for suficiente para seu caso de uso, entre em contato com o suporte da AWS para discutir um aumento na simultaneidade de mapeamento de origem de eventos do Amazon SQS da sua conta.
nota
Para filas FIFO, as invocações simultâneas são limitadas pelo número de IDs de grupos de mensagens (messageGroupId
) ou pela configuração máxima de simultaneidade, o que for menor. Por exemplo, se você tiver seis IDs de grupo de mensagens e a simultaneidade máxima estiver definida como dez, sua função poderá ter no máximo seis invocações simultâneas.
Você pode configurar a simultaneidade máxima em mapeamentos da origem do evento novos e existentes do Amazon SQS.
Configuração da simultaneidade máxima usando o console do Lambda
Abra a página Funções
do console do Lambda. -
Escolha o nome de uma função.
-
Em Function overview (Visão geral da função), escolha SQS. Isso abre a guia Configuration (Configuração).
-
Selecione o acionador do Amazon SQS e escolha Edit (Editar).
-
Em Maximum concurrency (Simultaneidade máxima), insira um número entre dois e mil. Para desativar a simultaneidade máxima, deixe a caixa em branco.
-
Escolha Salvar.
Configuração da simultaneidade máxima usando a AWS Command Line Interface (AWS CLI)
Use o comando update-event-source-mapping--scaling-config
. Exemplo:
aws lambda update-event-source-mapping \ --uuid
"a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"
\ --scaling-config'{"MaximumConcurrency":5}'
Para desativar a simultaneidade máxima, insira um valor vazio para --scaling-config
:
aws lambda update-event-source-mapping \ --uuid
"a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"
\ --scaling-config"{}"
Configuração da simultaneidade máxima usando a API do Lambda
Use a ação CreateEventSourceMapping ou UpdateEventSourceMapping com um objeto ScalingConfig.