AWS series XV: Lambda
Serie de artigos sobre Amazon Web Services.
Lab 13 - Amazon Lambda
Em este lab sobre Lambda aprenderemos alguns conceitos do modulo de Function as a Service (FaaS) / serverless da plataforma da AWS:
- Criação de funções Lambda
- Teste de funções
- Criação de triggers (via API Gateway)
Pre-reqs
- A seguinte tabela, com nome
Atmosferacriada no DynamoDB:- sala: primary key, string
- temperatura: number
- humidade: number
Configuração do serviço
Criar uma primera função
getTemperaturacom Python como runtime:
Nas contas da AWS Academy é necessário mudar o execution role por
LabRole:
- Configurar o seguinte código para a função:
1 2 3 4 5 6 7 8 9 10
import json import boto3 def lambda_handler(event, context): dynamodb = boto3.resource('dynamodb') tableTemperatures = dynamodb.Table('Atmosfera') response = tableTemperatures.scan() return { 'statusCode': 200, 'body': response['Items'][0]['temperatura'] }
O código lee o valor
temperaturada tabelaAtmosferado DynamoDB. Criamos um evento de testes. A entrada do evento (o arquivo
json) é indeferente em este caso específico, pois a API não está lendo entrada:
Executar o evento de testes recém criado
testeGetTemperatura:
Se tiver usando uma conta “normal” da AWS ir para o passo 22, se tiver usando uma conta do AWS Academy continuar normalmente.
O trigger será um endpoint em uma nova API do API Gateway chamada
api-lambda:
- Testamos o endpoint (se aparecer a mensagem
{"message":"Missing Authentication Token"}aguardar um minuto e repetir o teste):
Configuração do segundo endpoint usando a mesma API
Repetir os pasos 2 e 3 para criar uma segunda função
getHumidadecom Python como runtime:
- Configurar o seguinte código para a função e fazer deploy do mesmo:
1 2 3 4 5 6 7 8 9 10
import json import boto3 def lambda_handler(event, context): dynamodb = boto3.resource('dynamodb') tableTemperatures = dynamodb.Table('Atmosfera') response = tableTemperatures.scan() return { 'statusCode': 200, 'body': response['Items'][0]['humidade'] }
O código lee o valor
humidadeda tabelaAtmosferado DynamoDB. Criar um trigger para a função usando a mesma API que no passo 16:

- Conferir o novo endpoint da API (se aparecer a mensagem
{"message":"Missing Authentication Token"}aguardar um minuto e repetir o teste):
















