

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.

# Cómo pasar parámetros a una API de servicio en Step Functions
<a name="connect-parameters"></a>

**Administración del estado y transformación de los datos**  
Obtenga información sobre la [Transmisión de datos entre estados con variables](workflow-variables.md) y la [Transformación de datos con JSONata](transforming-data.md).

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 utiliza el campo [Filtrar](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html#API_DescribeSnapshots_RequestParameters) de la acción de API `DescribeSnapshots` para la integración con Amazon EC2, debe definir el campo como `Filters`. 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
<a name="connect-parameters-json"></a>

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 parámetro `RetryStrategy` de la API `SubmitJob` para AWS Batch, podría incluir lo siguiente en los 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:{{account-id}}:{{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
<a name="connect-parameters-path"></a>

Puede pasar partes de la entrada del estado como parámetros mediante el uso de [rutas](amazon-states-language-paths.md). Una ruta es una cadena que empieza por `$`, que puede utilizar para identificar componentes en texto JSON. Las rutas de Step Functions utilizan la sintaxis [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/).

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 denominado`message`, 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:
+ [Entrada y salida de procesamiento](concepts-input-output-filtering.md)
+ [Manipulación de los parámetros en los flujos de trabajo de Step Functions](input-output-inputpath-params.md)

## Transferencia de nodos del objeto Context como parámetros
<a name="connect-parameters-context"></a>

Además del contenido estático y de los nodos de la entrada del estado, puede pasar nodos desde el objeto Context como parámetros. El objeto Context son datos JSON dinámicos presentes durante la ejecución de una máquina de estado. Incluye información acerca de la máquina de estado y la ejecución actual. Puede acceder al objeto Context con una ruta en el campo `Parameters` de una definición de estado.



Para obtener más información acerca del objeto Context y cómo acceder a los datos desde el campo `"Parameters"`, consulte los siguientes temas:
+ [Acceso a los datos de ejecución desde el objeto Context en Step Functions](input-output-contextobject.md)
+ [Acceso al objeto Contexto](input-output-contextobject.md#contextobject-access)
+ [Obtención de un token del objeto Context](connect-to-resource.md#wait-token-contextobject)