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.
Administrar el estado y transformar los datos
Obtenga información sobre cómo pasar datos entre estados con variables y cómo transformar datos con JSONata.
Utilice el campo Parameters
de un estado Task
para controlar qué parámetros se pasan a una API de servicio.
Dentro del campo Parameters
, debe usar la forma plural de los parámetros de la matriz en una acción de API. Por ejemplo, si utilizas el campo Filtrar de la acción de DescribeSnapshots
API para integrarte con Amazon EC2, debes definir el campo comoFilters
. Si no se utiliza el plural, Step Functions devuelve el siguiente error:
The field Filter is not supported by Step Functions.
Cómo pasar JSON estático como parámetros
Puede incluir un objeto JSON directamente en la definición de la máquina de estado para pasárselo a un recurso como parámetro.
Por ejemplo, para establecer el RetryStrategy
parámetro de la SubmitJob
API AWS Batch, puedes incluir lo siguiente en tus parámetros.
"RetryStrategy": {
"attempts": 5
}
También puede pasar varios parámetros con JSON estático. Este es otro ejemplo más completo en el que se utilizan los campos Resource
y Parameters
para especificar una tarea que publica un tema de Amazon SNS llamado
.myTopic
"Resource": "arn:aws:states:::sns:publish",
"Parameters": {
"TopicArn": "arn:aws:sns:us-east-2:123456789012:myTopic
",
"Message": "test message",
"MessageAttributes": {
"my attribute no 1": {
"DataType": "String",
"StringValue": "value of my attribute no 1"
},
"my attribute no 2": {
"DataType": "String",
"StringValue": "value of my attribute no 2"
}
}
},
Cómo transferir la entrada de un estado como parámetros mediante rutas
Puede pasar partes de la entrada del estado como parámetros mediante el uso de rutas. Una ruta es una cadena que empieza por $
, que puede utilizar para identificar componentes en texto JSON. Las rutas de Step Functions utilizan JsonPath
Para especificar que un parámetro utilice una ruta, termine el nombre del parámetro con .$
. Por ejemplo, si la entrada de estado contiene texto dentro de un nodo denominadomessage
, puede pasar ese texto como parámetro mediante una ruta.
Supongamos que tenemos la siguiente entrada de estado:
{
"comment": "A message in the state input",
"input": {
"message": "foo",
"otherInfo": "bar"
},
"data": "example"
}
Para pasar el valor del nodo denominado message
como parámetro denominado myMessage
, especifique la siguiente sintaxis:
"Parameters": {"myMessage.$": "$.input.message"},
A continuación, Step Functions pasará el valor foo
como parámetro.
Para obtener más información acerca del uso de parámetros en Step Functions, consulte los siguientes temas:
Pase los nodos de objetos de Context como parámetros
Además del contenido estático y los nodos de la entrada de estado, puede pasar los nodos del objeto Context como parámetros. El objeto Context son datos JSON dinámicos que existen durante la ejecución de una máquina de estados. Incluye información acerca de la máquina de estado y la ejecución actual. Puede acceder al objeto Context mediante una ruta en el Parameters
campo de una definición de estado.
Para obtener más información sobre el objeto Context y cómo acceder a esos datos desde un "Parameters"
campo, consulte lo siguiente: