Llama EventBridge 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.

Llama EventBridge con Step Functions

Step Functions puede controlar ciertos AWS servicios directamente desde Lenguaje de estados de Amazon (ASL). Para obtener más información, consulte Trabajo con otros servicios y Cómo pasar parámetros a una API de servicio.

En qué se diferencia la EventBridge integración optimizada de la integración del EventBridge AWS SDK
  • 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 obtener información sobre cómo configurar IAM los permisos cuando se utilizan Step Functions con otros AWS servicios, consultePolíticas de IAM para servicios integrados.

Step Functions proporciona una API de integración de servicios para la integración con Amazon EventBridge. Esto le permite crear aplicaciones basadas en eventos al enviar eventos personalizados directamente desde los flujos de trabajo de Step Functions.

Para usar la PutEvents API, tendrás que crear una EventBridge regla en tu cuenta que coincida con el 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:

nota

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

EventBridge API compatible

La EventBridge API y la sintaxis compatibles incluyen:

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 }

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