

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Fuentes de eventos para un bus de eventos personalizado
<a name="eb-custom-bus-event-sources"></a>

Una fuente de eventos incorpora los eventos de un socio de AWS servicio o SaaS en un bus de eventos personalizado. Se crea con `CreateEventSource` un autobús de destino y otro de origen, por ejemplo`aws.s3`, y se envían los EventBridge eventos desde el origen hasta el autobús. Sus propias aplicaciones se publican directamente en el autobús, por lo que solo necesitará una fuente de eventos para los eventos que no cree usted mismo.

Los eventos ingeridos llegan al autobús de destino en EventBridge un sobre con el tipo `application/eventbridge+json` de contenido. Los datos del evento contienen los campos del sobre: `source``detail-type`,`account`,`time`, `region``resources`, y`detail`. EventBridge también establece los campos de metadatos `aws:DetailType` del sistema `aws:Source` y a partir de los campos de metadatos del sobre `source` y`detail-type`. Consulte [Estructura del evento: datos, metadatos y metadatos del sistema](eb-custom-bus-addressing.md).

## Cómo se mueven los eventos
<a name="eb-custom-bus-event-sources-how"></a>

Cuando creas una fuente de eventos, EventBridge creas una regla gestionada y un objetivo en tu cuenta, en tu Custom Event Bus - Classic, y ellos transmiten los eventos desde el origen hasta tu Custom Event Bus. Ambos aparecen en tu cuenta con el `ManagedBy` valor establecido en`events.amazonaws.com`. Tú no los administras; al eliminar o revocar la fuente del evento, los eliminas. Por lo tanto, los eventos siguen apareciendo en las métricas de Custom Event Bus - Classic.

## AWS fuentes de eventos de servicio
<a name="eb-custom-bus-event-sources-aws"></a>

Una fuente de eventos de AWS servicio ingiere los eventos que un AWS servicio, como `aws.s3` o`aws.ec2`, emite para tu cuenta. De forma predeterminada, todos los eventos de ese servicio llegan al autobús; para reducirlo, agrega un. `Pattern` El siguiente ejemplo crea una fuente de eventos que solo admite eventos creados por objetos de 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\"]}"}}'
```

El patrón de la fuente del evento decide qué pasa al autobús. El filtro de un suscriptor decide qué recibe ese suscriptor de los eventos que fluyen por el bus; consulte[Filtrado de eventos para un suscriptor](eb-custom-bus-filtering.md). Escriba el patrón en la sintaxis del patrón de EventBridge eventos ([Patrones de EventBridge eventos de Amazon](eb-event-patterns.md)) y EventBridge evalúelo comparándolo con el sobre. Deja la `source` clave, las claves de nivel superior `account` y `region` las claves fuera del patrón: EventBridge añade esas condiciones propiamente dichas, de tu cuenta y región y del servicio que has seleccionado, y rechaza el patrón que las proporciona.

## Orígenes de eventos para socios
<a name="eb-custom-bus-event-sources-partner"></a>

Una fuente de eventos asociada incorpora los eventos que un socio de SaaS envía a tu cuenta. Antes de crear una, el socio debe ofrecer una fuente de eventos asociada a su cuenta (consulte[Recibir eventos de un socio de SaaS con Amazon EventBridge](eb-saas.md)) y esa fuente debe estar en el `PENDING` estado. En el siguiente ejemplo, se crea una fuente de eventos para ella.

```
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"}}'
```

Al crear la fuente de eventos, EventBridge crea un bus de eventos de socios gestionado (un bus de eventos personalizado, clásico) en su cuenta para activar la fuente de socios. Cuando eliminas la fuente de eventos, EventBridge borra ese bus y devuelve la fuente asociada a`PENDING`. Para cifrar ese autobús con una clave gestionada por el cliente, establece `PartnerBusKmsKeyIdentifier` una clave de tu cuenta y región; de lo contrario, EventBridge utiliza una AWS clave propia.

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

Para capturar los eventos que no llegan al bus, establezca `OnFailureConfiguration.Arn` una cola de Amazon SQS estándar en su cuenta y región; se rechazará una cola FIFO. Los mensajes que llegan a la cola provienen del principal del `events.amazonaws.com` servicio, no de un rol que usted haya asignado, por lo que debe incluir a ese principal `sqs:SendMessage` en la política de recursos de la cola.

```
{
    "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" } }
}
```

Una fuente de eventos asociada envía información a la cola con dos ARN de origen: la regla administrada, para los errores de entrega, y el bus de eventos del socio administrado, para los errores de cifrado. Una política que establezca condiciones `aws:SourceArn` debe permitir ambos.

## Permisos
<a name="eb-custom-bus-event-sources-access"></a>

Para crear una fuente de eventos sobre un autobús en otra cuenta, el propietario del autobús debe otorgarte una autorización`events:CreateEventSource`, AWS RAM ya sea compartiendo (`AWSRAMEventBridgeEventBusV2EventSourceAccess`o`FullAccess`) o con una `PutResourcePolicy` declaración sobre el autobús. La clave de `events:source` estado contiene el nombre del AWS servicio o el nombre de la fuente del evento asociado, de modo que el propietario del autobús puede permitir o denegar orígenes específicos. Consulte [Compartir un bus de eventos personalizado con otras cuentas](eb-custom-bus-sharing.md).

Para cifrar el bus de eventos gestionado por el socio, es necesario que utilices tu identidad `kms:DescribeKey` y `kms:Decrypt` la clave que hayas `PartnerBusKmsKeyIdentifier` introducido; sin ellas, `CreateEventSource` no funciona. `AccessDeniedException`

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

Si otra cuenta es la propietaria del bus de destino y lo cifra con una clave gestionada por el cliente, la política de esa clave también debe admitir tu cuenta; de lo contrario, no se puede crear, actualizar y describir el origen del evento.

## Suscribirse a los eventos ingeridos
<a name="eb-custom-bus-event-sources-shape"></a>

Para hacer coincidir los eventos AWS de servicio o de los socios de un suscriptor, filtra en el campo de metadatos del `aws:Source` sistema. EventBridge escribe este campo y ninguna llamada de publicación puede establecer un valor que comience por`aws.`, por lo que una coincidencia en su valor es la única coincidencia que demuestra el origen de un evento. En el caso AWS de los eventos de servicio, haga coincidir el nombre del servicio; en el caso de los eventos del socio, haga coincidir el nombre de la fuente del evento del socio.

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

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

Para filtrar el contenido del evento, agrega un `DATA` filtro. El sobre contiene el contenido debajo`detail`.

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

Los datos del evento también contienen `source` y`detail-type`, y cualquier editor puede escribir esos valores en una carga útil, de modo que no prueben el origen. Haga coincidir `aws:Source` por valor, no por presencia: una `PutEvents` llamada directa también establece`aws:Source`, partiendo de sí misma`Source`, la que nunca empieza `aws.` por.

## Detener permanentemente una fuente de eventos
<a name="eb-custom-bus-event-sources-revoke"></a>

El propietario del autobús puede detener permanentemente la ingesta de una fuente de eventos llamando `RevokeResource` con su ARN; consulte. [Revocación de un suscriptor o una fuente de eventos](eb-custom-bus-access-revoke.md) No se puede restaurar una fuente de eventos revocada. La revocación cubre el único recurso que nombras, así que combínala con una política de recursos de bus que impida que la misma cuenta cree otra. Para impedir que la cuenta cree cualquier fuente de eventos en el autobús:

```
{
    "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 un origen y permitir otros, condiciona la denegación a`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 los acontecimientos se cruzan con el autobús
<a name="eb-custom-bus-event-sources-troubleshooting"></a>

Dos conjuntos de métricas muestran si los eventos ingeridos llegan al bus de eventos personalizado. La regla gestionada muestra las métricas de reglas habituales de tu cuenta, en. `AWS/Events` Las métricas de publicación del autobús de destino incluyen una `EventSource` dimensión que proporciona un desglose del tráfico entrante por fuente de eventos; consulte. [Observabilidad del bus de eventos personalizado: métricas, registros y CloudTrail](eb-custom-bus-observability.md)

Cuando un suscriptor transfiere eventos de un bus de eventos personalizado a otro de una cuenta a otra, los eventos de AWS servicio y de los socios se mantienen intactos `aws:DetailType` mientras la estructura `aws:Source` y el contenido del evento permanezcan intactos. EventBridge autoriza su llegada al autobús de destino con`events:PutEvents`, por lo que la política de recursos del autobús de destino debe conceder esa acción a la función de reenvío. Las aplicaciones publicadas contienen eventos`events:PutRawEvents`, por lo que una transmisión que combine ambas requiere ambas acciones; consulte. [Objetivo del autobús del evento: autobús a autobús](eb-custom-bus-target-bus.md)