Quero criar um fluxo de trabalho do Amazon EventBridge que inicie quando ocorrem alterações nos buckets ou objetos do Amazon Simple Storage Service (Amazon S3).
Resolução
Para usar o EventBridge para capturar eventos do Amazon S3, é possível usar o AWS CloudTrail ou capturar eventos diretamente do Amazon S3.
Cada opção tem seu próprio conjunto de metadados. Os eventos oferecidos pelo CloudTrail incluem detalhes da API da AWS, do AWS Identity and Access Management (AWS IAM) e de userAgent. Os eventos enviados pelo Amazon S3 incluem detalhes do objeto, por exemplo, tamanho.
Capturar eventos do S3 por meio do CloudTrail
É possível usar o CloudTrail para monitorar e capturar as alterações feitas nos buckets do S3, como criação, modificação ou exclusão. O CloudTrail encaminha automaticamente esses eventos para o EventBridge.
Para capturar eventos do S3 por meio do CloudTrail, conclua as seguintes etapas:
- Crie uma trilha do CloudTrail para registrar eventos nos buckets relevantes do S3.
- Crie um recurso para processar os eventos do S3.
Observação: o recurso que você cria pode ser qualquer destino compatível do EventBridge. Por exemplo, o AWS Lambda, uma tarefa do Amazon Elastic Container Service (Amazon ECS), um destino de API ou um fluxo de entrega do Amazon Kinesis Data Firehose.
- Crie uma regra do EventBridge com um padrão de evento que corresponda aos eventos do S3. O exemplo a seguir mostra um padrão de evento que corresponde às chamadas de API PutObject, DeleteObject e DeleteObjects feitas em um bucket específico do S3:
{ "source": [
"aws.s3"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventName": [
"PutObject",
"DeleteObject",
"DeleteObjects"
],
"requestParameters": {
"bucketName": [
"123456789012-prod-app"
],
"key": [
{
"prefix": "feature1/"
},
{
"prefix": "feature2/"
}
]
}
}
}
Observação: as chaves começam com feature1/ e feature2/.
- Associe o recurso que você criou à regra do EventBridge como um destino.
Para mais informações sobre como capturar eventos de dados, consulte Tutorial: Registre em log as operações em nível de objeto do Amazon S3 usando o EventBridge.
Usar o Amazon S3 para capturar eventos do S3
Nessa opção, o CloudTrail não é obrigatório. O bucket do S3 está configurado para enviar todas as operações desse recurso para o serviço EventBridge.
Ativar eventos do S3 no EventBridge
- Abra o console do Amazon S3.
- Na lista Buckets, escolha o nome do bucket para o qual você deseja ativar eventos.
Observação: para mais informações, consulte Habilitar o Amazon EventBridge.
- Selecione Propriedades.
- Navegue até a seção Notificações de eventos e encontre o Amazon EventBridge. Escolha Editar.
- Em Enviar notificações ao Amazon EventBridge para todos os eventos desse bucket, escolha Ativar.
Criar um recurso para processar eventos do S3
O recurso que você cria pode ser qualquer destino compatível do EventBridge.
Criar uma regra do EventBridge com um padrão de evento para corresponder aos eventos do S3
Crie uma regra do EventBridge com um padrão de evento que corresponda aos eventos do S3. Veja a seguir um exemplo de um padrão de evento que começa quando um objeto é criado ou excluído em um bucket específico do S3:
{ "source": [
"aws.s3"
],
"detail-type": [
"Object Created",
"Object Deleted"
],
"detail": {
"bucket": {
"name": [
"123456789012-prod-app"
]
},
"object": {
"size": [
{
"numeric": [
">=",
15728640
]
}
],
"key": [
{
"suffix": ".zip"
}
]
}
}
}
Observação: o padrão é um filtro nos parâmetros do nome do arquivo, como um tamanho maior que 15 MB e com uma extensão zip.
Associar o recurso à regra
Associe o recurso à regra que você criou com a regra do EventBridge como destino.
Solucionar erros
Certifique-se de que as trilhas necessárias do CloudTrail ou as notificações de eventos do S3 estejam configuradas corretamente.
Use as métricas](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-monitoring.html#eb-metrics) de [EventBridge TriggeredRules e Invocations para confirmar correspondências bem-sucedidas com a regra e invocações de destino bem-sucedidas.
Os pontos de dados de TriggeredRules indicam que a regra correspondeu ao evento de entrada. Se não houver pontos de dados, reavalie o padrão do evento.
A métrica FailedInvocations indica que há um problema com a forma como o EventBridge encaminha eventos para o destino. Isso pode estar relacionado ao IAM, às permissões da política de recursos ou às configurações de destino.
Como o padrão do evento diferencia maiúsculas de minúsculas, “FAILED” e “failed” são processados de forma diferente. A ferramenta EventBridge Sandbox oferece exemplos de eventos de serviços da AWS e parceiros do EventBridge. A ferramenta valida os eventos recebidos em relação ao padrão do evento.
Para combinar um evento, todos os campos em um padrão de evento devem combinar. Para solucionar o padrão do evento, remova os campos para criar um padrão de evento mais genérico. Para mais informações, consulte Como posso solucionar problemas com as regras do Amazon EventBridge?
As regras do EventBridge podem ter até cinco destinos. Para solucionar problemas, anexe temporariamente um destino de grupo do CloudWatch Logs ou um tópico do Amazon Simple Notification Service (Amazon SNS). Tanto o grupo de logs quanto as notificações capturam o evento encaminhado ao destino e ajudam a isolar configurações incorretas.
Informações relacionadas
Como faço para criar uma regra do EventBridge para automatizar as respostas às chamadas de API do CloudTrail?
Usar notificações de eventos do Amazon S3 com o Amazon EventBridge
Usar o tratamento dinâmico de eventos do Amazon S3 com o Amazon EventBridge