Atualizar um pipeline 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á.

Atualizar um pipeline de serviço

Aprenda a atualizar um pipeline de serviço do AWS Proton e cancelar a atualização.

Um pipeline de serviços pertence a um serviço. Você só pode criar ou excluir um pipeline dentro do contexto das ações de criação e exclusão do serviço.

Há quatro modos para atualizar um pipeline de serviço, conforme descrito na lista a seguir. Ao usar o AWS CLI, o campo deployment-type define o modo. Quando você usa o console, esses modos são mapeados para Editar pipeline e Atualizar para a versão recomendada.

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 pipeline de serviço é 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 pipeline de serviço é 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 pipeline de serviço é 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).

Você pode tentar cancelar a implantação de uma atualização de pipeline 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 um pipeline de serviço, consulte CancelServicePipelineDeployment 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 um pipeline de serviço usando o console conforme descrito nas etapas a seguir.

  1. No console do AWS Proton, selecione Serviços.

  2. Na lista de serviços, escolha o nome do serviço para o qual deseja atualizar o pipeline.

  3. Há duas guias na página de detalhes do serviço, Visão geral e Pipeline. Escolher Pipeline.

  4. Se você quiser atualizar as especificações, escolha Editar pipeline, preencha cada formulário e escolha Avançar até concluir o formulário final e, em seguida, escolha Atualizar pipeline.

    Se você quiser atualizar para uma nova versão e houver um ícone de informações que indica que uma nova versão está disponível no Modelo de pipeline, escolha o nome da nova versão do modelo.

    1. Escolha Atualizar para a versão recomendada.

    2. Preencha cada formulário e escolha Avançar até preencher o formulário final e escolher Atualizar.

AWS CLI

Atualize um pipeline de serviço para uma nova versão secundária, conforme mostrado nos seguintes exemplos de comandos e respostas da CLI.

Quando você atualiza seu pipeline 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 um pipeline 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-pipeline \ --service-name "simple-svc" \ --spec "file://service-spec.yaml" \ --template-major-version "1" \ --template-minor-version "1" \ --deployment-type "MINOR_VERSION"

Resposta:

{ "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2021-04-02T21:39:28.991000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:29:59.962000+00:00", "spec": "proton: ServiceSpec\n\npipeline:\n my_sample_pipeline_optional_input: \"abc\"\n my_sample_pipeline_required_input: \"123\"\n\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": "0", "templateName": "svc-simple" } }

Comando: obter e confirmar o status

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

Resposta:

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc", "branchName": "main", "createdAt": "2021-04-02T21:29:59.962000+00:00", "lastModifiedAt": "2021-04-02T21:30:54.364000+00:00", "name": "simple-svc", "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "SUCCEEDED", "lastDeploymentAttemptedAt": "2021-04-02T21:39:28.991000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:39:28.991000+00:00", "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: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" }, "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "repo-name/myorg-myapp", "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: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "status": "ACTIVE", "templateName": "svc-simple" } }
AWS Management Console

Cancele a implantação de um pipeline de serviço usando o console, conforme mostrado nas etapas a seguir.

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

  2. Na lista de serviços, escolha o nome do serviço que tem o pipeline com a atualização de implantação que você deseja cancelar.

  3. Na página de detalhes do serviço selecione a guia Pipeline.

  4. Se o status de implantação da atualização estiver Em andamento, na página de detalhes do pipeline de serviço, escolha Cancelar implantação.

  5. Um modal pede que você confirme o cancelamento. Escolha Cancelar implantação.

  6. 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 do pipeline de serviço IN_PROGRESS para a 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-pipeline-deployment \ --service-name "simple-svc"

Resposta:

{ "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "CANCELLING", "lastDeploymentAttemptedAt": "2021-04-02T22:02:45.095000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:39:28.991000+00:00", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" } }

Comando: obter e confirmar o status

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

Resposta:

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc", "branchName": "main", "createdAt": "2021-04-02T21:29:59.962000+00:00", "lastModifiedAt": "2021-04-02T21:30:54.364000+00:00", "name": "simple-svc", "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "CANCELLED", "deploymentStatusMessage": "User initiated cancellation.", "lastDeploymentAttemptedAt": "2021-04-02T22:02:45.095000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:39:28.991000+00:00", "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: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" }, "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "repo-name/myorg-myapp", "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: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "status": "ACTIVE", "templateName": "svc-simple" } }