

# Trabalhar com uma distribuição de preparação e uma política de implantação contínua
<a name="working-with-staging-distribution-continuous-deployment-policy"></a>

É possível criar, atualizar e modificar distribuições de preparação e políticas de implantação contínua usando o console do CloudFront, a AWS Command Line Interface (AWS CLI) ou a API do CloudFront.

## Criar com uma distribuição de preparação e uma política de implantação contínua
<a name="create-staging-distribution-continuous-deployment-policy"></a>

Os procedimentos a seguir mostram como criar uma distribuição de preparação com uma política de implantação contínua.

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

É possível criar uma distribuição de preparação com uma política de implantação contínua usando o Console de gerenciamento da AWS.

**Como criar uma distribuição de preparação e uma política de implantação contínua (console)**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. No painel de navegação, escolha **Distribuições**.

1. Escolha a distribuição que deseja usar como *distribuição primária*. A distribuição primária é aquela que lida atualmente com o tráfego de produção, aquela a partir da qual você criará a distribuição de preparação.

1. Na seção **Continuous deployment** (Implantação contínua), escolha **Create staging distribution** (Criar distribuição de preparação). Isso abre o assistente **Create staging distribution** (Criar distribuição de preparação).

1. No assistente **Create staging distribution** (Criar distribuição de preparação), faça o seguinte:

   1. (Opcional) Digite uma descrição para a distribuição de preparação.

   1. Escolha **Próximo**.

   1. Modifique a configuração da distribuição de preparação. Para obter mais informações sobre as configurações que você pode atualizar, consulte [Atualizar distribuições principais e de preparação](understanding-continuous-deployment.md#updating-staging-and-primary-distributions).

      Quando terminar de modificar a configuração da distribuição de preparação, escolha **Next** (Avançar).

   1. Use o console para especificar a **Traffic configuration** (Configuração de tráfego). Isso determina como o CloudFront direciona o tráfego para a distribuição de preparação. (O CloudFront armazena a configuração de tráfego em uma *política de implantação contínua*.)

      Para obter mais informações sobre as opções para uma **Traffic configuration** (Configuração de tráfego), consulte [Encaminhar solicitações para a distribuição de preparação](understanding-continuous-deployment.md#understanding-continuous-deployment-routing).

      Quando você concluir a **Traffic configuration** (Configuração de tráfego), escolha **Next** (Avançar).

   1. Revise a configuração da distribuição de preparação, incluindo a configuração de tráfego, depois escolha **Create staging distribution** (Criar distribuição de preparação).

Quando você concluir o assistente **Create staging distribution** (Criar distribuição de preparação) no console do CloudFront, o CloudFront fará o seguinte:
+ Criará uma distribuição de preparação com as configurações que você especificou (na etapa 5c)
+ Criará uma política de implantação contínua com a configuração de tráfego que você especificou (na etapa 5d)
+ Anexará a política de implantação contínua à distribuição primária que você usou para criar a distribuição de preparação

Quando a configuração da distribuição primária, com a política de implantação contínua anexada, é implantada em locais da borda, o CloudFront começa a enviar a parte especificada do tráfego para a distribuição de preparação com base na configuração de tráfego.

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

Para criar uma distribuição de preparação e uma política de implantação contínua com a AWS CLI, use os procedimentos a seguir.

**Como criar uma distribuição de preparação (CLI)**

1. Use os comandos **aws cloudfront get-distribution** e **grep** juntos para obter o valor de `ETag` da distribuição que você deseja usar como *distribuição primária*. A distribuição primária é aquela que lida atualmente com o tráfego de produção, da qual você criará a distribuição de preparação.

   O seguinte comando mostra um exemplo. No exemplo a seguir, substitua {{primary\_distribution\_ID}} pelo ID da distribuição primária. 

   ```
   aws cloudfront get-distribution --id {{primary_distribution_ID}} | grep 'ETag'
   ```

   Copie o valor de `ETag` porque ele será necessário na próxima etapa.

1. Use o comando **aws cloudfront copy-distribution** para criar uma distribuição de preparação. O exemplo de comando a seguir usa caracteres de escape (\\) e quebras de linha para facilitar a leitura, mas você deve omiti-los do comando. No exemplo de comando a seguir:
   + Substitua {{primary\_distribution\_ID}} pelo ID da distribuição primária.
   + Substitua {{primary\_distribution\_ETag}} pelo valor de `ETag` da distribuição primária (que você obteve na etapa anterior).
   + (Opcional) Substitua {{CLI\_example}} pelo ID de referência do chamador desejado.

   ```
   aws cloudfront copy-distribution --primary-distribution-id {{primary_distribution_ID}} \
                                    --if-match {{primary_distribution_ETag}} \
                                    --staging \
                                    --caller-reference '{{CLI_example}}'
   ```

   A saída do comando mostra informações sobre a distribuição de preparação e sua configuração. Copie o nome de domínio do CloudFront da distribuição de preparação porque ele será necessário na próxima etapa.

**Como criar uma política de implantação contínua (CLI com arquivo de entrada)**

1. Use o comando a seguir para criar um arquivo chamado `continuous-deployment-policy.yaml` que contém todos os parâmetros de entrada para o comando **create-continuous-deployment-policy**. O comando a seguir usa caracteres de escape (\\) e quebras de linha para facilitar a leitura, mas você deve omiti-los do comando.

   ```
   aws cloudfront create-continuous-deployment-policy --generate-cli-skeleton yaml-input \
                                                      > continuous-deployment-policy.yaml
   ```

1. Abra o arquivo chamado `continuous-deployment-policy.yaml` que você acabou de criar. Edite o arquivo para especificar as configurações de política de implantação contínua desejadas e salve o arquivo. Ao editar o arquivo:
   + Na seção `StagingDistributionDnsNames`, selecione:
     + Altere o valor de `Quantity` para `1`.
     + Em `Items`, cole o nome de domínio do CloudFront da distribuição de preparação (que você salvou em uma etapa anterior).
   + Na seção `TrafficConfig`, selecione:
     + Escolha um `Type`: `SingleWeight` ou `SingleHeader`.
     + Remova as configurações do outro tipo. Por exemplo, se você quiser uma configuração de tráfego baseada em peso, defina `Type` como `SingleWeight`, depois remova as configurações de `SingleHeaderConfig`.
     + Para usar uma configuração de tráfego baseada em peso, defina o valor de `Weight` como um número decimal entre `.01` (1%) e `.15` (15%).

     Para obter mais informações sobre essas opções em `TrafficConfig`, consulte [Encaminhar solicitações para a distribuição de preparação](understanding-continuous-deployment.md#understanding-continuous-deployment-routing) e [Persistência da sessão para configurações baseadas em peso](understanding-continuous-deployment.md#understanding-continuous-deployment-sessions).

1. Use o seguinte comando para criar a política de implantação contínua usando parâmetros de entrada do arquivo `continuous-deployment-policy.yaml`.

   ```
   aws cloudfront create-continuous-deployment-policy --cli-input-yaml file://continuous-deployment-policy.yaml
   ```

   Copie o valor de `Id` na saída do comando. Esse é o ID da política de implantação contínua, que será necessário na próxima etapa.

**Como anexar uma política de implantação contínua a uma distribuição primária (CLI com arquivo de entrada)**

1. Use o comando a seguir para salvar a configuração da distribuição primária em um arquivo chamado `primary-distribution.yaml`. Substitua {{primary\_distribution\_ID}} pelo ID da distribuição primária.

   ```
   aws cloudfront get-distribution-config --id {{primary_distribution_ID}} --output yaml > primary-distribution.yaml
   ```

1. Abra o arquivo chamado `primary-distribution.yaml` que você acabou de criar. Edite o arquivo fazendo as seguintes alterações:
   + Cole o ID da política de implantação contínua (que você copiou em uma etapa anterior) no campo `ContinuousDeploymentPolicyId`.
   + Renomeie o campo `ETag` para `IfMatch`, mas não altere o valor do campo.

   Ao concluir, salve o arquivo.

1. Use o comando a seguir para atualizar a distribuição primária para utilizar a política de implantação contínua. Substitua {{primary\_distribution\_ID}} pelo ID da distribuição primária.

   ```
   aws cloudfront update-distribution --id {{primary_distribution_ID}} --cli-input-yaml file://primary-distribution.yaml
   ```

Quando a configuração da distribuição primária, com a política de implantação contínua anexada, é implantada em locais da borda, o CloudFront começa a enviar a parte especificada do tráfego para a distribuição de preparação com base na configuração de tráfego.

------
#### [ API ]

Para criar uma distribuição de preparação e uma política de implantação contínua com a API do CloudFront, use as seguintes operações de API:
+ [CopyDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CopyDistribution.html)
+ [CreateContinuousDeploymentPolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateContinuousDeploymentPolicy.html)

Para obter mais informações sobre os campos especificados nessas chamadas de API, consulte o seguinte:
+ [Encaminhar solicitações para a distribuição de preparação](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)
+ [Persistência da sessão para configurações baseadas em peso](understanding-continuous-deployment.md#understanding-continuous-deployment-sessions)
+ A documentação de referência da API do AWS SDK ou de outro cliente de API

Depois de criar uma distribuição de preparação e uma política de implantação contínua, use [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) (na distribuição primária) para anexar a política de implantação contínua à distribuição primária.

------

## Atualizar uma distribuição de preparação
<a name="update-staging-distribution"></a>

Os procedimentos a seguir mostram como atualizar uma distribuição de preparação com uma política de implantação contínua.

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

É possível atualizar determinadas configurações para as distribuições principal e de preparação. Para obter mais informações, consulte [Atualizar distribuições principais e de preparação](understanding-continuous-deployment.md#updating-staging-and-primary-distributions).

**Como atualizar uma distribuição de preparação (console)**

1. Abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. No painel de navegação, escolha **Distribuições**.

1. Escolha a distribuição primária. É a distribuição que lida atualmente com o tráfego de produção, aquela da qual você criou a distribuição de preparação.

1. Escolha **View staging distribution** (Exibir distribuição de preparação).

1. Use o console para modificar a configuração da distribuição de preparação. Para obter mais informações sobre as configurações que você pode atualizar, consulte [Atualizar distribuições principais e de preparação](understanding-continuous-deployment.md#updating-staging-and-primary-distributions).

Assim que a configuração da distribuição de preparação é implantada em locais da borda, ela entra em vigor para o tráfego de entrada que é roteado para a distribuição de preparação.

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

**Como atualizar uma distribuição de preparação (CLI com arquivo de entrada)**

1. Use o comando a seguir para salvar a configuração da distribuição de preparação em um arquivo chamado `staging-distribution.yaml`. Substitua {{staging\_distribution\_ID}} pelo ID da distribuição de preparação.

   ```
   aws cloudfront get-distribution-config --id {{staging_distribution_ID}} --output yaml > staging-distribution.yaml
   ```

1. Abra o arquivo chamado `staging-distribution.yaml` que você acabou de criar. Edite o arquivo fazendo as seguintes alterações:
   + Modifique a configuração da distribuição de preparação. Para obter mais informações sobre as configurações que você pode atualizar, consulte [Atualizar distribuições principais e de preparação](understanding-continuous-deployment.md#updating-staging-and-primary-distributions).
   + Renomeie o campo `ETag` para `IfMatch`, mas não altere o valor do campo.

   Ao concluir, salve o arquivo.

1. Use o comando a seguir para atualizar a configuração da distribuição de preparação. Substitua {{staging\_distribution\_ID}} pelo ID da distribuição de preparação.

   ```
   aws cloudfront update-distribution --id {{staging_distribution_ID}} --cli-input-yaml file://staging-distribution.yaml
   ```

Assim que a configuração da distribuição de preparação é implantada em locais da borda, ela entra em vigor para o tráfego de entrada que é roteado para a distribuição de preparação.

------
#### [ API ]

Para atualizar a configuração de uma distribuição de preparação, use [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) (na distribuição de preparação) para modificar a configuração da distribuição de preparação. Para obter mais informações sobre as configurações que você pode atualizar, consulte [Atualizar distribuições principais e de preparação](understanding-continuous-deployment.md#updating-staging-and-primary-distributions).

------

## Atualizar uma política de implantação contínua
<a name="update-continuous-deployment-policy"></a>

Os procedimentos a seguir mostram como atualizar uma política de implantação contínua.

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

É possível atualizar a configuração de tráfego de sua distribuição atualizando a política de implantação contínua.

**Como atualizar uma política de implantação contínua (console)**

1. Abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. No painel de navegação, escolha **Distribuições**.

1. Escolha a distribuição primária. É a distribuição que lida atualmente com o tráfego de produção, aquela a partir da qual você criou a distribuição de preparação.

1. Na seção **Continuous deployment** (Implantação contínua), escolha **Edit policy** (Editar política).

1. Modifique a configuração de tráfego em uma política de implantação contínua. Ao concluir, escolha **Save changes**.

Quando a configuração da distribuição primária, com a política de implantação contínua atualizada, é implantada em locais da borda, o CloudFront começa a enviar tráfego para a distribuição de preparação com base na configuração de tráfego atualizada.

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

**Como atualizar uma política de implantação contínua (CLI com arquivo de entrada)**

1. Use o comando a seguir para salvar a configuração da política de implantação contínua em um arquivo chamado `continuous-deployment-policy.yaml`. Substitua {{continuous\_deployment\_policy\_ID}} pelo ID da política de implantação contínua. O comando a seguir usa caracteres de escape (\\) e quebras de linha para facilitar a leitura, mas você deve omiti-los do comando.

   ```
   aws cloudfront get-continuous-deployment-policy-config --id {{continuous_deployment_policy_ID}} \
                                                          --output yaml > continuous-deployment-policy.yaml
   ```

1. Abra o arquivo chamado `continuous-deployment-policy.yaml` que você acabou de criar. Edite o arquivo fazendo as seguintes alterações:
   + Modifique a configuração da política de implantação contínua como quiser. Por exemplo, você pode deixar de usar uma configuração de tráfego baseada em cabeçalho para passar a usar uma configuração de tráfego baseada em peso, ou você pode alterar a porcentagem de tráfego (peso) para uma configuração com base em peso. Para obter mais informações, consulte [Encaminhar solicitações para a distribuição de preparação](understanding-continuous-deployment.md#understanding-continuous-deployment-routing) e [Persistência da sessão para configurações baseadas em peso](understanding-continuous-deployment.md#understanding-continuous-deployment-sessions).
   + Renomeie o campo `ETag` para `IfMatch`, mas não altere o valor do campo.

   Ao concluir, salve o arquivo.

1. Use o comando a seguir para atualizar a política de implantação contínua. Substitua {{continuous\_deployment\_policy\_ID}} pelo ID da política de implantação contínua. O comando a seguir usa caracteres de escape (\\) e quebras de linha para facilitar a leitura, mas você deve omiti-los do comando.

   ```
   aws cloudfront update-continuous-deployment-policy --id {{continuous_deployment_policy_ID}} \
                                                      --cli-input-yaml file://continuous-deployment-policy.yaml
   ```

Quando a configuração da distribuição primária, com a política de implantação contínua atualizada, é implantada em locais da borda, o CloudFront começa a enviar tráfego para a distribuição de preparação com base na configuração de tráfego atualizada.

------
#### [ API ]

Para atualizar uma política de implantação contínua, use [UpdateContinuousDeplantymentPolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateContinuousDeploymentPolicy.html).

------

## Promover a configuração de uma distribuição de preparação
<a name="promote-staging-distribution-configuration"></a>

Os procedimentos a seguir mostram como promover uma configuração de distribuição de preparação.

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

Quando você *promove* uma distribuição de preparação, o CloudFront copia a configuração da distribuição de preparação para a distribuição primária. O CloudFront também desativará a política de implantação contínua e encaminhará todo o tráfego para a distribuição primária.

Depois de promover uma configuração, você pode reutilizar a mesma distribuição de preparação na próxima vez que quiser testar uma alteração na configuração.

**Como promover a configuração de uma distribuição de preparação (console)**

1. Abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. No painel de navegação, escolha **Distribuições**.

1. Escolha a distribuição primária. É a distribuição que lida atualmente com o tráfego de produção, aquela a partir da qual você criou a distribuição de preparação.

1. Na seção **Continuous deployment** (Implantação contínua), escolha **Promote** (Promover).

1. Digite **confirm**, depois escolha **Promote** (Promover).

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

Quando você *promove* uma distribuição de preparação, o CloudFront copia a configuração da distribuição de preparação para a distribuição primária. O CloudFront também desativará a política de implantação contínua e encaminhará todo o tráfego para a distribuição primária.

Depois de promover uma configuração, você pode reutilizar a mesma distribuição de preparação na próxima vez que quiser testar uma alteração na configuração.

**Como promover a configuração de uma distribuição de preparação (CLI)**
+ Use o comando **aws cloudfront update-distribution-with-staging-config** para promover a configuração da distribuição de preparação para a distribuição primária. O exemplo de comando a seguir usa caracteres de escape (\\) e quebras de linha para facilitar a leitura, mas você deve omiti-los do comando. No exemplo de comando a seguir:
  + Substitua {{primary\_distribution\_ID}} pelo ID da distribuição primária.
  + Substitua {{staging\_distribution\_ID}} pelo ID da distribuição de preparação.
  + Substitua {{primary\_distribution\_ETag}} e {{staging\_distribution\_ETag}} pelos valores de `ETag` das distribuições primária e de preparação. Certifique-se de que o valor da distribuição primária seja o primeiro, conforme mostrado no exemplo.

  ```
  aws cloudfront update-distribution-with-staging-config --id {{primary_distribution_ID}} \
                                                         --staging-distribution-id {{staging_distribution_ID}} \
                                                         --if-match '{{primary_distribution_ETag}},{{staging_distribution_ETag}}'
  ```

------
#### [ API ]

Para promover a configuração de uma distribuição de preparação para a distribuição primária, use [UpdateDistributionWithStagingConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistributionWithStagingConfig.html).

------