Atualize uma instância de serviço - 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á.

Atualize uma instância de serviço

Aprenda a atualizar uma instância de serviço do AWS Proton e cancelar a atualização.

Uma instância de serviço pertence a um serviço. Você só pode criar ou excluir uma instância dentro do contexto das ações de editar, criar e excluir do serviço. Para saber como adicionar e remover instâncias de um serviço, consulte Editar um serviço.

Há quatro modos para atualizar uma instância de serviço, 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 para a versão secundária mais recente e Atualizar para a versão principal mais recente, que aparecem em Ações na página de detalhes da instância de serviço.

NONE

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

CURRENT_VERSION

Nesse modo, a instância de serviço é implantada e atualizada 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, a instância de serviço é implantada e atualizada 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, a instância de serviço é implantada e atualizada 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).

Você pode tentar cancelar a implantação de uma atualização de instância de serviço se o deploymentStatus estiver 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.

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

Para obter mais informações sobre o cancelamento da implantação de uma instância de serviço, consulte CancelServiceInstanceDeployment na Referência da API do AWS Proton.

Use o console ou o AWS CLI para fazer atualizações ou cancelar implantações de atualizações.

AWS Management Console

Atualize uma instância de serviço usando o console seguindo estas etapas.

  1. No console do AWS Proton, escolha Instâncias de serviço no painel de navegação.

  2. Na lista de instâncias de serviço, escolha o nome da instância de serviço que você deseja atualizar.

  3. Escolha Ações e, em seguida, escolha uma das opções de atualização, Editar para atualizar as especificações ou Ações e, em seguida, Atualizar para a versão secundária mais recente ou Atualizar para a versão principal mais recente.

  4. Preencha cada formulário e escolha Avançar até chegar à página Revisar.

  5. Revise suas edições e escolha Atualizar.

AWS CLI

Atualize uma instância de serviço para uma nova versão secundária, conforme mostrado nos comandos e respostas de exemplo da CLI.

Quando você atualiza sua instância de serviço com uma spec modificada, você pode usar "${Proton::CURRENT_VAL}" para indicar quais valores de parâmetros devem ser preservados da spec original, se os valores existirem na spec. Use get-service para visualizar a spec original de uma instância de serviço, conforme descrito em Exibir dados do serviço.

O exemplo a seguir mostra como você pode usar a "${Proton::CURRENT_VAL}" em uma spec.

Especificação:

proton: ServiceSpec pipeline: my_sample_pipeline_optional_input: "${Proton::CURRENT_VAL}" my_sample_pipeline_required_input: "${Proton::CURRENT_VAL}" instances: - name: "my-instance" environment: "simple-env" spec: my_sample_service_instance_optional_input: "${Proton::CURRENT_VAL}" my_sample_service_instance_required_input: "${Proton::CURRENT_VAL}" - name: "my-other-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789"

Comando: atualizar

$ aws proton update-service-instance \ --name "instance-one" \ --service-name "simple-svc" \ --spec "file://service-spec.yaml" \ --template-major-version "1" \ --template-minor-version "1" \ --deployment-type "MINOR_VERSION"

Resposta:

{ "serviceInstance": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "IN_PROGRESS", "environmentName": "arn:aws:proton:region-id:123456789012:environment/simple-env", "lastDeploymentAttemptedAt": "2021-04-02T21:38:00.823000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:29:59.962000+00:00", "name": "instance-one", "serviceName": "simple-svc", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "svc-simple" } }

Comando: obter e confirmar o status

$ aws proton get-service-instance \ --name "instance-one" \ --service-name "simple-svc"

Resposta:

{ "serviceInstance": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-04-02T21:38:00.823000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:38:00.823000+00:00", "name": "instance-one", "serviceName": "simple-svc", "spec": "proton: ServiceSpec\n\npipeline:\n my_sample_pipeline_optional_input: \"abc\"\n my_sample_pipeline_required_input: \"123\"\n\ninstances:\n - name: \"instance-one\"\n environment: \"simple-env\"\n spec:\n my_sample_service_instance_optional_input: \"def\"\n my_sample_service_instance_required_input: \"456\"\n - name: \"my-other-instance\"\n environment: \"kls-simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" } }
AWS Management Console

Cancele a implantação de uma instância de serviço usando o console, conforme mostrado nas etapas a seguir.

  1. No console do AWS Proton, escolha Instâncias de serviço no painel de navegação.

  2. Na lista de instâncias de serviço, escolha o nome da instância de serviço 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 da instância de serviço, escolha Ações e, em seguida, Cancelar implantação.

  4. Um modal pede que você confirme o cancelamento. 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

Cancele uma atualização de implantação da instância de serviço IN_PROGRESS para a nova versão secundária 2, conforme mostrado nos seguintes exemplos de comandos e respostas da CLI.

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.

Comando: cancelar

$ aws proton cancel-service-instance-deployment \ --service-instance-name "instance-one" \ --service-name "simple-svc"

Resposta:

{ "serviceInstance": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "CANCELLING", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-04-02T21:45:15.406000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:38:00.823000+00:00", "name": "instance-one", "serviceName": "simple-svc", "spec": "proton: ServiceSpec\npipeline:\n my_sample_pipeline_optional_input: abc\n my_sample_pipeline_required_input: '123'\ninstances:\n- name: my-instance\n environment: MySimpleEnv\n spec:\n my_sample_service_instance_optional_input: def\n my_sample_service_instance_required_input: '456'\n- name: my-other-instance\n environment: MySimpleEnv\n spec:\n my_sample_service_instance_required_input: '789'\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" } }

Comando: obter e confirmar o status

$ aws proton get-service-instance \ --name "instance-one" \ --service-name "simple-svc"

Resposta:

{ "serviceInstance": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "CANCELLED", "deploymentStatusMessage": "User initiated cancellation.", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-04-02T21:45:15.406000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:38:00.823000+00:00", "name": "instance-one", "serviceName": "simple-svc", "spec": "proton: ServiceSpec\n\npipeline:\n my_sample_pipeline_optional_input: \"abc\"\n my_sample_pipeline_required_input: \"123\"\n\ninstances:\n - name: \"instance-one\"\n environment: \"simple-env\"\n spec:\n my_sample_service_instance_optional_input: \"def\"\n my_sample_service_instance_required_input: \"456\"\n - name: \"my-other-instance\"\n environment: \"kls-simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" } }