AWS Serverless - Lambda Flashcards
Cite exemplos de serviços Serverless na AWS
AWS Lambda, DynamoDB, AWS Cognito, AWS API Gateway, Amazon S3, AWS SNS & SQS, AWS Kinesis Data Firehose, Aurora Serverless, Step Functions, Fargate
Por que utilizar Lambda?
Lambdas são funções virtuais, o que torna possível não ser necessário gerenciar servidores. São funções de execução curtas (máximo de 15 minutos), que executam on-demand. A escalabilidade é automática
Quais os benefícios de utilizar Lambda Functions?
Pagamento por requisição e tempo de computação.
Integrada com todos os serviços da AWS.
É possível utilizar várias linguagens de programação.
Fácil de monitorar através do CloudWatch.
Fácil de obter mais recursos por função.
Quais linguagens são suportadas no Lambda?
Node.js, Python, Java, C#, Golang, Ruby, Custom Runtime API, Lambda Container Image,
Para executar imagens arbitrarias, é preferível utilizar ECS / Fargate
Para que serve Lambda@Edge?
Serve para alterar as requisições entre o cliente e a origem.
Pode ser modificada o request entre o User e o CloudFront ou entre o CloudFront e Origin.
A response também pode ser modificada entre a Origin e o CloudFront e entre o CloudFront e o User.
Cite 4 casos de uso para Lambda@Edge
A/B testing, Intelligently Route Across Origins and Data Centers, Real-time Image Transformation, User Tracking and Analytics, User Authentication and Authorization
Como é feito o processamento assíncrono de funções Lambdas?
É gerado um evento (S3, SNS, CloudWatch), inserido em uma Event Queue. A função lambda lê o evento da event Queue e tenta realizar o processamento. Em caso de falha, será realizado 3 novas tentativas.
Também é possível criar uma DLQ para processamentos que falharam.
Como funciona o Lambda Event Source Mapping?
Neste caso de utilização de lambda, em vez de lambda ser sensibilizada por outros recursos (evento do S3 ou CloudWatch) a Lambda que é responsável por obter os eventos de uma determinada origem.
Essas origens podem ser Kinesis Data Streams, SQS ou DynamoDb Streams
Como é feito a paralelização do Lambda Event Source Mapping (Kinesis e DynamoDb)?
Como o processamento é feito de forma a garantir a ordem as mensagens, o processamento é paralelizado a partir da Partition Key.
Dado isso, é possível ter mais de um lambda realizando o processamento em um mesmo shard, pois a ordenação é feita pelo Partition Key da mensagem.
Como é feito a tratativa de erro para stream no Event Source Mapping (kinesis)?
Por default, caso alguma lambda retorne um erro, todo o batch será reprocessado até a função ter sucesso ou o batch expirar.
Isso é feito para garantir a ordem no processamento do Batch
Para que serve Lambda - Destinations?
Serve para enviar os resultados do processamento da lambda. É possível utilizar Lambda - Destination no lugar da DLQ ou utilizar ambas ao mesmo tempo.
AWS recomenda utilizar Lambda - Destination no lugar de DLQ
Quais são os Lambda - Destinations para Asynchronous invocations?
Amazon SQS, Amazon SNS, AWS Lambda, Amazon EventBridge bus.
Quais são os Lambda - Destinations para Event Source mapping?
Amazon SQS e Amazon SNS
Como dar permissão para outras contas utilizarem seus recursos lambdas?
Utilizando resource-based policies.
O que são lambda Environment Variables?
São variáveis de ambiente chave / valor, possibilitando ajustar a função lambda sem atualizar o código. Também pode ser utilizado para guardar segredos (criptografados por KMS)