

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplo: implantação de alias e de versões no Step Functions
<a name="example-alias-version-deployment"></a>

O seguinte exemplo da técnica de implantação canário mostra como você pode implantar uma nova versão da máquina de estado com a AWS Command Line Interface. Neste exemplo, o alias que você cria direciona 20% do tráfego de execução para a nova versão. Em seguida, ele direciona os 80% restantes para a versão anterior. Para implantar uma nova [versão](concepts-state-machine-version.md) da máquina de estado e mudar o tráfego de execução com um [alias](concepts-state-machine-alias.md), conclua as seguintes etapas:

1. 

**Publique uma versão a partir da revisão da máquina de estado atual.**  
Use o comando **publish-state-machine-version** na AWS CLI para publicar uma versão da revisão atual de uma máquina de estado chamada `myStateMachine:`

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

   A resposta retorna o `stateMachineVersionArn` da versão que você publicou. Por exemplo, .`arn:aws:states:region:account-id:stateMachine:myStateMachine:1`

1. 

**Crie um alias que aponte para a versão da máquina de estado.**  
Use o chamado **create-state-machine-alias** para criar um alias chamado `PROD` que aponta para a versão 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. 

**Verifique se as execuções iniciadas pelo alias usam a versão publicada correta.**  
Inicie uma nova execução de `myStateMachine` fornecendo o ARN do alias **PROD** no comando **start-execution**:

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

   Se você fornecer o ARN da máquina de estado na [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)solicitação, ela usará a mais recente [revision](concepts-cd-aliasing-versioning.md#statemachinerev) da máquina de estado em vez da versão especificada em seu alias para iniciar a execução.

1. 

**Atualize a definição da máquina de estado e publique uma nova versão.**  
Atualize `myStateMachine` e publique a nova versão. Para fazer isso, use o parâmetro opcional `publish` do 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
   ```

   A resposta retorna o `stateMachineVersionArn` para a nova versão. Por exemplo, .`arn:aws:states:region:account-id:stateMachine:myStateMachine:2`

1. 

**Atualize o alias para apontar para as duas versões e defina a [configuração de roteamento](concepts-state-machine-alias.md#alias-routing-config) do alias.**  
Use o comando **update-state-machine-alias** para atualizar a configuração de roteamento do alias `PROD`. Configure o alias para que 80% do tráfego de execução vá para a versão 1 e os 20% restantes para a versão 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. 

**Substitua a versão 1 pela versão 2.**  
Depois de verificar se a nova versão da máquina de estado funciona corretamente, você pode implantar a nova versão da máquina de estado. Para fazer isso, atualize o alias novamente para atribuir 100% do tráfego de execução à nova versão.

   Use o comando **update-state-machine-alias** para definir a configuração de roteamento do alias `PROD` para 100% para a versão 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}]"
   ```

**dica**  
Para reverter a implantação da versão 2, edite a configuração de roteamento do alias para transferir 100% do tráfego para a versão recém-implantada.  

```
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}]"
```

Você pode usar versões e aliases para realizar outros tipos de implantações. Por exemplo, você pode realizar uma *implantação contínua* de uma nova versão da máquina de estado. Para fazer isso, aumente gradualmente a porcentagem ponderada na configuração de roteamento do alias que aponta para a nova versão.

Você também pode usar versões e aliases para realizar uma *implantação azul/verde*. Para fazer isso, crie um alias chamado `green` que execute a versão 1 atual da máquina de estado. Em seguida, crie outro alias chamado `blue` que execute a nova versão, por exemplo, `2`. Para testar a nova versão, envie o tráfego de execução para o alias `blue`. Quando tiver certeza de que a nova versão funciona corretamente, atualize o alias `green` para apontar para a nova versão.