Actualización de una instancia de servicio - 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 instancia de servicio

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

Una instancia de servicio pertenece a un servicio. Solo puede crear o eliminar una instancia en el contexto de las acciones de edición, creación y eliminación de servicios. Para obtener información sobre cómo agregar y eliminar instancias de un servicio, consulte Edición de un servicio.

Existen cuatro modos de actualizar una instancia de servicio, tal y como se describe en la siguiente lista. Al utilizar la AWS CLI, el campo deployment-type define el modo. Al utilizar la consola, estos modos se asignan a las acciones Editar y Actualizar a la última versión secundaria y Actualizar a la última versión principal, que aparecen en el menú Acciones de la página de detalles de la instancia de servicio.

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 instancia 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 instancia 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 instancia de servicio se implementa y actualiza con las versiones principal y secundaria recomendadas (más recientes) publicadas de la plantilla actual que se utiliza 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 instancia 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 instancia de servicio, consulte CancelServiceInstanceDeployment 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 instancia de servicio mediante la consola siguiendo estos pasos.

  1. En la consola de AWS Proton, seleccione Instancias de servicio en el panel de navegación.

  2. En la lista de instancias de servicio, elija el nombre de la instancia de servicio que desee actualizar.

  3. Seleccione Acciones y, a continuación, elija una de las opciones de actualización, Editar para actualizar las especificaciones o Acciones y, a continuación, Actualizar a la última versión secundaria o Actualizar a la última versión principal.

  4. Rellene cada formulario y seleccione Siguiente hasta llegar a la página de Revisión.

  5. Revisa las modificaciones y seleccione Actualizar.

AWS CLI

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

Al actualizar la instancia 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 instancia 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-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"

Respuesta:

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

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

Respuesta:

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

  1. En la consola de AWS Proton, seleccione Instancias de servicio en el panel de navegación.

  2. En la lista de instancias de servicio, elija el nombre de la instancia de servicio con la actualización de implementación que desee cancelar.

  3. Si el estado de la implementación de la actualización está En curso, en la página de detalles de la instancia de servicio, seleccione Acciones y, a continuación, Cancelar implementación.

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

  5. 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 instancia de servicio con estado IN_PROGRESS a la nueva 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-instance-deployment \ --service-instance-name "instance-one" \ --service-name "simple-svc"

Respuesta:

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

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

Respuesta:

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