Steps:
- Criar fila morta
- Criar fila 'normal' e vincular a fila morta na fila 'normal'
- Criar o o SNS
- Fazer o vínculo do SNS para SQS, ou seja, a mensagem que chegaram no sns iremos enviar para a SQS
- Fazer a SQS 'triggar' ou disparar mensagem para a lambda
Neste exemplo estamos utilizando o profile=aws_academy e region=us-east=1. Caso você esteja utilizando o profile default, não é necessário informar estes parâmetros (profile,region).
O nome do bucket deve ser único globalmente, portanto ao executar o comando abaixo, inserir um nome adequado ao uso do seu serviço. O nome inserir-um-nome-unico-globalmente já está em uso, use outro nome.
aws s3 mb s3://inserir-um-nome-unico-globalmente --profile=aws_academy --region=us-east-1
zip iot-consumo-energia.zip lambda.py requirements.txt
aws s3 cp iot-consumo-energia.zip s3://inserir-um-nome-unico-globalmente/iot-consumo-energia.zip --profile=aws_academy
NOTE
Os comandos abaixo devem ser executados dentro da pasta do dispositivo. As pastas tem prefixo iot-*
aws cloudformation create-stack --profile=aws_academy --region=us-east-1 \
--stack-name 'iot-consumo-energia-stack' \
--capabilities CAPABILITY_IAM \
--template-body file://$(pwd)/stack.yaml
aws cloudformation wait --profile=aws_academy --region=us-east-1 stack-create-complete \
--stack-name 'iot-consumo-energia-stack'
aws cloudformation delete-stack --profile=aws_academy --region=us-east-1 \
--stack-name 'iot-consumo-energia-stack'
aws cloudformation update-stack --stack-name nome-da-sua-stack --template-body file://caminho_para_seu_arquivo.yaml --parameters SnsName=Chave,ParameterValue=Valor --capabilities CAPABILITY_IAM
aws cloudformation update-stack --stack-name iot-consumo-energia-dynamodb --template-body file://dynamodb.yaml --capabilities CAPABILITY_IAM
Execução do método via cli - WINDOWS (CMD)
aws lambda update-function-code --function-name %NOME_FUNCAO% --zip-file fileb://%ARQUIVO_ZIP%
Execução do método via cli - LINUX
export NOME_FUNCAO=iot-energia-lambda
export ARQUIVO_ZIP=iot-energia.zip
aws lambda update-function-code --function-name $NOME_FUNCAO --zip-file fileb://$ARQUIVO_ZIP --profile=aws_academy --region=us-east-1