Agrega EventBridge eventos con Step Functions - AWS Step Functions

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.

Agrega EventBridge eventos con Step Functions

Step Functions proporciona una integración de servicios API para la integración con Amazon EventBridge. Aprenda a crear aplicaciones basadas en eventos enviando eventos personalizados directamente desde los flujos de trabajo de Step Functions.

Para obtener información sobre la integración con AWS servicios en Step Functions, consulte Integración de los servicios de yPasar parámetros a un servicio API en Step Functions.

Características clave de la integración optimizada EventBridge
  • La máquina de ejecución ARN y la máquina de estados se ARN añaden automáticamente al Resources campo de cada unaPutEventsRequestEntry.

  • Si la respuesta de PutEvents contiene un FailedEntryCount distinto de cero, el estado Task genera el error EventBridge.FailedEntry.

Para utilizarlos PutEventsAPI, tendrás que crear una EventBridge regla en tu cuenta que se ajuste al patrón específico de los eventos que vas a enviar. Por ejemplo, puede:

  • Cree una función Lambda en su cuenta que reciba e imprima un evento que coincida con una EventBridge regla.

  • Cree una EventBridge regla en su cuenta en el bus de eventos predeterminado que coincida con un patrón de eventos específico y se dirija a la función Lambda.

Para obtener más información, consulte:

El siguiente ejemplo incluye una Task que envía un evento personalizado:

{ "Type": "Task", "Resource": "arn:aws:states:::events:putEvents", "Parameters": { "Entries": [ { "Detail": { "Message": "MyMessage" }, "DetailType": "MyDetailType", "EventBusName": "MyEventBus", "Source": "my.source" } ] }, "End": true }
nota

Hay una cuota para el tamaño máximo de los datos de entrada o resultado para una tarea en Step Functions. Esto le limita a 256 KB de datos en una cadena codificada en UTF -8 cuando envía o recibe datos de otro servicio. Consulte Cuotas relacionadas con ejecuciones de máquinas de estado.

Compatible EventBridge API

La sintaxis admitida EventBridge API incluye:

Control de errores

PutEventsAPIAcepta una matriz de entradas como entrada y, a continuación, devuelve una matriz de entradas de resultados. Mientras la PutEvents acción se haya realizado correctamente, PutEvents devolverá una respuesta de HTTP 200, incluso si una o más entradas fallaron. PutEventsdevuelve el número de entradas fallidas en el FailedEntryCount campo.

Step Functions comprueba si FailedEntryCount es mayor que cero. Si es mayor que cero, Step Functions genera el error EventBridge.FailedEntry. Esto le permite usar el control de errores integrado de Step Functions en los estados de las tareas para detectar o reintentar entradas con error, en lugar de tener que usar un estado adicional para analizar el FailedEntryCount de la respuesta.

nota

Si ha implementado la idempotencia y puede reintentarlo de forma segura en todas las entradas, puede utilizar la lógica de reintento de Step Functions. Step Functions no elimina las entradas correctas de la matriz de entradas PutEvents antes de volver a intentarlo. En su lugar, lo vuelve a intentar con la matriz original de entradas.

IAMpolíticas de llamadas EventBridge

En las siguientes plantillas de ejemplo se muestra cómo AWS Step Functions genera IAM políticas en función de los recursos de la definición de su máquina de estados. Para obtener más información, consulte Cómo Step Functions genera IAM políticas para servicios integrados y Descubra los patrones de integración de servicios en Step Functions.

PutEvents

Recursos estáticos

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "events:PutEvents" ], "Resource": [ "arn:aws:events:us-east-1:123456789012:event-bus/stepfunctions-sampleproject-eventbus" ], "Effect": "Allow" } ] }

Recursos dinámicos

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "events:PutEvents" ], "Resource": "arn:aws:events:*:*:event-bus/*" } ] }