Alvo de invocação estável enquanto você implanta novo código Lambda.
→Publique versões numeradas e imutáveis; exponha um alias que aponta para uma versão. Os chamadores invocam o ARN do alias.
Por quê: Versões são snapshots congelados de código + configuração; aliases fornecem indireção para que os chamadores nunca invoquem `$LATEST` diretamente.
Referência↗
Implantação gradual de uma nova versão do Lambda com rollback automático em caso de erros.
→Alias com roteamento de versão ponderado (por exemplo, 90/10). CodeDeploy `LambdaCanary10Percent5Minutes` ou `LambdaLinear*` move o tráfego e monitora alarmes do CloudWatch.
Por quê: O roteamento de tráfego integrado + rollback acionado por alarmes remove a lógica de canary codificada manualmente.
Referência↗
Injetar configurações (URL do DB, feature flags) sem reimplementações.
→Variáveis de ambiente Lambda. Criptografadas em repouso com KMS; referencie um CMK personalizado para criptografia adicional em trânsito na recuperação.
Referência↗
Compartilhar NumPy / pandas / runtime comum em várias Lambdas.
→Empacote como uma Lambda Layer; até 5 layers por função, total de 250 MB descompactado. ARN versionado por layer.
Referência↗
Lambda síncrona sensível à latência — sem cold starts permitidos.
→Concorrência Provisionada no alias. Pré-inicializa N ambientes de execução; paga por GB-segundo.
Por quê: Elimina cold start a um custo previsível. Defina o auto-scaling do aplicativo no alias para se ajustar à carga.
Referência↗
Lambda Java ou Python com código de inicialização pesado; precisa de um cold start rápido sem pagar por Provisioned Concurrency.
→Habilite SnapStart em uma versão publicada. A AWS tira um snapshot do runtime inicializado e o retoma a partir dele.
Por quê: Gratuito para Java; cobrado por restauração para Python/.NET. Reduz cold starts de segundos para <1s sem custo de ociosidade.
Referência↗
Lambda precisa consumir um stream do Kinesis / DynamoDB Stream / fila SQS / tópico MSK.
→Mapeamento de fonte de evento (baseado em pull). Lambda consulta; tamanho do lote + janela máxima de lote ajustam throughput vs latência. Falha → DLQ via destino On-Failure.
Por quê: Para fontes pull, o serviço não pode invocar Lambda diretamente; o mapeamento é o adaptador de polling do Lambda.
Referência↗
Roteamento de sucesso/falha de Lambda assíncrona sem DLQ do Lambda.
→Destinos OnSuccess / OnFailure na função. Alvos: SNS, SQS, EventBridge, outra Lambda. Inclui contexto de invocação.
Por quê: Destinos capturam o evento completo + resposta; o DLQ legado captura apenas o payload do evento.
Referência↗
Escolha o tipo de API Gateway para uma nova API REST.
→HTTP API: mais barata, mais rápida, autenticação JWT integrada, mais simples. REST API: recursos completos (templates de mapeamento, validadores de requisição, WAF, private endpoints, X-Ray, cache de API).
Por quê: Prefira HTTP API, a menos que você precise de um recurso exclusivo da REST. As APIs WebSocket são um produto separado para tempo real com estado.
Referência↗
Promover alterações de API de dev → test → prod sem reimplantar APIs separadas.
→Estágios em uma única API. Implante um estágio para publicar; variáveis de estágio contêm valores específicos do ambiente, como nomes de alias Lambda.
Referência↗
A Lambda de backend espera um formato diferente do que o cliente envia.
→Template de mapeamento de requisição/resposta (apenas REST API). VTL com `$input`, `$context`, `$util` para transformar JSON.
Por quê: Templates de mapeamento são executados no API Gateway — sem salto extra para Lambda, sem latência ou custo adicionais.
Referência↗
Validar um token personalizado (não Cognito, não IAM) antes de rotear a requisição.
→Autorizador Lambda. O tipo TOKEN lê um cabeçalho; o tipo REQUEST lê o contexto completo da requisição. Retorna política IAM + principalId. Cacheado por identidade para TTL.
Referência↗
Validar um JWT de Cognito User Pool em cada requisição.
→Autorizador de Cognito User Pool (REST) ou autorizador JWT (HTTP). O API Gateway valida o token; nenhuma Lambda é necessária.
Por quê: A validação nativa é mais barata e rápida do que um autorizador Lambda para o caso comum de JWT.
Referência↗
Controlar/limitar um consumidor de API parceiro.
→Plano de Uso + Chave de API. O plano vincula chaves a um estágio com limite de taxa (req/seg) + burst + cota (req/dia ou mês).
Referência↗
Reduzir a carga do backend para requisições GET repetidas.
→Cache de nível de estágio (REST API). TTL configurável; chave de cache derivada do método + path + parâmetros de consulta/cabeçalho selecionados.
Referência↗
Atualizar um item somente se uma pré-condição for verdadeira (por exemplo, status == "PENDING").
→PutItem/UpdateItem com `ConditionExpression`. A falha levanta `ConditionalCheckFailedException`.
Por quê: A verificação no lado do servidor evita condições de corrida de leitura-modificação-escrita sem bloqueio.
Referência↗
Tudo ou nada em múltiplos itens do DynamoDB.
→`TransactWriteItems` / `TransactGetItems`. Até 100 itens / 4 MB; 2× o custo de WCU/RCU de escritas/leituras normais.
Referência↗
Incrementar um contador sem leitura-modificação-escrita.
→UpdateExpression `ADD count :inc`. O servidor aplica o delta atomicamente.
Referência↗
Precisa de um padrão de acesso adicional além da chave primária.
→GSI: chave de partição + ordenação alternativa, eventualmente consistente, capacidade separada, pode ser adicionada a qualquer momento. LSI: mesma chave de partição, chave de ordenação alternativa, opção de consistência forte, deve ser criada na criação da tabela.
Referência↗
Indexar apenas itens que possuem um atributo específico (por exemplo, apenas pedidos ATIVOS).
→Índice esparso: omita o atributo nos itens que você deseja excluir. Itens sem o atributo indexado não aparecem no GSI/LSI.
Referência↗
Leitura/escrita em massa de muitos itens.
→`BatchGetItem` (até 100 itens / 16 MB) e `BatchWriteItem` (até 25 itens / 16 MB). Não atômico; falhas parciais são retornadas em `UnprocessedItems`.
Referência↗
Evitar atualizações perdidas de escritores concorrentes.
→Atributo de versão + `ConditionExpression: version = :v`. Escritas com falha são repetidas lendo novamente.
Referência↗
Acionar ações downstream a cada alteração do DynamoDB.
→DynamoDB Streams + mapeamento de fonte de evento Lambda. Visualização do stream: NEW_IMAGE / OLD_IMAGE / NEW_AND_OLD_IMAGES / KEYS_ONLY.
Referência↗
O navegador faz upload/download diretamente para o S3 sem o seu servidor atuar como proxy de bytes.
→SDK `getSignedUrl` para GET ou PUT. Expiração de até 7 dias quando assinado por um usuário IAM (sigv4); mais curto para sessões derivadas de role.
Por quê: Libera largura de banda do seu backend; a URL é uma capacidade temporária com escopo para um objeto + método.
Referência↗
Fazer upload de um arquivo grande (≫100 MB) de forma confiável a partir do SDK.
→`CreateMultipartUpload` → `UploadPart` paralelo → `CompleteMultipartUpload`. O gerenciador de transferência de alto nível do SDK lida com o dimensionamento das partes automaticamente.
Por quê: Obrigatório para >5 GB; recomendado para ≥100 MB. Partes com falha são re-carregadas independentemente. Defina o ciclo de vida para abortar multiparts incompletos para recuperar armazenamento.
Referência↗
Executar código quando um objeto é criado/excluído no S3.
→Notificações de Eventos S3 → Lambda / SNS / SQS / EventBridge. Filtre por prefixo e sufixo.
Referência↗
Aplicativo de navegador busca do S3 entre origens (`fetch('https://bucket.s3...')`); o preflight CORS falha.
→Configure as regras CORS do bucket: origens permitidas, métodos (GET/PUT), cabeçalhos e cabeçalhos expostos.
Referência↗
Filtrar linhas de um objeto CSV/JSON/Parquet de 50 GB sem baixá-lo.
→S3 Select com SQL. Retorna apenas as linhas correspondentes; pague pela varredura + bytes retornados.
Referência↗
Autenticar um usuário de um cliente móvel/web público sem enviar a senha.
→Cognito User Pool com fluxo `USER_SRP_AUTH`. O cliente calcula a prova SRP; o backend nunca vê a senha. Retorna tokens de ID + acesso + refresh.
Referência↗
Usuário federado (Google/Apple/Cognito UP) precisa de credenciais temporárias da AWS para chamar APIs da AWS diretamente de um aplicativo móvel.
→Cognito Identity Pool. Troca token de provedor de identidade → role IAM → credenciais temporárias da AWS via STS.
Por quê: User Pools autenticam usuários; Identity Pools os autorizam a recursos da AWS.
Referência↗
Escolha um tipo de fluxo de trabalho do Step Functions.
→Standard: longa duração (≤1 ano), exatamente uma vez, $0.025/1k transições, histórico completo. Express: ≤5 min, pelo menos uma vez ou no máximo uma vez, cobrado por requisição + duração; para ETL/streaming de alto volume.
Referência↗
A etapa do fluxo de trabalho falha; desejo tentar novamente com backoff e rotear para um estado de recuperação.
→Array `Retry` (por estado, com `BackoffRate` + `MaxAttempts`) e `Catch` para roteamento de falha terminal. Corresponda por `ErrorEquals` (por exemplo, `States.TaskFailed`, nomes de erros personalizados).
Referência↗
Aplicar o mesmo fluxo de trabalho a cada item em um array, com limite de concorrência.
→Estado Map com `ItemsPath` e `MaxConcurrency`. Distributed Map lida com mais de 10k itens com entrada suportada por S3.
Referência↗
Acionar Lambda em um cron schedule ou eventos de entrada correspondentes.
→Regra do EventBridge. Agendamento: `rate(...)` ou `cron(...)`. Padrão: filtro de evento JSON; corresponde a fonte, tipo de detalhe, campos de detalhe.
Referência↗
Encaminhar eventos de SQS / Kinesis / DynamoDB Streams / MSK para um alvo com filtro + transformação opcionais.
→EventBridge Pipes. Fonte → Filtro → Enriquecimento (Lambda/Step Functions) → Alvo. Nenhuma Lambda necessária para os casos simples.
Referência↗
Processar mensagens estritamente em ordem por cliente, com deduplicação.
→Fila SQS FIFO. `MessageGroupId` particiona a ordenação (paralelismo por grupo); `MessageDeduplicationId` (ou dedup baseado em conteúdo) descarta duplicatas em 5 minutos.
Referência↗
O consumidor puxa uma mensagem, mas trava antes de excluí-la.
→Mensagem oculta por VisibilityTimeout segundos, então reaparece para reentrega. Ajuste para o tempo de processamento esperado mais longo + buffer.
Por quê: Muito curto → processamento duplicado. Muito longo → recuperação lenta em caso de falha. ChangeMessageVisibility estende em trânsito se necessário.
Referência↗
Um evento deve atingir múltiplos consumidores (Lambdas / filas SQS / endpoints HTTP).
→Tópico SNS com múltiplos assinantes. As políticas de filtro de assinatura roteiam apenas mensagens correspondentes por assinante.
Referência↗
Ajustar a capacidade do Kinesis Data Streams para throughput de escrita.
→Cada shard = 1 MB/s ou 1000 registros/s de entrada, 2 MB/s de saída. Adicione shards (split) ou use o modo On-Demand para auto-scaling.
Referência↗