Tutorial: envie eventos para um fluxo do Amazon Kinesis usando o EventBridge e o esquema aws.events - Amazon EventBridge

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial: envie eventos para um fluxo do Amazon Kinesis usando o EventBridge e o esquema aws.events

É 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 EventBridge Esquemas da Amazon. Para obter mais informações sobre como criar uma regra usando outras opções de padrões de eventos, consulte Como criar regras do Amazon EventBridge que reagem a eventos

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.

Para criar uma regra do
  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, nomeie a regra como TestRule

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

  6. Em Rule type (Tipo de regra), escolha Rule with an event pattern (Regra com um padrão de evento).

  7. Escolha Next (Próximo).

  8. Em Event source (Origem do evento), 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 Value (Valor), insira running. Escolha Definir.

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

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

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

        Deixe o Relacionamento vazio. Em Value (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 Next (Próximo).

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

  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 Next (Próximo).

  17. Escolha Next (Próximo).

  18. Analise os detalhes da regra e escolha Create rule (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 a instância no Manual do usuário do Amazon EC2 para instâncias do Linux.

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

  4. No painel de navegação, escolha Rules (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 Terminar a instância no Guia do usuário do Amazon EC2 para instâncias do Linux.

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

    A seguir está 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 Delete (Excluir).

  4. Escolha Delete (Excluir).

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

  2. Selecione os fluxos criados.

  3. Escolha Actions, Delete.

  4. Insira excluir no campo e escolha Excluir.