

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.

# Utilice pasos predefinidos
<a name="nominal-steps-workflow"></a>

Al crear un flujo de trabajo, puede optar por añadir uno de los siguientes pasos predefinidos que se describen en este tema. También puede optar por agregar sus propios pasos de procesamiento de archivos personalizados. Para obtener más información, consulte [Uso de pasos de procesamiento de archivos personalizados](custom-step-details.md).

**Topics**
+ [Copiar archivo](#copy-step-details)
+ [Descifrar el archivo](#decrypt-step-details)
+ [Etiquetado de archivos](#tag-step-details)
+ [Eliminar archivo](#delete-step-details)
+ [Variables con nombre para los flujos de trabajo](#workflow-named-variables)
+ [Ejemplo de flujo de trabajo de etiquetado y eliminación](#sourcefile-workflow)

## Copiar archivo
<a name="copy-step-details"></a>

El paso de copiar archivo crea una copia del archivo cargado en una nueva ubicación de Amazon S3. Actualmente, solo puede utilizar el paso de copiar archivos con Amazon S3.

En el siguiente paso de copiar archivos, se copian los archivos en la `test` carpeta de. *amzn-s3-demo-destination-bucket* 

Si el paso de copiar el archivo no es el primer paso del flujo de trabajo, puede especificar la **ubicación del archivo**. Al especificar la ubicación del archivo, puede copiar el archivo que se utilizó en el paso anterior o el archivo original que se cargó. Puede utilizar esta característica para realizar varias copias del archivo original y, al mismo tiempo, mantener intacto el archivo de origen para archivarlos y conservar los registros. Para ver un ejemplo, consulta [Ejemplo de flujo de trabajo de etiquetado y eliminación](#sourcefile-workflow).

![\[Pantalla de flujo de trabajo con Copia el archivo creado en el paso anterior... botón seleccionado.\]](http://docs.aws.amazon.com/es_es/transfer/latest/userguide/images/workflows-step-copy.png)


### Proporcione el bucket y los detalles de la clave
<a name="copy-provide-bucket"></a>

Debe proporcionar el nombre del bucket y una clave para el destino del paso de copiar el archivo. La clave puede ser un nombre de ruta o un nombre de archivo. El hecho de que la clave se trate como un nombre de ruta o como un nombre de archivo depende de si termina la clave con la barra inclinada (`/`).

Si el último carácter es `/`, el archivo se copia en la carpeta, y su nombre no cambia. Si el último carácter es alfanumérico, se cambiará el nombre del archivo cargado al valor clave. En este caso, si ya existe un archivo con ese nombre, el comportamiento depende de la configuración del campo **Sobrescribir existente**.
+ Si se selecciona **Sobrescribir existente**, el archivo existente se reemplaza por el archivo que se está procesando.
+ Si no se selecciona **Sobrescribir existente**, no ocurre nada, y el procesamiento del flujo de trabajo se detiene.
**sugerencia**  
Si se ejecutan escrituras simultáneas en la misma ruta de archivo, es posible que se produzca un comportamiento inesperado al sobrescribir los archivos.

Por ejemplo, si el valor de la clave es `test/`, los archivos cargados se copian en la carpeta `test`. Si el valor de la clave es `test/today` (y la opción **Sobrescribir existente** está seleccionada), todos los archivos que cargue se copiarán en un archivo llamado `today` en la carpeta `test` y cada archivo posterior sobrescribirá al anterior.

**nota**  
Amazon S3 admite buckets y objetos y no existe jerarquía. Sin embargo, puede usar prefijos y delimitadores en los nombres de las claves de los objetos para establecer una jerarquía y organizar sus datos de forma similar a las carpetas.

### Utilizar una variable con nombre en el paso de copiar un archivo
<a name="named-variable-copy"></a>

En el paso de copiar un archivo, puede utilizar una variable para copiar, dinámicamente, los archivos en carpetas específicas del usuario. Actualmente, puede usar `${transfer:UserName}` o `${transfer:UploadDate}` como una variable para copiar archivos a una ubicación de destino para el usuario en concreto que carga los archivos o según la fecha actual.

En el siguiente ejemplo, si el usuario `richard-roe` carga un archivo, se copia en la carpeta `amzn-s3-demo-destination-bucket/richard-roe/processed/`. En el siguiente ejemplo, si el usuario `mary-major` carga un archivo, queda copiado en la carpeta `amzn-s3-demo-destination-bucket/mary-major/processed/`.

![\[Pantalla de parámetros para un paso de copia, que muestra el cubo y la clave, parametrizados mediante. UserName\]](http://docs.aws.amazon.com/es_es/transfer/latest/userguide/images/workflows-step-copy-dynamic.png)


Del mismo modo, se puede utilizar `${transfer:UploadDate}` como variable para copiar los archivos a una ubicación de destino con el nombre de la fecha actual. En el siguiente ejemplo, si establece el destino `${transfer:UploadDate}/processed` en el 1 de febrero de 2022, los archivos cargados se copiarán en la carpeta `amzn-s3-demo-destination-bucket/2022-02-01/processed/`.

![\[Pantalla de parámetros para un paso de copia, que muestra el cubo y la clave, parametrizados mediante. UploadDate\]](http://docs.aws.amazon.com/es_es/transfer/latest/userguide/images/workflows-step-copy-dynamic-date.png)


También puede utilizar estas dos variables juntas al combinar sus funciones. Por ejemplo, puede establecer el **prefijo de la clave de destino** en**folder/\$1\$1transfer:UserName\$1/\$1\$1transfer:UploadDate\$1/**, lo que crearía carpetas anidadas, por ejemplo. `folder/marymajor/2023-01-05/`

### Permisos de IAM para el paso de copiado
<a name="copy-step-iam"></a>

Para permitir que un paso de copiado se realice correctamente, asegúrese de que el rol de ejecución de su flujo de trabajo contenga los siguientes permisos.

```
{
    "Sid": "ListBucket",
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": [
        "arn:aws:s3:::amzn-s3-demo-destination-bucket"
    ]
}, {
    "Sid": "HomeDirObjectAccess",
    "Effect": "Allow",
    "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObjectVersion",
        "s3:DeleteObject",
        "s3:GetObjectVersion"
    ],
    "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
}
```

**nota**  
El permiso `s3:ListBucket` solo es necesario si no selecciona **Sobrescribir existente**. Este permiso comprueba el bucket para verificar si ya existe un archivo con el mismo nombre. Si ha seleccionado **Sobrescribir existente**, el flujo de trabajo no necesita comprobar el archivo y puede escribirlo sin más.  
Si sus archivos de Amazon S3 tienen etiquetas, debe añadir uno o dos permisos a su política de IAM.  
Añada `s3:GetObjectTagging` para un archivo de Amazon S3 que no tenga versiones.
Añada `s3:GetObjectVersionTagging` para un archivo de Amazon S3 que tenga versiones.

## Descifrar el archivo
<a name="decrypt-step-details"></a>

El blog sobre AWS almacenamiento tiene una entrada que describe cómo descifrar archivos de forma sencilla sin escribir ningún código mediante los flujos de trabajo gestionados por Transfer Family, [cifrar y descifrar archivos con PGP](https://aws.amazon.com/blogs/storage/encrypt-and-decrypt-files-with-pgp-and-aws-transfer-family/) y. AWS Transfer Family

### Algoritmos de cifrado simétrico compatibles
<a name="symmetric-algorithms"></a>

Para el descifrado PGP, Transfer Family admite algoritmos de cifrado simétrico que se utilizan para cifrar los datos reales de los archivos dentro de los archivos PGP.
+ Para obtener información detallada sobre los algoritmos de cifrado simétrico compatibles, consulte. [Algoritmos de cifrado simétrico PGP](key-management.md#pgp-symmetric-algorithms)
+ Para obtener información sobre los algoritmos de key pair de PGP que se utilizan con estos algoritmos simétricos, consulte. [Algoritmos de key pair PGP](key-management.md#pgp-key-algorithms)

### Utilizar el descifrado PGP en su flujo de trabajo
<a name="configure-decryption"></a>

Transfer Family cuenta con compatibilidad integrada para el descifrado Pretty Good Privacy (PGP). Puede utilizar el descifrado PGP en los archivos que se carguen mediante SFTP, FTPS o FTP a Amazon Simple Storage Service (Amazon S3) o Amazon Elastic File System (Amazon EFS). 

Para utilizar el descifrado PGP, debe crear y almacenar las claves privadas de PGP que se utilizarán para descifrar sus archivos. Por ello, los usuarios pueden cifrar los archivos mediante las claves de cifrado PGP correspondientes antes de cargarlos en el servidor de Transfer Family. Después de recibir los archivos cifrados, puede descifrarlos en su flujo de trabajo. Para ver un tutorial detallado, consulte [Configuración de un flujo de trabajo gestionado para descifrar un archivo](workflow-decrypt-tutorial.md).

Para obtener información sobre los algoritmos y recomendaciones de PGP compatibles, consulte. [Algoritmos de cifrado y descifrado PGP](key-management.md#pgp-encryption-algorithms)

**Uso del descifrado PGP en su flujo de trabajo**

1. Identifique un servidor de Transfer Family para alojar su flujo de trabajo o cree uno nuevo. Debe tener el ID del servidor antes de poder almacenar sus claves PGP en AWS Secrets Manager con el nombre secreto correcto.

1. Guarde su clave PGP AWS Secrets Manager con el nombre secreto requerido. Para obtener más información, consulte [Administración de claves PGP](manage-pgp-keys.md). Los flujos de trabajo pueden localizar, automáticamente, la clave PGP correcta que se utilizará para el descifrado en función del nombre secreto en Secrets Manager.
**nota**  
Cuando guardas secretos en Secrets Manager, Cuenta de AWS incurres en cargos. Para obtener más información acerca de los precios, consulte [AWS Secrets Manager Precios](https://aws.amazon.com/secrets-manager/pricing).

1. Cifre un archivo con su par de claves PGP. (Si desea obtener una lista de los clientes compatibles, consulte [Clientes PGP admitidos](pgp-key-clients.md).) Si está utilizando la línea de comando, utilice el siguiente comando. Para usar este comando, reemplace `username@example.com` por la dirección de correo electrónico que usó para crear el par de claves PGP. Reemplace `testfile.txt` por el nombre del archivo que desea cifrar. 

   ```
   gpg -e -r username@example.com testfile.txt
   ```
**importante**  
Al cifrar archivos para usarlos con AWS Transfer Family flujos de trabajo, asegúrese siempre de especificar un destinatario no anónimo mediante el parámetro. `-r` El cifrado anónimo (sin especificar un destinatario) puede provocar errores de descifrado en el flujo de trabajo, ya que el sistema no podrá identificar qué clave utilizar para el descifrado. La información sobre la depuración de este problema está disponible en. [Solucione problemas de cifrado de destinatarios anónimos](workflow-issues.md#workflows-decrypt-anonymous) 

1. Suba el archivo cifrado a su servidor de Transfer Family.

1. Configure un paso de descifrado en su flujo de trabajo. Para obtener más información, consulte [Añada un paso de descifrado](#decrypt-step-procedure).

### Añada un paso de descifrado
<a name="decrypt-step-procedure"></a>

Un paso de descifrado descifra un archivo cifrado que se cargó en Amazon S3 o Amazon EFS como parte de su flujo de trabajo. Para obtener información detallada sobre la configuración del cifrado, consulte [Utilizar el descifrado PGP en su flujo de trabajo](#configure-decryption).

Al crear el paso de descifrado para un flujo de trabajo, debe especificar el destino de los archivos descifrados. También debe seleccionar si desea sobrescribir los archivos existentes si ya existe un archivo en la ubicación de destino. Puede supervisar los resultados del flujo de trabajo de descifrado y obtener los registros de auditoría de cada archivo en tiempo real mediante Amazon CloudWatch Logs.

Tras elegir el tipo de **archivo de descifrado** para el paso, aparecerá la página de **configuración de parámetros**. Complete los valores de la sección **Configuración de parámetros de descifrado de PGP**.

Las opciones disponibles son las siguientes:
+ **Nombre del paso**: escriba un nombre descriptivo para el paso.
+ **Ubicación del archivo**: al especificar la ubicación del archivo, puede cifrar el archivo utilizado en el paso anterior o el archivo original que se cargó. 
**nota**  
Este parámetro no está disponible si este paso es el primero del flujo de trabajo.
+ **Destino de los archivos descifrados**: elija un bucket de Amazon S3 o un sistema de archivos Amazon EFS como destino del archivo descifrado.
  + Si elige Amazon S3, debe proporcionar un nombre de bucket de destino y un prefijo de clave. Para establecer los parámetros del prefijo de la clave de destino por nombre de usuario, introduzca **\$1\$1transfer:UserName\$1** como el **prefijo de la clave de destino**. De igual manera, para establecer los parámetros del prefijo de la clave de destino por fecha de carga, introduzca **\$1\$1Transfer:UploadDate\$1** para **el prefijo de la clave de destino**.
  + Si elige Amazon EFS, debe proporcionar una ruta y un sistema de archivos de destino.
**nota**  
La opción de almacenamiento que elija aquí debe coincidir con el sistema de almacenamiento que utilice el servidor de Transfer Family al que está asociado este flujo de trabajo. De lo contrario, se producirá un error al intentar ejecutar este flujo de trabajo.
+ **Sobrescribir existente**: si carga un archivo y ya existe un archivo con el mismo nombre de archivo en el destino, el comportamiento depende de la configuración de este parámetro:
  + Si se selecciona **Sobrescribir existente**, el archivo existente se reemplaza por el archivo que se está procesando.
  + Si no se selecciona **Sobrescribir existente**, no ocurre nada, y el procesamiento del flujo de trabajo se detiene.
**sugerencia**  
Si se ejecutan escrituras simultáneas en la misma ruta de archivo, es posible que se produzca un comportamiento inesperado al sobrescribir los archivos.

La siguiente captura de pantalla muestra un ejemplo de las opciones que puede elegir para el paso de descifrado del archivo. 

![\[La AWS Transfer Family consola, que muestra la sección Configurar los parámetros de descifrado de PGP con valores de muestra.\]](http://docs.aws.amazon.com/es_es/transfer/latest/userguide/images/workflows-step-decrypt-details.png)


### Permisos de IAM para el paso de cifrado
<a name="decrypt-step-iam"></a>

Para permitir que un paso de descifrado se realice correctamente, asegúrese de que el rol de ejecución de su flujo de trabajo contenga los siguientes permisos.

```
{
    "Sid": "ListBucket",
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": [
        "arn:aws:s3:::amzn-s3-demo-destination-bucket"
    ]
}, {
    "Sid": "HomeDirObjectAccess",
    "Effect": "Allow",
    "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObjectVersion",
        "s3:DeleteObject",
        "s3:GetObjectVersion"
    ],
    "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
}, {
    "Sid": "Decrypt",
    "Effect": "Allow",
    "Action": [
        "secretsmanager:GetSecretValue",
    ],
    "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"
}
```

**nota**  
El permiso `s3:ListBucket` solo es necesario si no selecciona **Sobrescribir existente**. Este permiso comprueba el bucket para verificar si ya existe un archivo con el mismo nombre. Si ha seleccionado **Sobrescribir existente**, el flujo de trabajo no necesita comprobar el archivo y puede escribirlo sin más.  
Si sus archivos de Amazon S3 tienen etiquetas, debe añadir uno o dos permisos a su política de IAM.  
Añada `s3:GetObjectTagging` para un archivo de Amazon S3 que no tenga versiones.
Añada `s3:GetObjectVersionTagging` para un archivo de Amazon S3 que tenga versiones.

## Etiquetado de archivos
<a name="tag-step-details"></a>

Para etiquetar los archivos entrantes para su posterior procesamiento, utilice un paso de etiquetado. Introduzca el valor de la etiqueta que desea asignar a los archivos entrantes. Actualmente, la operación de etiquetado solo se admite si utiliza Amazon S3 para el almacenamiento de su servidor de Transfer Family.

El siguiente ejemplo de paso de etiquetado asigna `scan_outcome` y `clean` como la clave y el valor de la etiqueta respectivamente.

![\[Pantalla de flujos de trabajo que muestra los detalles de un paso de etiquetado.\]](http://docs.aws.amazon.com/es_es/transfer/latest/userguide/images/workflows-step-tag.png)


Para permitir que un paso de etiquetado se realice correctamente, asegúrese de que el rol de ejecución de su flujo de trabajo contenga los siguientes permisos.

```
{
            "Sid": "Tag",
            "Effect": "Allow",
            "Action": [
                "s3:PutObjectTagging",
                "s3:PutObjectVersionTagging"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
}
```

**nota**  
Si su flujo de trabajo contiene un paso de etiquetado que se ejecuta antes de un paso de copiado o descifrado, debe añadir uno o dos permisos a su política de IAM.  
Añada `s3:GetObjectTagging` para un archivo de Amazon S3 que no tenga versiones.
Añada `s3:GetObjectVersionTagging` para un archivo de Amazon S3 que tenga versiones.

## Eliminar archivo
<a name="delete-step-details"></a>

Para eliminar un archivo procesado de un paso anterior del flujo de trabajo o para eliminar el archivo cargado originalmente, utilice un paso de eliminación de archivo.

![\[Pantalla de flujos de trabajo que muestra los detalles de un paso de eliminación.\]](http://docs.aws.amazon.com/es_es/transfer/latest/userguide/images/workflows-step-delete.png)


Para permitir que un paso de eliminación se realice correctamente, asegúrese de que el rol de ejecución de su flujo de trabajo contenga los siguientes permisos.

```
{
            "Sid": "Delete",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObjectVersion",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:secretsmanager:region:account-ID:secret:aws/transfer/*"
        }
```

## Variables con nombre para los flujos de trabajo
<a name="workflow-named-variables"></a>

Para los pasos de copiado y descifrado, puede utilizar una variable para realizar acciones de forma dinámica. Actualmente, AWS Transfer Family admite las siguientes variables con nombre.
+ Se utiliza `${transfer:UserName}` para copiar o descifrar archivos a un destino en función del usuario que los carga.
+ Se utiliza `${transfer:UploadDate}` para copiar o descifrar archivos a una ubicación de destino en función de la fecha actual.

## Ejemplo de flujo de trabajo de etiquetado y eliminación
<a name="sourcefile-workflow"></a>

El siguiente ejemplo ilustra un flujo de trabajo que etiqueta los archivos entrantes que deben ser procesados por una aplicación secundaria, como una plataforma de análisis de datos. Tras etiquetar el archivo entrante, el flujo de trabajo elimina el archivo cargado originalmente para ahorrar costos de almacenamiento.

------
#### [ Console ]

**Ejemplo de etiquetado y flujos de trabajo**

1. Abra la AWS Transfer Family consola en [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. En el panel de navegación izquierdo, seleccione **Flujos de trabajo**.

1. En la página **Flujos de trabajo**, seleccione **Crear flujo de trabajo**.

1. En la página **Crear flujo de trabajo**, escriba una descripción. Esta descripción aparece en la página **Flujos de trabajo**.

1. Añada el primer paso (copiado).

   1. En la sección **Pasos nominales**, seleccione **Añadir paso**.

   1. Seleccione **Copiar archivo**, y después **Siguiente**.

   1. Introduzca un nombre de paso y, a continuación, seleccione un bucket de destino y un prefijo de clave.  
![\[Pantalla de flujos de trabajo que muestra los detalles de un paso de copia, con el depósito de destino y el key prefijo.\]](http://docs.aws.amazon.com/es_es/transfer/latest/userguide/images/workflows-step-copy-first-step.png)

   1. Seleccione **Siguiente** y, a continuación, revise los detalles del paso. 

   1. Seleccione **Crear paso** para añadir el paso y continuar.

1. Añada el segundo paso (etiquetado).

   1. En la sección **Pasos nominales**, seleccione **Añadir paso**.

   1. Seleccione **Etiquete archivo**, y después **Siguiente**.

   1. Introduzca un nombre de paso.

   1. En **Ubicación del archivo**, seleccione **Etiquetar el archivo creado en el paso anterior**.

   1. Introduzca una **clave** y un **valor**.  
![\[La pantalla de configuración de un paso del flujo de trabajo de etiquetado, con el botón de opción Etiquetar el archivo creado a partir del paso anterior seleccionado.\]](http://docs.aws.amazon.com/es_es/transfer/latest/userguide/images/workflows-step-tag.png)

   1. Seleccione **Siguiente** y, a continuación, revise los detalles del paso. 

   1. Seleccione **Crear paso** para añadir el paso y continuar.

1. Añada el tercer paso (eliminación).

   1. En la sección **Pasos nominales**, seleccione **Añadir paso**.

   1. Seleccione **Eliminar pilas** y, a continuación, **Siguiente**.  
![\[La pantalla de configuración de un paso del flujo de trabajo de eliminación, con el botón de opción Eliminar el archivo fuente original seleccionado.\]](http://docs.aws.amazon.com/es_es/transfer/latest/userguide/images/workflows-step-delete.png)

   1. Introduzca un nombre de paso.

   1. En **Ubicación del archivo**, seleccione **Eliminar el archivo fuente original**.

   1. Seleccione **Siguiente** y, a continuación, revise los detalles del paso. 

   1. Seleccione **Crear paso** para añadir el paso y continuar.

1. Revise la configuración del flujo de trabajo y, a continuación, seleccione **Crear flujo de trabajo**. 

------
#### [ CLI ]

**Ejemplo de etiquetado y flujos de trabajo**

1. Guarde el siguiente código en un archivo, por ejemplo, `tagAndMoveWorkflow.json`. Reemplace cada `user input placeholder` por su propia información. 

   ```
   [
      {
          "Type": "COPY",
          "CopyStepDetails": {
             "Name": "CopyStep",
             "DestinationFileLocation": {
                "S3FileLocation": {
                   "Bucket": "amzn-s3-demo-bucket",
                   "Key": "test/"
                }
             }
          }
      },
      {
          "Type": "TAG",
          "TagStepDetails": {
             "Name": "TagStep",
             "Tags": [
                {
                   "Key": "name",
                   "Value": "demo"
                }
             ],
             "SourceFileLocation": "${previous.file}"
          }
      },
      {
         "Type": "DELETE",
         "DeleteStepDetails":{
            "Name":"DeleteStep",
            "SourceFileLocation": "${original.file}"
         }
     }
   ]
   ```

   El primer paso copia el archivo cargado en una nueva ubicación de Amazon S3. El segundo paso agrega una etiqueta (par clave-valor) al archivo (`previous.file`) que se copió en la nueva ubicación. Y, por último, el tercer paso elimina el archivo original (`original.file`).

1. Cree un flujo de trabajo a partir del archivo guardado. Reemplace cada `user input placeholder` por su propia información.

   ```
   aws transfer create-workflow --description "short-description" --steps file://path-to-file --region region-ID
   ```

   Por ejemplo: 

   ```
   aws transfer create-workflow --description "copy-tag-delete workflow" --steps file://tagAndMoveWorkflow.json --region us-east-1
   ```
**nota**  
Para obtener más información sobre el uso de archivos para cargar parámetros, consulte [Cómo cargar parámetros desde un archivo](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-file.html).

1. Actualización de un servidor existente.
**nota**  
En este paso, se supone que ya tiene un servidor de Transfer Family y que desea asociarle un flujo de trabajo. Si no es así, consulte [Configuración de un punto final de servidor SFTP, FTPS o FTP](tf-server-endpoint.md). Reemplace cada `user input placeholder` por su propia información.

   ```
   aws transfer update-server --server-id server-ID --region region-ID 
     --workflow-details '{"OnUpload":[{ "WorkflowId": "workflow-ID","ExecutionRole": "execution-role-ARN"}]}'
   ```

   Por ejemplo:

   ```
   aws transfer update-server --server-id s-1234567890abcdef0 --region us-east-2 
     --workflow-details '{"OnUpload":[{ "WorkflowId": "w-abcdef01234567890","ExecutionRole": "arn:aws:iam::111111111111:role/nikki-wolf-execution-role"}]}'
   ```

------