Criar padrões de eventos no 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 padrão de eventos a seguir fornece valores somente para três campos: os campos de nível superior "source" e "detail-type" e o campo "state" dentro do campo do objeto "detail". O EventBridge ignora 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 gravar padrões de regras para corresponder, pode usar a API TestEventPattern ou o comando test-event-pattern da CLI para garantir que o padrão corresponda ao JSON correto. Para obter mais informações, consulte TestEventPattern.
Valores de eventos correspondentes
Em um padrão de evento, o valor correspondente está em uma matriz JSON, entre colchetes ("[", "]") para que possa fornecer vários valores. Por exemplo, para combinar eventos do Amazon EC2 ou AWS Fargate, é preciso usar o seguinte padrão, que corresponde a eventos em que o valor do campo "source" é "aws.ec2" ou "aws.fargate".
{
"source": ["aws.ec2", "aws.fargate"]
}
Para obter mais informações, consulte Fazer a correspondência com vários valores de campo.
Usar operadores de comparação nos padrões de eventos do Amazon EventBridge
O Amazon EventBridge é compatível com a filtragem declarativa usando padrões de evento. 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 JSON do evento.
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:
O 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 de correspondência nos padrões de evento seguem regras JSON. Você pode incluir strings entre aspas (“), números e as palavras-chave
true,falseenull.Em strings, o EventBridge usa correspondência exata caractere por caractere sem conversão de caixa alta/baixa nem qualquer normalização de strings.
Para números, o EventBridge usa representação de cadeia de caracteres. Por exemplo, 300, 300.0 e 3.0e2 não são considerados iguais.
Se vários padrões forem especificados para o mesmo campo JSON, o EventBridge usará somente o último.
-
Lembre-se de que, quando o EventBridge compila padrões de eventos para uso, ele usa ponto (.) como caractere de junção.
Isto significa que o 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
Isto descreve o comportamento atual do EventBridge e não se deve confiar que não seja alterado.
-
Os padrões de eventos contendo campos duplicados são inválidos. Se um padrão contiver campos duplicados, o EventBridge considerará 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 o EventBridge trata os dois eventos seguintes 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
Isto descreve o comportamento atual do EventBridge e não se deve confiar que não seja alterado.