

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.

# Ejemplo: implementación de alias y versiones en Step Functions
<a name="example-alias-version-deployment"></a>

En el siguiente ejemplo de la técnica de implementación de valores controlados se muestra cómo se puede implementar una nueva versión de la máquina de estado con la AWS Command Line Interface. En este ejemplo, el alias que cree enruta el 20 por ciento del tráfico de ejecución a la nueva versión. A continuación, enruta el 80 por ciento restante a la versión anterior. Para implementar una nueva [versión](concepts-state-machine-version.md) de la máquina de estados y cambiar el tráfico de ejecución a un [alias](concepts-state-machine-alias.md), complete los siguientes pasos:

1. 

**Publique una versión de la revisión actual de la máquina de estado.**  
Utilice el comando **publish-state-machine-version** en la AWS CLI para publicar una versión de la revisión actual de una máquina de estado llamada `myStateMachine:`

   ```
   aws stepfunctions publish-state-machine-version --state-machine-arn arn:aws:states:region:account-id:stateMachine:myStateMachine
   ```

   La respuesta devuelve `stateMachineVersionArn` de la versión que ha publicado. Por ejemplo, `arn:aws:states:region:account-id:stateMachine:myStateMachine:1`.

1. 

**Cree un alias que apunte a la nueva versión de la máquina de estado.**  
Utilice el comando **create-state-machine-alias** para crear un nombre de alias `PROD` que apunte a la versión 1 de `myStateMachine`:

   ```
   aws stepfunctions create-state-machine-alias --name PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:1\",\"weight\":100}]"
   ```

1. 

**Compruebe que las ejecuciones iniciadas con el alias utilizan la versión publicada correcta.**  
Inicie una nueva ejecución de `myStateMachine` proporcionando el ARN del alias **PROD** en el comando **start-execution**:

   ```
   aws stepfunctions start-execution 
     --state-machine-arn arn:aws:states:region:account-id:stateMachineAlias:myStateMachine:PROD
     --input "{}"
   ```

   Si proporciona el ARN de la máquina de estado en la [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)solicitud, utilizará la más reciente [revision](concepts-cd-aliasing-versioning.md#statemachinerev) de la máquina de estado en lugar de la versión especificada en su alias para iniciar la ejecución.

1. 

**Actualice la definición de la máquina de estado y publique una nueva versión.**  
Actualice `myStateMachine` y publique su nueva versión. Para ello, utilice el parámetro `publish` opcional del comando **update-state-machine**:

   ```
   aws stepfunctions update-state-machine
       --state-machine-arn arn:aws:states:region:account-id:stateMachine:myStateMachine
       --definition $UPDATED_STATE_MACHINE_DEFINITION
       --publish
   ```

   La respuesta devuelve `stateMachineVersionArn` para la nueva versión. Por ejemplo, `arn:aws:states:region:account-id:stateMachine:myStateMachine:2`.

1. 

**Actualice el alias para que apunte a ambas versiones y establezca la [configuración de enrutamiento](concepts-state-machine-alias.md#alias-routing-config) del alias.**  
Utilice el comando **update-state-machine-alias** para actualizar la configuración de enrutamiento del alias `PROD`. Configure el alias para que el 80 por ciento del tráfico de ejecución vaya a la versión 1 y el 20 por ciento restante a la versión 2:

   ```
   aws stepfunctions update-state-machine-alias --state-machine-alias-arn arn:aws:states:region:account-id:stateMachineAlias:myStateMachine:PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:1\",\"weight\":80}, {\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:2\",\"weight\":20}]"
   ```

1. 

**Reemplace la versión 1 por la versión 2.**  
Tras comprobar que la nueva versión de la máquina de estado funciona correctamente, puede implementar la nueva versión de esta. Para ello, vuelva a actualizar el alias para asignar el 100 por ciento del tráfico de ejecución a la nueva versión.

   Use el comando **update-state-machine-alias** para establecer la configuración de enrutamiento del alias `PROD` en el 100 por ciento para la versión 2:

   ```
   aws stepfunctions update-state-machine-alias --state-machine-alias-arn arn:aws:states:region:account-id:stateMachineAlias:myStateMachine:PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:2\",\"weight\":100}]"
   ```

**sugerencia**  
Para revertir la implementación de la versión 2, edite la configuración de enrutamiento del alias para transferir el 100 por ciento del tráfico a la versión recién implementada.  

```
aws stepfunctions update-state-machine-alias 
  --state-machine-alias-arn arn:aws:states:region:account-id:stateMachineAlias:myStateMachine:PROD 
  --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:1\",\"weight\":100}]"
```

Puede usar versiones y alias para realizar otros tipos de implementaciones. Por ejemplo, puede realizar una *implementación continua* de una nueva versión de su máquina de estado. Para ello, aumente gradualmente el porcentaje ponderado en la configuración de enrutamiento del alias que apunta a la nueva versión.

También puede usar versiones y alias para realizar una *implementación azul/verde*. Para ello, cree un alias denominado `green` que ejecute la versión 1 actual de su máquina de estado. A continuación, cree otro alias denominado `blue` que ejecute la nueva versión, por ejemplo, `2`. Para probar la nueva versión, envíe el tráfico de ejecución al alias `blue`. Cuando esté seguro de que la nueva versión funciona correctamente, actualice el alias `green` para que apunte a la nueva versión.