Criar uma regra que é acionada em um evento do Amazon Aurora - Amazon Aurora

Criar uma regra que é acionada em um evento do Amazon Aurora

Com o Amazon CloudWatch Events e o Amazon EventBridge, é possível automatizar os produtos da AWS e responder a eventos do sistema, como problemas de disponibilidade da aplicação ou alterações de recursos.

Tutorial: Registro de alterações de estado de uma instância de banco de dados usando o Amazon EventBridge

Neste tutorial, você pode criar uma função do AWS Lambda que registra as alterações de estado para uma instância do . Depois, crie uma regra que execute a função sempre que houver uma alteração de estado de uma instância de banco de dados do RDS existente. O tutorial pressupõe que você tem uma pequena instância de teste em execução que você pode desligar temporariamente.

Importante

Não execute este tutorial em uma instância de banco de dados de produção em execução.

Etapa 1: Criar uma função do AWS Lambda

Crie uma função Lambda para registrar em log os eventos de alteração de estado. Você especifica essa função quando cria sua regra.

Como criar uma função do Lambda
  1. Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.

  2. Se você estiver começando a usar o Lambda, verá uma página de boas-vindas. Escolha Get Started Now (Começar agora). Do contrário, escolha Create function (Criar função).

  3. Escolha Author from scratch.

  4. Na página Create function (Criar função), faça o seguinte:

    1. Digite um nome e uma descrição para a função Lambda. Por exemplo, atribua à função o nome RDSInstanceStateChange.

    2. Em Runtime (Tempo de execução), selecione Node.js 14x.

    3. Em Architecture (Arquitetura), escolha x86_64.

    4. Em Execution role (Perfil de execução), realize um dos seguintes procedimentos:

      • Escolha Create a new role with basic Lambda permissions (Criar uma nova função com permissões básicas do Lambda).

      • Em Existing role (Perfil existente), escolha Use an existing role (Usar um perfil existente). Escolha o perfil que deseja usar.

    5. Escolha Create function.

  5. Na página RDSinstAncestateChange, faça o seguinte:

    1. Em Code source (Fonte do código), selecione index.js.

    2. No painel de index.js, exclua o código existente.

    3. Insira o seguinte código:

      console.log('Loading function'); exports.handler = async (event, context) => { console.log('Received event:', JSON.stringify(event)); };
    4. Escolha Deploy (Implantar).

Etapa 2: Criar uma regra

Crie uma regra para executar sua função do Lambda sempre que executar uma instância do Amazon RDS.

Como criar a regra do EventBridge
  1. Abra o console do Amazon EventBridge em https://console.aws.amazon.com/events/.

  2. No painel de navegação, escolha Rules (Regras).

  3. Escolha Create rule (Criar regra).

  4. Insira um nome e uma descrição para a regra. Por exemplo, digite RDSInstanceStateChangeRule.

  5. Escolha Rule with an event pattern (Regra com padrão de eventos), depois selecione Next (Próximo).

  6. Em Event source (Origem do evento), escolha Eventos da AWS ou eventos de parceiro do EventBridge.

  7. Role para baixo até a seção Event pattern (Padrão de eventos).

  8. Para Event source (Origem do evento), escolha Serviços da AWS.

  9. Em Serviço da AWS, escolha Relational Database Service (RDS).

  10. Em Event type (Tipo de evento), escolha RDS DB Instance Event (Evento de instância de banco de dados do RDS).

  11. Mantenha o padrão de eventos predefinido. Em seguida, escolha Next (Próximo).

  12. Em Target types (Tipos de destinos), escolha AWS service (Serviço da ).

  13. Em Select a target (Selecionar um destino), escolha Lambda function (Função do Lambda).

  14. Em Function (Função), selecione a função do Lambda que você criou. Em seguida, escolha Next (Próximo).

  15. Em Configure tags (Configurar etiquetas), escolha Next (Próximo).

  16. Revise as etapas da sua regra. Em seguida, escolha Create rule (Criar regra).

Etapa 3: Testar a regra

Para testar sua regra, desligue uma instância de banco de dados do RDS. Depois de esperar alguns minutos para a instância ser inicializada e executada, verifique se a sua função do Lambda foi chamada.

Como testar a regra ao interromper uma instância de banco de dados
  1. Abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. Interrupção de uma instância de banco de dados do RDS.

  3. Abra o console do Amazon EventBridge em https://console.aws.amazon.com/events/.

  4. No painel de navegação, escolha Rules (Regras) e escolha o nome da regra criada por você.

  5. Em Detalhes da regra, escolha Monitoramento.

    O sistema redireciona você para o console do Amazon CloudWatch. Se você não for redirecionado, clique em Visualizar as métricas no CloudWatch.

  6. Em All metrics (Todas as métricas), escolha o nome da regra que você criou.

    O gráfico deve indicar que a regra foi invocada.

  7. No painel de navegação, escolha Log groups (Grupos de logs).

  8. Escolha o nome do grupo de logs para a sua função do Lambda (/aws/lambda/nome-da-função).

  9. Escolha o nome do fluxo de logs para visualizar os dados fornecidos pela função para a instância que você iniciou. Será exibido um resultado semelhante ao seguinte:

    { "version": "0", "id": "12a345b6-78c9-01d2-34e5-123f4ghi5j6k", "detail-type": "RDS DB Instance Event", "source": "aws.rds", "account": "111111111111", "time": "2021-03-19T19:34:09Z", "region": "us-east-1", "resources": [ "arn:aws:rds:us-east-1:111111111111:db:testdb" ], "detail": { "EventCategories": [ "notification" ], "SourceType": "DB_INSTANCE", "SourceArn": "arn:aws:rds:us-east-1:111111111111:db:testdb", "Date": "2021-03-19T19:34:09.293Z", "Message": "DB instance stopped", "SourceIdentifier": "testdb", "EventID": "RDS-EVENT-0087" } }

    Para obter mais exemplos de eventos do RDS no formato JSON, consulte Visão geral dos eventos para Aurora.

  10. (Opcional) Ao terminar, você poderá abrir o console do Amazon RDS e iniciar a instância interrompida.