DEV Community

Cover image for Serverless Framework: Gerenciando recursos com AWS Resource Groups
Eduardo Rabelo
Eduardo Rabelo

Posted on

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:

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.

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

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

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

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.


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

Top comments (0)