Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Como faço para criar um padrão de evento personalizado para uma regra do EventBridge?
Quero capturar eventos para serviços da AWS com uma regra do Amazon EventBridge. No entanto, não consigo criar um padrão de evento personalizado que corresponda ao evento.
Resolução
Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
O EventBridge aceita eventos dos serviços da AWS, parceiros do EventBridge e eventos personalizados. Este artigo discute eventos JSON que se originam dos serviços da AWS. Você pode criar regras do EventBridge com padrões de eventos para filtrar os eventos recebidos. Dessa forma, a regra do EventBridge corresponde somente aos eventos desejados e encaminha esses eventos para os destinos.
Determine o formato JSON do evento de entrada
Há três métodos usados para determinar o formato JSON para um evento de entrada:
Consulte esta lista de exemplos de eventos dos serviços da AWS que o EventBridge recebe.
O EventBridge fornece a ferramenta EventBridge Sandbox para ajudar os usuários a criar e validar padrões de eventos. Por exemplo, para criar um evento de mudança de estado da instância do EC2, conclua as seguintes etapas:
- Abra o console do EventBridge.
- No painel de navegação, expanda Recursos do desenvolvedor e selecione Sandbox.
- Na guia Padrão de eventos, na seção Exemplo de evento, selecione Eventos da AWS.
- No campo Exemplos de eventos, selecione Notificação de alteração de estado da instância do EC2. Isso preenche a janela com o primeiro exemplo de evento. Para um determinado tipo de evento, vários exemplos podem estar disponíveis.
- Na seção Método de criação, escolha testar o padrão de eventos.
- Crie uma regra do EventBridge com um padrão de evento simples que corresponda a todos os eventos de um determinado serviço da AWS. Por exemplo, esse padrão de evento corresponde a todos os eventos do Amazon Elastic Compute Cloud (Amazon EC2):
Observação: Eventos vazios não são permitidos no padrão de eventos.<{ "source": [ "aws.ec2" ] }
Em seguida, associe um destino do SNS ou do CloudWatch Log Group à regra para capturar eventos de entrada. O destino deve ter a opção Configurar entrada de destino definida como Eventos correspondentes para que o JSON emitido pelo serviço seja recebido corretamente.
Crie um padrão de evento no mesmo formato JSON do evento de entrada
Pré-requisitos:
- Todos os campos que você não especificar em seu padrão de evento serão correspondidos automaticamente. Por exemplo, se Detalhe não estiver especificado no padrão do evento, o padrão do evento corresponderá a cada evento um detalhe qualquer.
- Para combinar campos que estão um nível abaixo na estrutura JSON, use colchetes { }. Um visualizador JSON pode ser útil se você estiver analisando estruturas de eventos maiores.
- A string a ser combinada com o evento JSON deve estar entre colchetes [ ]. Você pode incluir vários valores entre colchetes para que o evento seja invocado quando um dos valores estiver presente em um evento de entrada. Por exemplo, para invocar um evento com base em cada evento enviado pelo Amazon EC2 ou pelo Amazon DynamoDB, use o seguinte comando:
{ "source": [ "aws.ec2", "aws.dynamodb" ] }
Use o destino do SNS ou do CloudWatch para obter o evento de entrada
Este exemplo mostra um evento do Route 53 emitido para o EventBridge. A chamada da API ChangeResourceRecordSets representa a criação de um registro A em uma zona hospedada no Amazon Route 53. Um tópico do Amazon Simple Notification Service (Amazon SNS) ou um destino do Amazon CloudWatch Log Group captura o seguinte evento:
{ "version": "0", "id": "d857ae5c-cc83-3742-ab88-d825311ee4e9", "detail-type": "AWS API Call via CloudTrail", "source": "aws.route53", "account": "123456789012", "time": "2019-12-05T16:50:53Z", "region": "us-east-1", "resources": [], "detail": { "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAABCDEFGHIJKLMNOPQ:Admin", "arn": "arn:aws:sts::123456789012:assumed-role/Admin", "accountId": "123456789012", "accessKeyId": "ASIAABCDEFGH12345678", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAABCDEFGHIJKLMNOPQ", "arn": "arn:aws:iam::123456789012:role/Admin", "accountId": "123456789012", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2019-12-05T16:28:27Z" } } }, "eventTime": "2019-12-05T16:50:53Z", "eventSource": "route53.amazonaws.com", "eventName": "ChangeResourceRecordSets", "awsRegion": "us-east-1", "sourceIPAddress": "12.34.56.78", "userAgent": "console.amazonaws.com", "requestParameters": { "hostedZoneId": "Z1RP12345WXRQD", "changeBatch": { "changes": [ { "action": "CREATE", "resourceRecordSet": { "type": "A", "tTL": 300, "resourceRecords": [ { "value": "4.4.4.4" } ], "name": "test.example.us." } } ] } }, "responseElements": { "changeInfo": { "status": "PENDING", "id": "/change/C271P4WIKN511J", "submittedAt": "Dec 5, 2019 4:50:53 PM" } }, "additionalEventData": { "Note": "Do not use to reconstruct hosted zone" }, "requestID": "bbbf9847-96cb-45ef-b617-d535b9fe83d8", "eventID": "74e2d2c8-7497-4292-94d0-348272dbc4f7", "eventType": "AwsApiCall", "apiVersion": "2013-04-01" } }
Crie o EventPattern correspondente
Este exemplo de padrão de evento é filtrado em vários campos. Por exemplo, eventName, hostedZoneLD, action e type. Os eventos correspondentes devem conter todos os campos e valores correspondentes. O padrão isola os registros A criados em uma zona hospedada específica.
{ "source": [ "aws.route53" ], "detail": { "eventSource": [ "route53.amazonaws.com" ], "eventName": [ "ChangeResourceRecordSets" ], "requestParameters": { "hostedZoneId": [ "Z1RP12345WXRQD" ], "changeBatch": { "changes": { "action": [ "CREATE" ], "resourceRecordSet": { "type": [ "A" ] } } } } } }
Teste o padrão do evento
Use o console do EventBridge para testar o padrão do evento
Para aproveitar o EventBridge Sandbox, conclua as seguintes etapas:
- Na seção Exemplo de evento, selecione ou insira um exemplo de evento.
- Na seção Padrão de evento, forneça um padrão de evento. Você pode usar os menus no formulário Padrão de evento para criar um padrão de evento. Ou você pode inserir um padrão de evento personalizado com os Padrões personalizados (editor JSON).
- Depois que as duas seções forem preenchidas, selecione Padrão de teste para confirmar se o padrão de evento corresponde ao exemplo de evento fornecido.
Use a AWS CLI para testar o padrão de eventos
Na AWS CLI, execute o comando test-event-pattern. Para confirmar se o padrão do evento corresponde, certifique-se de que o resultado seja verdadeiro. Você pode identificar os eventos JSON enviados pelo serviço da AWS e ajudar seu padrão de eventos personalizado a capturar eventos específicos.
Informações relacionadas
Padrões de eventos do Amazon EventBridge
Tutorial: Crie uma regra do EventBridge que reaja às chamadas de API da AWS com o CloudTrail
Amazon EventBridge — Qual é a diferença entre o CloudWatch Events e o EventBridge? no site do YouTube
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
- feita há 3 meses
- feita há 5 meses
AWS OFICIALAtualizada há 5 meses