

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á.

# Fontes de eventos para um ônibus de eventos personalizado
<a name="eb-custom-bus-event-sources"></a>

Uma fonte de eventos ingere eventos de um AWS serviço ou de um parceiro SaaS em um barramento de eventos personalizado. Você o cria com`CreateEventSource`, nomeando um ônibus de destino e uma origem, por exemplo`aws.s3`, e EventBridge entrega eventos da origem ao ônibus. Seus próprios aplicativos são publicados diretamente no barramento, então você precisa de uma fonte de eventos somente para eventos que você mesmo não produz.

Os eventos ingeridos chegam ao ônibus de destino no EventBridge envelope, com o tipo de conteúdo. `application/eventbridge+json` Os dados do evento contêm os campos do envelope: `source` `detail-type``account`,`time`,`region`,`resources`, e. `detail` EventBridge também define os campos de metadados do `aws:DetailType` sistema `aws:Source` e do envelope e. `source` `detail-type` Consulte [Estrutura do evento: dados, metadados e metadados do sistema](eb-custom-bus-addressing.md).

## Como os eventos são movidos
<a name="eb-custom-bus-event-sources-how"></a>

Quando você cria uma fonte de eventos, EventBridge cria uma regra gerenciada e uma meta em sua conta, no seu Custom Event Bus - Classic, e eles transportam eventos da origem para o seu Custom Event Bus. Ambos aparecem na sua conta com a `ManagedBy` opção definida como`events.amazonaws.com`. Você não os gerencia; excluir ou revogar a fonte do evento os remove. Portanto, os eventos ainda aparecem nas métricas do Custom Event Bus - Classic.

## AWS fontes de eventos de serviço
<a name="eb-custom-bus-event-sources-aws"></a>

Uma fonte de eventos de AWS serviço ingere os eventos que um AWS serviço, como `aws.s3` ou`aws.ec2`, emite para sua conta. Por padrão, cada evento desse serviço chega no ônibus; para restringir isso, adicione um`Pattern`. O exemplo a seguir cria uma fonte de eventos que admite somente eventos criados por objetos do Amazon S3.

```
aws eventsv2 create-event-source \
    --name s3-object-created \
    --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --configuration '{"AwsServiceEventsConfiguration":{"AwsService":"aws.s3","Pattern":"{\"detail-type\":[\"Object Created\"]}"}}'
```

O padrão da fonte do evento decide o que cruza o ônibus. O filtro de um assinante decide o que esse assinante recebe dos eventos que fluem pelo ônibus; consulte. [Filtrando eventos para um assinante](eb-custom-bus-filtering.md) Escreva o padrão na sintaxe do padrão de EventBridge evento ([Padrões de EventBridge eventos da Amazon](eb-event-patterns.md)) e EventBridge avalie-o em relação ao envelope. Deixe a `source` chave, o nível superior `account` e `region` as chaves fora do padrão: EventBridge adiciona essas condições em si, da sua conta e região e do serviço que você selecionou, e rejeita um padrão que as fornece.

## Origens de eventos de parceiros
<a name="eb-custom-bus-event-sources-partner"></a>

Uma fonte de eventos do parceiro ingere os eventos que um parceiro de SaaS envia para sua conta. Antes de criar uma, o parceiro deve oferecer uma fonte de eventos de parceiro para sua conta (consulte[Recebendo eventos de um parceiro SaaS com a Amazon EventBridge](eb-saas.md)), e essa fonte deve estar no `PENDING` estado. O exemplo a seguir cria uma fonte de eventos para ele.

```
aws eventsv2 create-event-source \
    --name example-partner-events \
    --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --configuration '{"PartnerEventsConfiguration":{"PartnerEventSourceArn":"arn:aws:events:us-east-1::event-source/aws.partner/example.com/12345"}}'
```

Quando você cria a fonte do evento, EventBridge cria um barramento de eventos de parceiro gerenciado (um barramento de eventos personalizado - clássico) em sua conta para ativar a fonte do parceiro. Quando você exclui a fonte do evento, EventBridge exclui esse barramento e retorna a fonte do parceiro para o. `PENDING` Para criptografar esse barramento com uma chave gerenciada pelo cliente, `PartnerBusKmsKeyIdentifier` defina como uma chave em sua conta e região; caso contrário, EventBridge usa uma chave AWS própria.

## Dead-letter fila
<a name="eb-custom-bus-event-sources-dlq"></a>

Para capturar eventos que não conseguem alcançar o barramento, `OnFailureConfiguration.Arn` defina como uma fila padrão do Amazon SQS em sua conta e região; uma fila FIFO é rejeitada. As mensagens chegam na fila do principal do `events.amazonaws.com` serviço, não de uma função que você fornece, portanto, conceda esse principal `sqs:SendMessage` na política de recursos da fila.

```
{
    "Effect": "Allow",
    "Principal": { "Service": "events.amazonaws.com" },
    "Action": "sqs:SendMessage",
    "Resource": "arn:aws:sqs:us-east-1:111122223333:my-event-source-dlq",
    "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } }
}
```

Uma fonte de eventos do parceiro envia para a fila sob dois ARNs de origem: a regra gerenciada, para falhas de entrega, e o barramento de eventos do parceiro gerenciado, para falhas de criptografia. Uma política que condiciona `aws:SourceArn` deve permitir ambas.

## Permissões
<a name="eb-custom-bus-event-sources-access"></a>

Para criar uma fonte de eventos em um ônibus em outra conta, o proprietário do ônibus deve conceder a você`events:CreateEventSource`, por meio de uma AWS RAM ação (`AWSRAMEventBridgeEventBusV2EventSourceAccess`ou`FullAccess`) ou com um `PutResourcePolicy` extrato no ônibus. A chave de `events:source` condição contém o nome do AWS serviço ou o nome da fonte do evento do parceiro, para que o proprietário do ônibus possa permitir ou negar origens específicas. Consulte [Compartilhando um Event Bus personalizado com outras contas](eb-custom-bus-sharing.md).

Para criptografar o barramento de eventos do parceiro gerenciado, suas necessidades de identidade `kms:DescribeKey` e `kms:Decrypt` na chave que você nomeou`PartnerBusKmsKeyIdentifier`; sem elas, `CreateEventSource` falhará. `AccessDeniedException`

```
{
    "Effect": "Allow",
    "Action": ["kms:DescribeKey", "kms:Decrypt"],
    "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
```

Se outra conta possuir o ônibus de destino e criptografá-lo com uma chave gerenciada pelo cliente, a política dessa chave também deverá admitir sua conta; caso contrário, crie, atualize e descreva a falha na origem do evento.

## Inscrever-se em eventos ingeridos
<a name="eb-custom-bus-event-sources-shape"></a>

Para combinar eventos AWS de serviços ou parceiros em um assinante, filtre no campo de metadados do `aws:Source` sistema. EventBridge grava esse campo e nenhuma chamada de publicação pode definir um valor que comece com`aws.`, portanto, uma correspondência em seu valor é a única correspondência que prova a origem de um evento. Para eventos AWS de serviço, combine o nome do serviço; para eventos de parceiros, combine o nome da fonte do evento do parceiro.

```
{ "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"aws.s3\"]}" }

{ "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[{\"prefix\":\"aws.partner/example.com\"}]}" }
```

Para filtrar o conteúdo do evento, adicione um `DATA` filtro. O envelope contém o conteúdo abaixo`detail`.

```
{ "Scope": "DATA", "Pattern": "{\"detail\":{\"bucket\":{\"name\":[\"amzn-s3-demo-bucket\"]}}}" }
```

Os dados do evento também contêm `source` e`detail-type`, e qualquer editor pode escrever esses valores em uma carga útil, para que eles não comprovem a origem. Combine `aws:Source` por valor, não por presença: uma `PutEvents` chamada direta também é definida`aws:Source`, por si mesma`Source`, com a qual nunca começa`aws.`.

## Interromper permanentemente uma fonte de eventos
<a name="eb-custom-bus-event-sources-revoke"></a>

O proprietário do ônibus pode impedir permanentemente a ingestão de uma fonte de eventos ligando `RevokeResource` com seu ARN; consulte. [Revogar um assinante ou uma fonte de eventos](eb-custom-bus-access-revoke.md) Uma fonte de evento revogada não pode ser restaurada. A revogação abrange o único recurso que você nomeia, então associe-o a uma política de recursos de ônibus que impede a mesma conta de criar outra. Para impedir que a conta crie qualquer fonte de eventos no ônibus:

```
{
    "Effect": "Deny",
    "Principal": { "AWS": "arn:aws:iam::444455556666:root" },
    "Action": "events:CreateEventSource",
    "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef"
}
```

Para bloquear uma origem e permitir outras, condicione a negação`events:source`.

```
{
    "Effect": "Deny",
    "Principal": { "AWS": "arn:aws:iam::444455556666:root" },
    "Action": "events:CreateEventSource",
    "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef",
    "Condition": { "StringEquals": { "events:source": "aws.partner/example.com/12345" } }
}
```

## Confirmando que os eventos entram no ônibus
<a name="eb-custom-bus-event-sources-troubleshooting"></a>

Dois conjuntos de métricas mostram se os eventos ingeridos chegam ao Custom Event Bus. A regra gerenciada relata as métricas de regras usuais em sua conta, em`AWS/Events`. As métricas de publicação do barramento de destino têm uma `EventSource` dimensão, que fornece um detalhamento do tráfego de entrada por fonte de evento; consulte. [Observabilidade do barramento de eventos personalizado: métricas, registros e CloudTrail](eb-custom-bus-observability.md)

Quando um assinante transporta eventos de um barramento de eventos personalizado para outro entre contas, os eventos de AWS serviços e parceiros permanecem intactos, `aws:DetailType` desde que a estrutura `aws:Source` e o conteúdo do evento permaneçam intactos. EventBridge autoriza sua chegada no ônibus de destino com`events:PutEvents`, portanto, a política de recursos do ônibus de destino deve conceder essa ação à função de encaminhamento. Os eventos que seus aplicativos publicados realizam`events:PutRawEvents`, portanto, um fluxo que mistura os dois precisa de ambas as ações; consulte[Objetivo do ônibus de eventos: ônibus para ônibus](eb-custom-bus-target-bus.md).