Aula prática de AWS Lambda
Neste repositório você encontra os códigos de uma função Lambda básica para demonstração.
Este código foi criado para o vídeo do YouTube: https://youtu.be/RCK9fBwrZeY
Esta função retorna:
As estatísticas de uso do Lambda através da função lambda.getAccountSettings()
e retorna o objeto:
{
"TotalCodeSize": 1007,
"FunctionCount": 1
}
O Objetivo é demonstrar:
- A estrutura básica de uma função do AWS Lambda;
- Como criar permissões para o Lambda no IAM;
- Como criar uma trigger no API Gateway para chamar a função Lambda;
Estrutura
function/index.js
: Contém a função Lambda a ser executadafunction/package.json
: Arquivo de dependências do nodejsfunction.zip
: Versão zipada para upload
Empacotamento da função
Esta função utiliza apenas o pacote do aws-sdk
que não é necessário ser enviado para a AWS, mas por padrão ele é instalado e empacotado com a função. O conteúdo do arquivo function/index.js
pode ser inserido diretamente no painel do lambda sem a inclusão do diretório node_modules
.
Para preparar o arquivo ZIP para upload basta executar o comando pack.sh
. Se você utilizar este repositório como modelo para desenvolver funcionalidades mais complexas e/ou que contenham mais arquivos necessários para ser executada, não se esqueça de editar o arquivo pack.sh
e incluir os arquivos adicionais.
Tutorial de criação de função Lambda com trigger em AWS API Gateway
Passo 1:
No seu painel principal do AWS Lambda, clique no botão Create Function
(Criar Função
).
Passo 2:
Na tela de criação de função selecione a opção Author from Scratch
(Criar do zero
). Insira um nome para sua função. Selecione a versão da engine do Node JS que deve ser usada Na área Execution Role
(Papel de execução
) deixe a opção padrão para que o lambda crie uma role padrão com permissão de envio de dados para o CloudWatch.
Passo 4:
Na tela da função lambda cole o conteúdo do arquivo function/index.js
, salve e clique no botão Deploy
para disponibilizar a função lambda para execução.
Passo 5:
Na aba Configuration
(Configuração) selecione o item Permissions
(Permissões
) no menu lateral esquerdo, e em seguida clique na role exibida na caixa Execution Role
(Papel de Execução
) para ir para a tela do IAM.
Passo 6:
Na tela de detalhes da role no IAM, você tem duas opções, criar uma nova policy
(política
) ou adicionar uma política em linha, vamos pela segunda opção, então ao lado direito clique no link Add inline policy
(Adicionar política em linha
).
Passo 7:
Clique em Choose a service
(Escolha um serviço
) e digite lambda
no campo de busca.
Passo 8:
Selecione a opção Lambda
nos resultados abaixo.
Passo 9:
No item Access level
(Nível de acesso
) selecione o item Read
(Leitura
) para expandir as opções e marque a opção GetAccountSettings
. Clique em Review Policy
(Revisar política
).
Passo 10:
Dê um nome para sua nova política de segurança, e clique em Create Policy
(Criar Política
).
Passo 11:
Agora você deve poder ver a sua nova política listada na role da sua função lambda.
Passo 12:
De volta a tela da sua função lambda, clique no botão Add Trigger
(Adicionar Gatilho
) e selecione a opção API Gateway.
Passo 13:
Selecione Create an API
(Criar uma API
). Selecione REST API
(API REST
). Em Security
(Segurança
) selecione a opção Open
(Abrir
). Digite um nome para sua API. Na opção Deployment stage
(Estágio de implantação
) digite dev
. Deixe o restante das opções como padrão e clique em Add
(Adicionar
).
Passo 14:
Agora na lista de trigger você pode visualizar sua API já criada e o API Endpoint
(Endpoint da API
), que é o endereço que você deve usar no seu navegador para invocar sua função lambda.
Passo 15:
Este é o resultado da sua função.
Passo 16:
Na aba Monitor
você terá acesso às métricas e logs da sua função e poderá conferir informações como o número de vezes que sua função foi invocada, tempo de resposta entre outras.
Passo 17:
Ainda na aba Monitor
da sua função lambda você pode ver os logs detalhados de acesso.
Passo 18:
Entrando no painel do AWS API Gateway, é dessa maneira que a configuração do seu API Gateway irá parecer quanto a integração com sua função lambda.
Gostou do conteúdo deste vídeo?
👍 Então deixa um comentário, dá um like e Inscreva-se!
Tá sem tempo pra assistir o “Um Inventor Qualquer? Você pode ouvir!
Estamos em todas as plataformas de podcast!
🎧 Ouça aqui: https://bit.ly/3qa5JH1
Quer ficar por dentro das novidades que estamos preparando para o canal?
📸 Nos siga no Instagram: https://bit.ly/3tfzAj0