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 unFailedEntryCount
distinto de cero, el estadoTask
genera el errorEventBridge.FailedEntry
.
Para utilizarlos PutEvents
API, 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:
-
Añadir EventBridge eventos de Amazon PutEvents en la Guía EventBridge del usuario.
-
Espera a que te devuelvan la llamada con el token de tarea en patrones de integración de servicios
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:
-
-
Parámetro admitido:
Control de errores
PutEvents
APIAcepta 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. PutEvents
devuelve 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/*"
}
]
}