Criação de padrões de eventos em EventBridge - 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á.

Criação de padrões de eventos em EventBridge

Para criar um padrão de evento, especifique os campos aos quais o padrão de evento deve corresponder. Especifique somente os campos usados para fazer a correspondência.

Por exemplo, o exemplo de padrão de evento a seguir fornece valores somente para três campos: os campos de nível superior "source" e"detail-type", e o "state" campo dentro do campo do "detail" objeto. EventBridgeignora todos os outros campos do evento ao aplicar a regra.

{ "source": ["aws.ec2"], "detail-type": ["EC2 Instance State-change Notification"], "detail": { "state": ["terminated"] } }

Para que um padrão de evento corresponda a um evento, o evento deve conter todos os nomes de campos listados no padrão do evento. Os nomes de campos também devem aparecer no evento com a mesma estrutura de aninhamento.

Ao escrever padrões de eventos para corresponder a eventos, você pode usar o test-event-pattern CLI comando TestEventPattern API ou o para testar se o padrão corresponde aos eventos corretos. Para obter mais informações, consulte TestEventPattern.

Valores de eventos correspondentes

Em um padrão de evento, o valor correspondente está em uma JSON matriz, entre colchetes (“[”, “]”) para que você possa fornecer vários valores. Por exemplo, para combinar eventos da Amazon EC2 ou AWS Fargate, você pode usar o seguinte padrão, que corresponde a eventos em que o valor do "source" campo é "aws.ec2" ou"aws.fargate".

{ "source": ["aws.ec2", "aws.fargate"] }

Para obter mais informações, consulte Correspondência em vários valores de campo.

Usando operadores de comparação nos padrões de EventBridge eventos da Amazon

A Amazon EventBridge oferece suporte à filtragem declarativa de conteúdo usando padrões de eventos. Com a filtragem de conteúdo, é possível escrever padrões de eventos complexos que só são acionados sob condições muito específicas. Por exemplo, é possível criar um padrão de evento que corresponda a um evento quando:

  • Um campo do evento está dentro de um intervalo numérico específico.

  • O evento vem de um endereço IP específico.

  • Não existe um campo específico no eventoJSON.

Para obter mais informações, consulte Operadores de comparação.

Considerações ao criar padrões de eventos

A seguir, algumas considerações ao criar seus padrões de eventos:

  • EventBridge ignora os campos do evento que não estão incluídos no padrão do evento. O efeito é que há um curinga "*": "*" para campos que não aparecem no padrão do evento.

  • Os valores aos quais os padrões de eventos correspondem seguem JSON regras. Você pode incluir strings entre aspas (“), números e as palavras-chave true, false e null.

  • Para strings, EventBridge usa a character-by-character correspondência exata sem dobrar maiúsculas e minúsculas ou qualquer outra normalização de string.

  • Para números, EventBridge usa representação de string. Por exemplo, 300, 300.0 e 3.0e2 não são considerados iguais.

  • Se vários padrões forem especificados para o mesmo JSON campo, usará EventBridge somente o último.

  • Lembre-se de que, ao EventBridge compilar padrões de eventos para uso, ele usa ponto (.) como caractere de junção.

    Isso significa que EventBridge tratará os seguintes padrões de eventos como idênticos:

    ## has no dots in keys { "detail" : { "state": { "status": [ "running" ] } } } ## has dots in keys { "detail" : { "state.status": [ "running" ] } }

    E que os dois padrões de eventos corresponderão aos dois seguintes eventos:

    ## has no dots in keys { "detail" : { "state": { "status": "running" } } } ## has dots in keys { "detail" : { "state.status": "running" } }
    nota

    Isso descreve EventBridge o comportamento atual e não se deve confiar que não mude.

  • Os padrões de eventos contendo campos duplicados são inválidos. Se um padrão contiver campos duplicados, considerará EventBridge apenas o valor final do campo.

    Por exemplo, os seguintes padrões de eventos corresponderão ao mesmo evento:

    ## has duplicate keys { "source": ["aws.s3"], "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["s3.amazonaws.com"], "eventSource": ["sns.amazonaws.com"] } } ## has unique keys { "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["sns.amazonaws.com"] } }

    E EventBridge trata os dois eventos a seguir como idênticos:

    ## has duplicate keys { "source": ["aws.s3"], "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": [ { "eventSource": ["s3.amazonaws.com"], "eventSource": ["sns.amazonaws.com"] } ] } ## has unique keys { "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": [ { "eventSource": ["sns.amazonaws.com"] } ] }
    nota

    Isso descreve EventBridge o comportamento atual e não se deve confiar que não mude.