Adición de eventos de EventBridge con Step Functions - AWS Step Functions

Adición de eventos de EventBridge con Step Functions

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

Para obtener más información sobre la integración con los servicios de AWS en Step Functions, consulte Integración de los servicios de y Cómo pasar parámetros a una API de servicio en Step Functions.

Características principales de la integración optimizada de EventBridge
  • El ARN de ejecución y el ARN de la máquina de estado se añaden automáticamente al campo Resources de cada PutEventsRequestEntry.

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

Para usar la API de PutEvents, será necesario crear una regla de EventBridge en su cuenta que coincida con el patrón específico de los eventos que se van a enviar. Por ejemplo, puede:

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

  • Crear una regla de EventBridge 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 de 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", "Arguments": { "Entries": [ { "Detail": { "Message": "MyMessage" }, "DetailType": "MyDetailType", "EventBusName": "MyEventBus", "Source": "my.source" } ] }, "End": true }
Cuota para datos de entrada o de resultados

Al enviar o recibir datos entre servicios, la entrada o resultado máximo de una tarea es de 256 KiB de datos como cadena codificada en UTF-8. Consulte Cuotas relacionadas con ejecuciones de máquinas de estado.

API de EventBridge optimizada

La API y la sintaxis de EventBridge compatibles incluyen:

Gestión de errores

La API de PutEvents acepta una matriz de entradas como entrada y, a continuación, devuelve una matriz de entradas de resultados. Siempre y cuando la acción PutEvents se haya realizado correctamente, PutEvents devolverá una respuesta HTTP 200, incluso si una o varias entradas generaron un error. PutEvents devuelve el número de entradas con error en el campo FailedEntryCount.

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.

Políticas de IAM para llamar a EventBridge

En estas plantillas de ejemplo, se muestra cómo AWS Step Functions genera políticas de IAM basadas en los recursos de la definición de la máquina de estado. Para obtener más información, consulte Generación de políticas de IAM para servicios integrados por Steps Functions y Descubrimiento de 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/my-project-eventbus" ], "Effect": "Allow" } ] }

Recursos dinámicos

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