Criação de aplicativos sem servidor

com o Amazon Aurora Serverless

O Amazon Aurora é um banco de dados relacional compatível com MySQL e PostgreSQL que combina a performance e a disponibilidade de bancos de dados comerciais tradicionais com a simplicidade e a economia de bancos de dados de código aberto. O Amazon Aurora Serverless é uma configuração com escalabilidade automática sob demanda para o Amazon Aurora (edições compatíveis com MySQL e PostgreSQL), em que o banco de dados será iniciado, encerrado e escalado automaticamente para oferecer mais ou menos capacidade de acordo com as necessidades do aplicativo. Ele permite que você execute um banco de dados na nuvem sem gerenciar instâncias de banco de dados. Ele é uma opção simples e econômica para cargas de trabalho pouco frequentes, intermitentes ou imprevisíveis.

Neste tutorial, você aprenderá como criar um aplicativo de processamento de mensagens sem servidor com o Amazon Aurora Serverless (edição compatível com PostgreSQL), API de dados para o Aurora Serverless, Amazon Lambda e Amazon Simple Notification Service (SNS). O tutorial fornecerá instruções passo a passo para criar um banco de dados Aurora Serverless, usar a API de dados para conectá-la com uma função Amazon Lambda que consuma mensagens da Amazon SNS e armazene-as no banco de dados do Aurora Serverless.

Sobre este tutorial
Duração 10 a 20 minutos      
Custo Menos de 1 USD
Caso de uso Bancos de dados
Produtos Amazon Aurora, Amazon SNS, AWS Lambda
Nível 100
Data da última atualização 24 de setembro de 2019

Etapa 1: Crie o seu banco de dados do Aurora Serverless

1.1 – Abra um navegador e acesse o console do Amazon RDS. Se você já tiver uma conta da AWS, faça login no console. Caso contrário, crie uma nova conta da AWS para começar.

1.2 – No canto superior direito, selecione a região onde deseja executar o cluster do banco de dados do Aurora.

1.3 – Clique em “Create database” (Criar banco de dados) na janela do Amazon Aurora.

Antes de prosseguir, mude para o novo fluxo de criação de banco de dados:

Opções do mecanismo

1.4 – No mecanismo de banco de dados, selecione “Amazon Aurora”.

1.5 – Para a edição, selecione “Amazon Aurora with PostgreSQL compatibility” (Compatibilidade do Amazon Aurora com PostgreSQL).

Recursos do banco de dados

1.6 – Selecione “Serverless” (Sem servidor).

Configurações

1.7 – Escolha um identificador para o cluster de banco de dados do Aurora. Por exemplo, “bancodados-1”.

Configurações de credenciais

1.8 – Selecione um nome de usuário e uma senha para o seu banco de dados.

Configurações de capacidade

1.9 – Para unidade de capacidade máxima do Aurora, selecione 2.

Conectividade

1.10 – Selecione a VPC em que você deseja criar o banco de dados.

Lembre-se de que, após a criação, não será possível migrar o banco de dados para uma VPC diferente.

1.11 – Clique em “Additional connectivity configuration” (Configuração de conectividade adicional).

1.12 – Selecione o valor padrão para o grupo de sub-redes.

1.13 – No grupo de segurança da VPC, selecione “create new” (criar novo). Se você tiver um grupo de segurança que permita conexões TCP de entrada na porta 3306, poderá escolhê-lo em vez de criar um novo.

1.14 – No novo nome do grupo de segurança da VPC, digite “aurora-tutorial”.

1.15 – Habilite a API de dados.

Configuração adicional

1.16 – Em “Deletion protection” (Proteção contra exclusão), desmarque “Enable deletion protection” (Habilitar proteção contra exclusão).

A melhor prática é habilitar a proteção contra exclusão mas, se quiser excluir o banco de dados no final do tutorial, você poderá deixar essa opção desmarcada.

Revisar e criar

Após uma rápida revisão de todos os campos do formulário, você poderá prosseguir.

1.17 – Clique em “Create database” (Criar banco de dados).

Durante a criação das instâncias, você verá uma faixa explicando como obter credenciais. É uma boa oportunidade de salvar as credenciais, pois é a única vez que você visualizará esta senha.

Recuperar o cluster ARN

1.18 – Clique no nome do banco de dados.

1.19 – Na guia “Configuration” (Configuração), copie o cluster ARN e mantenha-o à mão. Você precisará dele mais tarde.

Conectar-se ao banco de dados

1.20 – Abra o painel esquerdo e clique em “Query Editor” (Editor de Consulta).

1.21 – Selecione “bancodados-1”, insira “postgres” como o nome de usuário do banco de dados e insira a senha do banco de dados que você criou antes. Depois, digite “postgres” para o nome do banco de dados.

1.22 – Clique em “Connect to database” (Conecte-se ao banco de dados).

1.23 – Agora você pode clicar em “Run” (Executar) e executar a consulta de exemplo.

1.24 – Crie um banco de dados executando a seguinte consulta:

CREATE DATABASE tutorial;

1.25 – Clique em “Change database” (Alterar banco de dados).

1.26 – Altere o banco de dados para o que você acabou de criar.

1.27 – Crie uma tabela com esta consulta:

CREATE TABLE sample_table(received_at TIMESTAMP, message VARCHAR(255));

Quando você se conecta ao banco de dados com o Editor de Consulta, é criado um segredo que você usará depois na função do Lambda. Deixe esta guia aberta, pois você precisará executar algumas consultas no final do tutorial.

Copiar o ARN secreto

Abra a nova guia e acesse o AWS Secrets Manager. Depois, siga as etapas abaixo para recuperar o ARN secreto. 

1.28 – Localize o segredo que contém as “credenciais postgres do banco de dados RDS para o bancodados-1”.

1.29 – Depois de clicar no nome secreto, copie o ARN secreto e mantenha-o à mão.

Etapa 2: Crie um ambiente do AWS Cloud9

Abra a nova guia e acesse o console do AWS Cloud9. Siga as etapas abaixo para criar um novo ambiente. 

2.1 – Clique em “Create environment” (Criar ambiente):

2.2 – Insira um nome para o novo ambiente e clique em “Next step” (Próxima etapa).

2.3 – Role para baixo e clique em “Next step” (Próxima etapa).

2.4 – Clique em “Create environment” (Criar ambiente).

2.5 – Quando o ambiente estiver pronto, clique em “Create Lambda Function” (Criar função do Lambda–).

2.6 – Para o nome da função, insira “auroratest”. Clique em “Next” (Próximo).

2.7 – Selecione o blueprint “empty-python” e clique em “Next” (Próximo).

2.8 – Nas telas abaixo, clique em “Next” (Próximo), “Next” (Próximo) e “Finish” (Concluir).

O ambiente está pronto e você verá um blueprint para a função do Lambda.

Antes de começar a codificar, você precisa configurar algumas permissões, conforme descrito na etapa 3. Mantenha esse ambiente aberto e use outras guias para concluir as próximas etapas.

Etapa 3: Configure permissões

Abra a nova guia e acesse o console do AWS IAM. Siga as etapas abaixo para atribuir permissões à função do Lambda.

3.1 – Clique em “Roles” (Funções) e procure uma função que comece com “cloud9-”.

3.2 – Clique no nome da função e em “Attach policies” (Anexar políticas).

3.3 – Selecione a política “AmazonRDSDataFullAccess“ e clique em “Attach policy” (Anexar política).

Você verá uma tela com uma faixa verde clara explicando que a política foi anexada com êxito.

Etapa 4: Crie sua função do AWS Lambda

Volte ao ambiente Cloud9 que você criou na etapa 2 e siga as instruções abaixo.

4.1 – Vá para o diretório auroratest executando este comando no console:

$ cd auroratest

4.2 – Instale a dependência boto3 executando este comando no console:

$ pip install boto3 -t boto3

4.3 – Exclua o código no arquivo lambda_function e, em seu lugar, copie este código de exemplo.

4.4 – Substitua os valores cluster_arn e secret_arn pelos valores Cluster ARN e ARN secreto obtidos nas etapas anteriores.

4.5 – Clique em “File > Save” (Arquivo > Salvar) e selecione a função do Lambda no painel direito.

4.6 – Implante a função do Lambda clicando na seta para cima.

Etapa 5: Crie um tópico do Amazon SNS

A função do Lambda processará mensagens do Amazon Simple Notification Service (SNS), que oferece mensagens de publicação/assinatura para microsserviços e aplicativos sem servidor.

Em uma nova guia, acesse Painel SNS e siga estas instruções:

5.1 – Em “Topic name” (Nome do tópico), insira aurora-lambda-sns-test e clique em “Next step” (Próxima etapa).

5.2 – Deixe todos os valores padrão e clique em “Create topic” (Criar tópico).

Você verá uma faixa verde indicando que o tópico foi criado com êxito.

5.3 – Copie o SNS ARN e mantenha-o à mão.

Mantenha esta guia aberta, pois você a utilizará para publicar uma mensagem quando a função do Lambda for configurada para ler do tópico que você criou.

Etapa 6: Assine a função do AWS Lambda para o tópico Amazon SNS

Acesse Console de Gerenciamento do AWS Lambda e siga estas instruções:

6.1 – Clique no nome da função do Lambda criada na etapa 4.

6.2 – Clique em “Add trigger” (Adicionar trigger).

6.3 – Digite “SNS” e selecione serviços “SNS” no menu suspenso.

6.4 – No campo “SNS Topic” (Tópico de SNS), insira o SNS ARN.

6.5 – Habilite o trigger e clique em “Add” (Adicionar).

Etapa 7: Publique uma mensagem de teste

Volte para o Painel SNS e siga estas instruções:

7.1 – Clique em “Publish message” (Publicar mensagem).

7.2 – Insira qualquer valor no campo “Subject” (Assunto).

7.3 – Insira qualquer valor no campo “Body” (Corpo).

7.4 – Role para baixo e clique em “Publish message” (Publicar mensagem).

Quando a mensagem for publicada, a função do Lambda a consumirá e processará. Na próxima seção, você verificará como os dados foram gravados no banco de dados do Aurora.

Verifique as alterações no banco de dados

7.5 – Vá para a guia em que você deixou o Editor de Consulta aberto. Se você o fechou, acesse RDS Dashboard (Painel do RDS) e conecte-se ao Editor de Consulta, conforme explicado em 1.20.

7.6 – Conecte-se ao banco de dados do “tutorial”.

7.7 – Selecione todos os registros da sample_table:

SELECT * FROM sample_table;

7.8 – Clique em “Run” (Executar) e role para baixo para ver os resultados.

Tudo deverá funcionar agora. Você pode testar alterando as mensagens enviadas via SNS, ou pode alterar a função lambda_handler como desejar.

Etapa 8: Limpeza

Para concluir este tutorial, você aprenderá a excluir o cluster de banco de dados do Aurora quando ele não for mais necessário, junto com a função do Lambda, o ambiente Cloud9, o segredo para se conectar ao banco de dados e o restante.

Excluir a função do Lambda

8.1 – Acesse Console de Gerenciamento do AWS Lambda e selecione a função do Lambda.

8.2 – Clique em “Actions > Delete” (Ações > Excluir).

Excluir o seu tópico SNS

8.3 – Acesse o Painel SNS e clique em “Topics” (Tópicos) no painel esquerdo.

8.4 – Selecione o tópico que você criou na Etapa 5 e clique em “Delete” (Excluir).

8.5 – Será solicitada a sua confirmação. Digite “delete me” (exclua-me) para confirmar e clique em “Delete” (Excluir).

Excluir seu ambiente Cloud9

8.6 – Acesse o console do AWS Cloud9 e selecione o ambiente criado para este tutorial.

8.7 – Clique em “Delete” (Excluir).

8.8 – Quando solicitado a confirmar, digite “Delete” (Excluir) e clique no botão “Delete” (Excluir).

Excluir o banco de dados do Aurora Serverless

8.9 – Acesse o console do Amazon RDS e selecione o banco de dados criado para este tutorial.

8.10 – Clique em “Actions > Delete” (Ações > Excluir).

Você será solicitado a informar se deseja criar um snapshot final. Isso costuma ser uma boa ideia, mas não é necessário para este tutorial.

8.11 – Quando solicitado a confirmar, selecione “No” (Não) quando perguntarem se você deseja criar um snapshot final. Depois marque “I acknowledge…” (Confirmo…) e clique em “Delete DB cluster” (Excluir cluster de banco de dados).

Excluir o seu segredo

8.12 – Acesse o AWS Secrets Manager, encontre o segredo contendo “RDS database admin credentials for database-1” (Credenciais de administrador de banco de dados RDS para o bancodados-1) e clique no nome do segredo.

8.13 – Clique em “Actions > Delete secret” (Ações > Excluir segredo).

8.14 – Não é possível excluir os segredos imediatamente. O período de espera mínimo para a exclusão programada é de 7 dias. Selecione 7 dias e clique em “Schedule deletion” (Programar exclusão).

Excluir sua função do IAM

8.15 – Acesse o console do AWS IAM. Clique em “Roles” (Funções) e procure uma função que comece com “cloud9-”.

8.16 – Selecione a função e clique em “Delete role” (Excluir função).

8.17 – Quando solicitado a confirmar, clique em “Yes, delete” (Sim, excluir).

Parabéns

Você criou um banco de dados Aurora Serverless e conectou-o a uma função do AWS Lambda via API de dados do Aurora. Você configurou o Amazon Simple Notification Service (SNS) como um trigger da função do Lambda. As mensagens enviadas via SNS foram processadas e armazenadas no banco de dados Aurora Serverless.

Este tutorial foi útil para você?

Agradecemos a sua atenção
Gostaríamos de saber do que você gostou.
Desculpe por ter desapontado
Encontrou algo desatualizado, confuso ou incorreto? Envie seus comentários para nos ajudar a melhorar este tutorial.

Saiba mais sobre recursos do Amazon Aurora

Saiba mais sobre os recursos do Amazon Aurora com o Guia do usuário do Amazon Aurora.

Melhores práticas com o Amazon Aurora

Conheça as melhores práticas e opções para usar ou migrar dados para um cluster de banco de dados do Amazon Aurora.

Saiba mais sobre aplicativos sem servidor

Se quiser saber mais sobre aplicativos sem servidor, verifique a documentação do AWS Lambda e o Guia do usuário do Aurora.