Atualizar um ambiente - AWS Proton

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á.

Atualizar um ambiente

Se o ambiente do AWS Proton estiver associado a uma conexão de conta de ambiente, não atualize nem inclua o parâmetro protonServiceRoleArn para atualizar ou se conectar a uma conexão de conta de ambiente.

Você só pode atualizar para uma nova conexão de conta de ambiente se ambas as condições a seguir forem verdadeiras:

  • A conexão da conta de ambiente foi criada na mesma conta de ambiente em que a conexão da conta de ambiente atual foi criada.

  • >A conexão da conta do ambiente está associada ao ambiente atual.

Se o ambiente não estiver associado a uma conexão de conta de ambiente, não atualize e nem inclua o parâmetro environmentAccountConnectionId.

Você pode atualizar o parâmetro e valor environmentAccountConnectionId ou protonServiceRoleArn. Não é possível atualizar ambos.

Se seu ambiente usa provisionamento autogerenciado, não atualize o parâmetro provisioning-repository e omita os parâmetros environmentAccountConnectionId e protonServiceRoleArn.

Há quatro modos para atualizar um ambiente, conforme descrito na lista a seguir. Ao usar o AWS CLI, o campo deployment-type define o modo. Ao usar o console, esses modos são mapeados para as ações Editar, Atualizar, Atualizar secundárias e Atualizar principais que aparecem no menu em cascata Ações.

NONE

Nesse modo, uma implantação não ocorre. Somente as ramificações de metadata solicitadas do são atualizadas.

CURRENT_VERSION

Nesse modo, o ambiente é implantado e atualizado com a nova especificação fornecida por você. Somente ramificações solicitadas do são atualizadas. Não inclua parâmetros de versão secundária ou principal ao usar este deployment-type.

MINOR_VERSION

Nesse modo, o ambiente é implantado e atualizado com a versão secundária publicada e recomendada (mais recente) da versão principal atual em uso por padrão. Você também pode especificar uma versão secundária diferente da versão principal atual em uso.

MAJOR_VERSION

Nesse modo, o ambiente é implantado e atualizado com a versão principal e secundária publicada e recomendada (mais recente) do modelo atual por padrão. Você também pode especificar uma versão principal diferente que seja superior à versão principal em uso e uma versão secundária (opcional).

Atualizar um ambiente de provisionamento gerenciado pelo AWS

O provisionamento padrão só é suportado por ambientes que provisionam com o AWS CloudFormation.

Use o console ou o AWS CLI para atualizar seu ambiente.

AWS Management Console
Execute o comando a seguir para visualizar os parâmetros de ambiente conforme mostrado na tabela a seguir.
  1. Escolha uma das duas etapas a seguir.
    1. Na lista de ambientes.
      1. No console do AWS Proton, escolha Ambientes.

      2. Na lista de ambientes, escolha o botão de rádio à esquerda do ambiente você deseja atualizar.

    2. Na página de detalhes de ambiente do console.
      1. No console do AWS Proton, escolha Ambientes.

      2. Na lista de ambientes, escolha o nome do ambiente você deseja atualizar.

  2. Escolha uma das próximas 4 etapas para atualizar seu ambiente.
    1. Para fazer uma edição que não exija a implantação do ambiente.
      1. Por exemplo, para alterar uma descrição.

        Escolha Editar.

      2. Preencha o formulário e escolha Avançar.

      3. Revise sua edição e escolha Atualizar.

    2. Para fazer atualizações somente nas entradas de metadados.
      1. Escolha Ações e, em seguida, Atualizar.

      2. Preencha o formulário e escolha Editar.

      3. Preencha os formulários e escolha Avançar até chegar à página Revisar.

      4. Revise suas atualizações e escolha Atualizar.

    3. Para fazer uma atualização para uma nova versão secundária de seu modelo de ambiente.
      1. Escolha Ações e, em seguida, Atualizar secundária.

      2. Preencha o formulário e escolha Avançar.

      3. Preencha os formulários e escolha Avançar até chegar à página Revisar.

      4. Revise suas atualizações e escolha Atualizar.

    4. Para fazer uma atualização para uma nova versão principal de seu modelo de ambiente.
      1. Escolha Ações e, em seguida, Atualizar principal.

      2. Preencha o formulário e escolha Avançar.

      3. Preencha os formulários e escolha Avançar até chegar à página Revisar.

      4. Revise suas atualizações e escolha Atualizar.

AWS CLI

Use o AWS Proton AWS CLI para atualizar um ambiente para uma nova versão secundária.

Execute o seguinte comando para atualizar seu ambiente:

$ aws proton update-environment \ --name "MySimpleEnv" \ --deployment-type "MINOR_VERSION" \ --template-major-version "1" \ --template-minor-version "1" \ --proton-service-role-arn arn:aws:iam::123456789012:role/service-role/ProtonServiceRole \ --spec "file:///spec.yaml"

Resposta:

{ "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv", "createdAt": "2021-04-02T17:29:55.472000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2021-04-02T17:48:26.307000+00:00", "lastDeploymentSucceededAt": "2021-04-02T17:29:55.472000+00:00", "name": "MySimpleEnv", "protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "simple-env" } }

Execute o comando a seguir para obter e confirmar o status:

$ aws proton get-environment \ --name "MySimpleEnv"

Resposta:

{ "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv", "createdAt": "2021-04-02T17:29:55.472000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "MySimpleEnv", "lastDeploymentAttemptedAt": "2021-04-02T17:48:26.307000+00:00", "lastDeploymentSucceededAt": "2021-04-02T17:48:26.307000+00:00", "protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole", "spec": "proton: EnvironmentSpec\n\nspec:\n my_sample_input: hello\n my_other_sample_input: everybody\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "simple-env" } }

Atualizar um ambiente de provisionamento autogerenciado

O provisionamento autogerenciado só é suportado por ambientes que provisionam com o Terraform.

Use o console ou o AWS CLI para atualizar seu ambiente.

AWS Management Console
Execute o comando a seguir para visualizar os parâmetros de ambiente conforme mostrado na tabela a seguir.
  1. Escolha uma das duas etapas a seguir.
    1. Na lista de ambientes.
      1. No console do AWS Proton, escolha Ambientes.

      2. Na lista de ambientes, escolha o botão de rádio à esquerda do modelo de ambiente você deseja atualizar.

    2. Na página de detalhes de ambiente do console.
      1. No console do AWS Proton, escolha Ambientes.

      2. Na lista de ambientes, escolha o nome do ambiente você deseja atualizar.

  2. Escolha uma das próximas 4 etapas para atualizar seu ambiente.
    1. Para fazer uma edição que não exija a implantação do ambiente.
      1. Por exemplo, para alterar uma descrição.

        Escolha Editar.

      2. Preencha o formulário e escolha Avançar.

      3. Revise sua edição e escolha Atualizar.

    2. Para fazer atualizações somente nas entradas de metadados.
      1. Escolha Ações e, em seguida, Atualizar.

      2. Preencha o formulário e escolha Editar.

      3. Preencha os formulários e escolha Avançar até chegar à página Revisar.

      4. Revise suas atualizações e escolha Atualizar.

    3. Para fazer uma atualização para uma nova versão secundária de seu modelo de ambiente.
      1. Escolha Ações e, em seguida, Atualizar secundária.

      2. Preencha o formulário e escolha Avançar.

      3. Preencha os formulários e escolha Avançar até chegar à página Revisar.

      4. Revise suas atualizações e escolha Atualizar.

    4. Para fazer uma atualização para uma nova versão principal de seu modelo de ambiente.
      1. Escolha Ações e, em seguida, Atualizar principal.

      2. Preencha o formulário e escolha Avançar.

      3. Preencha os formulários e escolha Avançar até chegar à página Revisar.

      4. Revise suas atualizações e escolha Atualizar.

AWS CLI
Use o AWS CLI para atualizar um ambiente do Terraform para uma nova versão secundária com provisionamento autogerenciado.
  1. Execute o seguinte comando para atualizar seu ambiente:

    $ aws proton update-environment \ --name "pr-environment" \ --deployment-type "MINOR_VERSION" \ --template-major-version "1" \ --template-minor-version "1" \ --provisioning-repository "branch=main,name=myrepos/env-repo,provider=GITHUB" \ --spec "file://env-spec-mod.yaml"

    Resposta:

    { "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/pr-environment", "createdAt": "2021-11-18T21:09:15.745000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2021-11-18T21:25:41.998000+00:00", "lastDeploymentSucceededAt": "2021-11-18T21:09:15.745000+00:00", "name": "pr-environment", "provisioningRepository": { "arn": "arn:aws:proton:region-id:123456789012:repository/github:myrepos/env-repo", "branch": "main", "name": "myrepos/env-repo", "provider": "GITHUB" }, "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "pr-env-template" } }
  2. Execute o comando a seguir para obter e confirmar o status:

    $ aws proton get-environment \ --name "pr-environment"

    Resposta:

    { "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/pr-environment", "createdAt": "2021-11-18T21:09:15.745000+00:00", "deploymentStatus": "SUCCEEDED", "lastDeploymentAttemptedAt": "2021-11-18T21:25:41.998000+00:00", "lastDeploymentSucceededAt": "2021-11-18T21:25:41.998000+00:00", "name": "pr-environment", "provisioningRepository": { "arn": "arn:aws:proton:region-id:123456789012:repository/github:myrepos/env-repo", "branch": "main", "name": "myrepos/env-repo", "provider": "GITHUB" }, "spec": "proton: EnvironmentSpec\nspec:\n ssm_parameter_value: \"test\"\n ssm_another_parameter_value: \"update\"\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "pr-env-template" } }
  3. Revise a pull request que foi enviada pelo AWS Proton.

    • Se você aprovar a solicitação, o provisionamento está em andamento.

    • Se você rejeitar a solicitação, a criação do ambiente será cancelada.

    • Se o tempo limite do pull request expirar, a criação do ambiente não será concluída.

  4. Forneça o status de provisionamento para o AWS Proton.

    $ aws proton notify-resource-deployment-status-change \ --resource-arn "arn:aws:proton:region-id:123456789012:environment/pr-environment" \ --status "SUCCEEDED"

Cancela uma implantação de ambiente em progresso

Você pode tentar cancelar a implantação de uma atualização de ambiente se o deploymentStatus estiver em IN_PROGRESS. O AWS Proton tenta cancelar a implantação. O cancelamento bem-sucedido não é garantido.

Quando você cancela uma implantação de atualização, o AWS Proton tenta cancelar a implantação conforme listado nas etapas a seguir.

Com o provisionamento gerenciado pelo AWS, o AWS Proton faz o seguinte:
  • Define o estado de implantação como CANCELLING.

  • Interrompe a implantação em andamento e exclui todos os novos recursos que foram criados pela implantação quando IN_PROGRESS.

  • Define o estado de implantação como CANCELLED.

  • Reverte o estado do recurso para o que era antes do início da implantação.

Com o provisionamento autogerenciado, o AWS Proton faz o seguinte:
  • Tenta fechar a pull request para evitar a mesclagem das alterações no seu repositório.

  • Define o estado de implantação para CANCELLED se a pull request foi fechada com sucesso.

Para obter instruções sobre como cancelar a implantação de um ambiente, consulte CancelEnvironmentDeployment na Referência da AWS Proton API.

Você pode usar o console ou a CLI para cancelar ambientes que estão em andamento.

AWS Management Console

Use o console para cancelar uma implantação de atualização de ambiente, conforme mostrado nas etapas seguintes.

  1. No console do AWS Proton, escolha Ambientes no painel de navegação.

  2. Na lista de ambientes, escolha o nome do ambiente com a atualização de implantação que você deseja cancelar.

  3. Se o status de implantação da atualização estiver Em andamento, na página de detalhes do ambiente, escolha Ações e, em seguida, Cancelar implantação.

  4. Você será solicitado a confirmar que você deseja cancelar esses objetos. Escolha Cancelar implantação.

  5. O status de implantação da atualização será definido como Cancelando e, em seguida, Cancelado para concluir o cancelamento.

AWS CLI

Use o AWS Proton AWS CLI para cancelar a implantação de uma atualização do ambiente IN_PROGRESS para uma nova versão secundária 2.

Uma condição de espera é incluída no modelo usado neste exemplo para que o cancelamento comece antes que a implantação da atualização seja bem-sucedida.

Execute o comando a seguir para cancelar a atualização.

$ aws proton cancel-environment-deployment \ --environment-name "MySimpleEnv"

Resposta:

{ "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv", "createdAt": "2021-04-02T17:29:55.472000+00:00", "deploymentStatus": "CANCELLING", "lastDeploymentAttemptedAt": "2021-04-02T18:15:10.243000+00:00", "lastDeploymentSucceededAt": "2021-04-02T17:48:26.307000+00:00", "name": "MySimpleEnv", "protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole", "spec": "proton: EnvironmentSpec\n\nspec:\n my_sample_input: hello\n my_other_sample_input: everybody\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "simple-env" } }

Execute o comando a seguir para obter e confirmar o status:”

$ aws proton get-environment \ --name "MySimpleEnv"

Resposta:

{ "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv", "createdAt": "2021-04-02T17:29:55.472000+00:00", "deploymentStatus": "CANCELLED", "deploymentStatusMessage": "User initiated cancellation.", "lastDeploymentAttemptedAt": "2021-04-02T18:15:10.243000+00:00", "lastDeploymentSucceededAt": "2021-04-02T17:48:26.307000+00:00", "name": "MySimpleEnv", "protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole", "spec": "proton: EnvironmentSpec\n\nspec:\n my_sample_input: hello\n my_other_sample_input: everybody\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "simple-env" } }