As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Processar eventos do DynamoDB com o AWS SAM
Com esse aplicativo de exemplo, você se baseia no que aprendeu na visão geral e no guia de início rápido e instala outro aplicativo de exemplo. Esse aplicativo consiste em uma função do Lambda que é invocada por uma origem do evento de tabela do DynamoDB. A função do Lambda é muito simples: ela registra dados que foram transmitidos pela mensagem de origem do evento.
Este exercício mostra como imitar mensagens de origem de eventos que são passadas para as funções do Lambda quando são invocadas.
Antes de começar
Verifique se você concluiu a configuração necessária no Instale o AWS SAM CLI.
Etapa 1: Inicializar o aplicativo
Nesta seção, baixe o pacote de aplicativos, que consiste em um modelo do AWS SAM e no código do aplicativo.
Como inicializar o aplicativo
-
Execute o seguinte comando em um prompt de comando do AWS SAM CLI.
sam init \ --location gh:aws-samples/cookiecutter-aws-sam-dynamodb-python \ --no-inputObserve que o comando
gh:acima é expandido para o URL do GitHubhttps://github.com/. -
Revise o conteúdo do diretório criado pelo comando (
dynamodb_event_reader/):-
template.yaml— Define dois recursos AWS que o aplicativo Read DynamoDB precisa: uma função do Lambda e uma tabela do DynamoDB. O modelo também define o mapeamento entre os dois recursos. -
read_dynamodb_event/— diretório – contém o código do aplicativo DynamoDB.
-
Etapa 2: Testar o aplicativo localmente
Para testes locais, use o AWS SAM CLI para gerar um evento de amostra do DynamoDB e invocar a função do Lambda:
sam local generate-event dynamodb update | sam local invoke --event - ReadDynamoDBEvent
O comando generate-event cria uma mensagem de origem do evento de teste, como as mensagens criadas quando todos os componentes são implantados na nuvem AWS. Essa mensagem de origem do evento é canalizada para a função do Lambda ReadDynamoDBEvent.
Verifique se as mensagens esperadas foram impressas no console, com base no código-fonte em app.py.
Etapa 3: Empacotar o aplicativo
Antes de testar seu aplicativo localmente, você deve usar o AWS SAM CLI para criar um pacote de implantação, que você usa para implantar o aplicativo AWS na nuvem.
Para criar o pacote de implantação do Lambda
-
Crie um bucket do S3 no local onde deseja salvar o código empacotado. Se você quiser usar um bucket do S3 existente, ignore esta etapa.
aws s3 mb s3://bucketname -
Crie o pacote de implantação ao executar o seguinte comando
packageda CLI do prompt do comando.sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucketbucketnameVocê especifica o novo arquivo de modelo
packaged.yaml, ao implantar o aplicativo na próxima etapa.
Etapa 4: Implantar um aplicativo
Agora que você criou o pacote de implantação, use-o para implantar o aplicativo na nuvem do AWS. Em seguida, você testa o aplicativo.
Como publicar o aplicativo com tecnologia sem servidor na nuvem do AWS
-
No AWS SAM CLI, use o comando da CLI
deploypara implantar todos os recursos que você definiu no modelo.sam deploy \ --template-file packaged.yaml \ --stack-name sam-app \ --capabilities CAPABILITY_IAM \ --regionus-east-1No comando, o parâmetro
--capabilitiespermite que o AWS CloudFormation crie um perfil do IAM.O CloudFormation cria os recursos AWS definidos no modelo. Você pode acessar os nomes desses recursos no console CloudFormation.
Para testar o aplicativo com tecnologia sem servidor na nuvem do AWS
-
Abra o console do DynamoDB.
-
Insira um registro na tabela que você acabou de criar.
-
Vá até a guia Métricas da tabela e escolha Visualizar todas as métricas do CloudWatch. No console do CloudWatch, escolha Logs para poder visualizar a saída do log.
Próximas etapas
Para continuar aprendendo sobre o AWS SAM, consulte os seguintes recursos:
-
Exemplo de aplicações do AWS SAM
: o repositório do AWS SAM no GitHub contém aplicações de exemplo adicionais para você baixar e experimentar. -
Serverless Land
: site que reúne padrões com tecnologia sem servidor, exemplos de código e recursos de aprendizado específicos para aplicações do AWS SAM.