Actualización de una canalización de servicios - AWS Proton

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Actualización de una canalización de servicios

Obtenga información sobre cómo actualizar una canalización de servicios de AWS Proton y sobre cómo cancelar la actualización.

Una canalización de servicios pertenece a un servicio. Solo puede crear o eliminar una canalización en el contexto de las acciones de creación y eliminación de servicios.

Existen cuatro modos de actualizar una canalización de servicios, tal y como se describe en la siguiente lista. Al utilizar la AWS CLI, el campo deployment-type define el modo. Cuando se utiliza la consola, estos modos se asignan a las opciones Editar canalización y Actualizar a la versión recomendada.

NONE

En este modo, no se produce ninguna implementación. Solo se actualizan los parámetros de metadatos solicitados.

CURRENT_VERSION

En este modo, la canalización de servicio se implementa y actualiza con la nueva especificación que se proporcione. Solo se actualizan los parámetros solicitados. No incluya parámetros de versiones principales o secundarias cuando utilice este deployment-type.

MINOR_VERSION

En este modo, la canalización de servicio se implementa y actualiza con la versión secundaria recomendada (más reciente) publicada de la versión principal actual que se utiliza de forma predeterminada. También puede especificar una versión secundaria diferente de la versión principal que se está utilizando actualmente.

MAJOR_VERSION

En este modo, la canalización de servicios se implementa y actualiza con la versión principal y secundaria publicada y recomendada (más reciente) de la plantilla actual de forma predeterminada. También puede especificar una versión principal diferente que sea superior a la versión principal en uso y una versión secundaria (opcional).

Puede intentar cancelar la implementación de la actualización de una canalización de servicio si el deploymentStatus está IN_PROGRESS. AWS Proton intentará cancelar la implementación. No se garantiza que la cancelación se realice correctamente.

Cuando se cancela la implementación de una actualización, AWS Proton intenta cancelar la implementación tal y como se indica en los pasos siguientes.

  • Establece el estado de la implementación en CANCELLING.

  • Detiene la implementación en curso y elimina cualquier recurso nuevo que haya creado dicha implementación cuando está IN_PROGRESS.

  • Establece el estado de la implementación en CANCELLED.

  • Revierte el estado del recurso al que tenía antes de que se iniciara la implementación.

Para obtener más información sobre cómo cancelar la implementación de una canalización de servicio, consulte CancelServicePipelineDeployment en la Referencia de la API de AWS Proton.

Utilice la consola o la AWS CLI para realizar actualizaciones o cancelar las implementaciones de actualizaciones.

AWS Management Console

Actualice una canalización de servicio mediante la consola tal y como se describe en los pasos siguientes.

  1. En la consola de AWS Proton, seleccione Configuración.

  2. En la lista de servicios, elija el nombre del servicio cuya canalización desee actualizar.

  3. Hay dos pestañas en la página de detalles del servicio: Información general y Canalización. Elija Canalización.

  4. Si desea actualizar las especificaciones, seleccione Editar canalización, rellene cada formulario y seleccione Siguiente hasta completar el formulario final y, a continuación, seleccione Actualizar canalización.

    Si desea actualizar a una nueva versión y hay un Icono de información que indica que hay una nueva versión disponible en la Plantilla de canalización, elija el nombre de la nueva versión de la plantilla.

    1. Seleccione Actualizar a la versión recomendada.

    2. Rellene cada formulario y elija Siguiente hasta que complete el formulario final y seleccione Actualizar.

AWS CLI

Actualice una canalización de servicio a una nueva versión secundaria, como se muestra en los siguientes comandos y respuestas de ejemplo de la CLI.

Al actualizar la canalización de servicio con una spec modificada, puede utilizar "${Proton::CURRENT_VAL}" para indicar qué valores de parámetros desea conservar de la spec original, siempre y cuando dichos valores existan en la spec. Utilice get-service para ver la spec original de una canalización de servicio, tal y como se describe en Visualización de datos de servicio.

El siguiente ejemplo muestra cómo puede utilizar "${Proton::CURRENT_VAL}" en una spec.

Especificación:

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: actualizar

$ 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"

Respuesta:

{ "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: obtener y confirmar el estado

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

Respuesta:

{ "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 la implementación de una canalización de servicio mediante la consola, tal y como se muestra en los pasos siguientes.

  1. En la consola de AWS Proton, elija Servicios en el panel de navegación.

  2. En la lista de servicios, elija el nombre del servicio que contenga la canalización con la actualización de implementación que desee cancelar.

  3. En la página de detalles del servicio, elija la pestaña Canalización.

  4. Si el estado de la implementación de la actualización está En curso, en la página de detalles de la canalización de servicios, seleccione Cancelar implementación.

  5. Un modal le pedirá que confirme la cancelación. Seleccione Cancelar implementación.

  6. El estado de la implementación de la actualización se establece en Cancelando y, a continuación, en Cancelado para completar la cancelación.

AWS CLI

Cancele la actualización de implementación de una canalización de servicio con estado IN_PROGRESS a la versión secundaria 2, como se muestra en los siguientes comandos y respuestas de ejemplo de la CLI.

En la plantilla utilizada en este ejemplo se incluye una condición de espera para que la cancelación comience antes de que la implementación de la actualización se complete correctamente.

Comando: cancelar

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

Respuesta:

{ "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: obtener y confirmar el estado

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

Respuesta:

{ "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" } }