Tutorial: enviar eventos para o Amazon Kinesis usando esquemas do EventBridge - Amazon EventBridge

Tutorial: enviar eventos para o Amazon Kinesis usando esquemas do EventBridge

É possível enviar eventos de chamada de APIs da AWS no EventBridge para um fluxo do Amazon Kinesis, criar aplicações de fluxo de dados do Kinesis e processar grandes quantidades de dados. Neste tutorial, é criado um fluxo do Kinesis e é criada uma regra no console do EventBridge que envia eventos para esse fluxo quando uma instância do Amazon EC2 é interrompida.

Pré-requisitos

Neste tutorial, use o seguinte:

nota

Este tutorial usa eventos da AWS e o registro de esquema aws.events incorporado. Também é possível criar uma regra do EventBridge com base no esquema de seus eventos personalizados adicionando-os manualmente a um registro de esquema personalizado ou usando a descoberta de esquemas.

Para obter mais informações sobre esquemas, consulte Esquemas do Amazon EventBridge. Para obter mais informações sobre como criar uma regra usando outras opções de padrões de eventos, consulte Criar regras que reagem a eventos no Amazon EventBridge

Etapa 1: criar um fluxo do Amazon Kinesis

Para criar um fluxo, em um prompt de comando, use o comando create-stream AWS CLI.

aws kinesis create-stream --stream-name test --shard-count 1

Quando o status do fluxo é ACTIVE, ele está pronto. Para verificar o status do fluxo, use o comando describe-stream.

aws kinesis describe-stream --stream-name test

Etapa 2: Criar uma regra

Crie uma regra para enviar eventos ao seu fluxo ao interromper uma instância do Amazon EC2.

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

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

  3. Escolha Create rule.

  4. Insira um nome e uma descrição para a regra. Por exemplo, nomeie a regra como TestRule

  5. Em Barramento de eventos, selecione padrão.

  6. Em Rule type, escolha Rule with an event pattern.

  7. Escolha Próximo.

  8. Em Event source, escolha Eventos da AWS ou eventos de parceiro do EventBridge.

  9. Em Método de criação, escolha Usar esquema.

  10. Em Event pattern (Padrão de evento), faça o seguinte:

    1. Em Tipo de esquema, escolha Selecionar esquema no registro do esquema.

    2. Para Registro do esquema, escolha aws.events na lista suspensa.

    3. Em Esquema, escolha aws.ec2 @EC2InstanceStateChangeNotification na lista suspensa.

      O EventBridge exibe o esquema do evento em Modelos.

      O EventBridge exibe um asterisco vermelho ao lado de todas as propriedades necessárias para o evento, não para o padrão do evento.

    4. Em Modelos, defina as seguintes propriedades do filtro de eventos:

      1. Selecione + Editar ao lado da propriedade de estado.

        Deixe o Relacionamento vazio. Em Valor, insira running. Escolha Definir.

      2. Selecione + Editar ao lado da propriedade de origem.

        Deixe o Relacionamento vazio. Em Valor, insira aws.ec2. Escolha Definir.

      3. Selecione + Editar ao lado da propriedade do tipo de detalhe.

        Deixe o Relacionamento vazio. Em Valor, insira EC2 Instance State-change Notification. Escolha Definir.

    5. Para ver o padrão de evento que você construiu, escolha Gerar padrão de evento em JSON

      O EventBridge exibe o padrão do evento em JSON:

      { "detail": { "state": ["running"] }, "detail-type": ["EC2 Instance State-change Notification"], "source": ["aws.ec2"] }
  11. Escolha Próximo.

  12. Em Tipos de destino, escolha Serviço da AWS.

  13. Em Selecionar um destino, escolha a o fluxo do Kinesis na lista suspensa.

  14. Para Fluxo, selecione o fluxo do Kinesis que foi criado na seção Etapa 1: criar um fluxo do Amazon Kinesis. Neste exemplo, selecione test.

  15. Em Perfil de execução, escolha Criar um novo perfil para este recurso específico.

  16. Escolha Próximo.

  17. Escolha Próximo.

  18. Analise os detalhes da regra e selecione Criar regra.

Etapa 3: Testar a regra

Para testar a regra, interrompa uma instância do Amazon EC2. Espere alguns minutos pela interrupção da instância e confira suas métricas do CloudWatch para verificar se sua função foi executada.

Como testar a regra ao parar uma instância
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Execute uma instância. Para obter mais informações, consulte Iniciar uma instância no Manual do usuário do Amazon EC2.

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

  4. No painel de navegação, escolha Regras.

    Escolha o nome da regra que você criou e escolha Metrics for the rule (Métricas para a regra).

  5. (Opcional) Ao terminar, encerre a instância. Para obter mais informações, consulte Encerramento de instâncias no Guia do usuário do Amazon EC2.

Etapa 4: verificar se o evento foi enviado

É possível usar a AWS CLI para obter o registro do fluxo para verificar se o evento foi retransmitido.

Como obter o registro
  1. Para começar a ler do seu fluxo do Kinesis, use o comando em um prompt de comando get-shard-iterator.

    aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name test

    O seguinte é um exemplo de saída.

    { "ShardIterator": "AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=" }
  2. Para obter o registro, use o comando get-records a seguir. Use o iterador de fragmentos da saída na etapa anterior.

    aws kinesis get-records --shard-iterator AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=

    Se o comando for bem-sucedido, ele solicitará registros do seu fluxo para o estilhaço especificado. Você pode receber zero ou mais registros. Os registros retornados podem não representar todos os registros em seu fluxo. Se você não receber os dados esperados, continue a chamar get-records.

  3. Os registros no Kinesis são codificados por Base64. Use um decodificador Base64 para decodificar os dados para que você possa verificar se é o evento que foi enviado ao fluxo no formato JSON.

Etapa 5: limpar os recursos

Agora você pode excluir os recursos criados para este tutorial, a menos que queira mantê-los. Ao excluir os recursos da AWS que não estão mais sendo usados, são evitadas cobranças desnecessárias em sua conta da AWS.

Para excluir as regras do EventBridge
  1. Abra a página Regras no console do EventBridge.

  2. Selecione as regras que foram criadas.

  3. Escolha Excluir.

  4. Escolha Excluir.

Para excluir fluxos do Kinesis
  1. Abra a página Fluxo de dados do console do Kinesis.

  2. Selecione os fluxos criados.

  3. Selecione Ações, Excluir.

  4. Insira excluir no campo e escolha Excluir.