Serverless Framework: Gerenciando recursos com AWS Resource Groups

Se você trabalha com projetos serverless, como deve estar ciente de que um projeto serverless pode terminar com centenas de funções Lambda, o que definitivamente aumenta a complexidade do seu aplicativo, uma boa novidade é que o AWS Resource Groups anunciou recentemente seu suporte para mais tipos de recursos, especialmente para grupos baseados em uma stacks do AWS CloudFormation.

Ao usar Resource Groups, é muito mais fácil agrupar todos os recursos correspondentes como um serviço, ao invés de ficar acessando cada parte separadamente.

Neste artigo, vou criar um projeto de API RESTful usando o Serverless Framework e criar um Resource Groups que contém uma coleção de serviços da AWS relacionados ao nosso projeto de API.

Pré-requisitos

O seguinte deve ser feito antes de seguir este guia:

Construindo uma API RESTful com Serverless Framework

Primeiro, precisamos instalar ou atualizar o serverless framework para a versão mais recente:

$ npm install -g serverless

Em seguida, vamos criar um novo projeto:

$ sls create --template aws-nodejs --path myapp

O diretório criado inclui dois arquivos: handler.js, que é uma função Lambda, o arquivo serverless.yml, que contém as configurações do backend, adicione a seguinte configuração ao serverless.yml:

service: myapp
provider:
name: aws
runtime: nodejs8.10
region: ap-southeast-2
tags:
serverless: myapp
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get

Vamos atualizar nosso handler.js, criar uma função lambda para cuidar da solicitação do API Gateway:

module.exports.hello = async (event, context) => {
return {
statusCode: 200,
body: JSON.stringify({
message: "Go Serverless v1.0! Your function executed successfully!",
input: event
})
};
};

Em seguida, vamos fazer o deploy da API:

$ sls deploy --stage dev

O resultado é parecido com o seguinte:

Image for post
Image for post

Agora temos nossa API funcionando, é aqui que a diversão começa! Vamos criar um Resource Groups para gerenciar nossos recursos de API.

Criando um Resource Groups

Vamos abrir o console do AWS Resource Groups na AWS, no painel de navegação, em “Resource Groups”, escolha “Create Resource Group”.

Selecione “CloudFormation stack based” e em seguida, escolha uma stack do CloudFormation. Nesse exemplo, temos a stack “myapp-dev”implantada.

Image for post
Image for post

Clique no botão “View group resources” para ver todos os serviços relacionados incluídos nessa pilha.

Image for post
Image for post

Em “Group Details”, digite o nome e a descrição do grupo.

Image for post
Image for post

Tudo está configurado, escolha “Create group”. Podemos ir em “Saved resource groups” para visualizar o grupo de recursos que acabamos de criar.

Image for post
Image for post

Navegando em “group resource”, podemos ver que nosso projeto serverless inclui recursos de função S3, ApiGateway RestApi, lambda, Cloudwatch Logs e IAM Roles.

Visualizando eventos do CloudTrail do AWS Resource Group

AWS System Managers mostram informações detalhadas sobre os recursos em nossos grupos, como logs de configuração e do AWS CloudTrail.

Vamos abrir o console do AWS Systems Manager, escolha “Resource Groups” no painel de navegação esquerdo em “Operations Management”. Podemos ver todos os dados do log de eventos do CloudTrail.

Image for post
Image for post

Obrigado pela leitura, espero que você tenha achado este artigo útil. Pode me seguir se você deseja ver mais conteúdo como esse no futuro!

Créditos

Written by

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store