

Aviso de fin del soporte: el 7 de octubre de 2026 AWS finalizará el soporte para AWS Proton. Después del 7 de octubre de 2026, ya no podrás acceder a la AWS Proton consola ni a AWS Proton los recursos. La infraestructura implementada permanecerá intacta. Para obtener más información, consulte la [Guía AWS Proton de obsolescencia y migración del servicio](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

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.

# Edición de un servicio
<a name="ag-svc-update"></a>

Puede realizar las siguientes modificaciones en un AWS Proton servicio.
+ Edite la descripción del servicio.
+ Para editar un servicio, agregue y quite las instancias de servicio.

## Edición de la descripción del servicio
<a name="ag-svc-metadata"></a>

Puede utilizar la consola o la AWS CLI para editar la descripción de un servicio.

------
#### [ Consola de administración de AWS ]

**Edite un servicio mediante la consola tal y como se describe en los pasos siguientes.**

**En la lista de servicios.**

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), seleccione **Configuración**.

1. En la lista de servicios, seleccione el botón de radio situado a la izquierda del servicio que desee actualizar.

1. Seleccione **Editar**.

1. En la página **Configurar servicio**, rellene el formulario y seleccione **Siguiente**.

1. En la página **Configurar ajustes personalizados**, seleccione **Siguiente**.

1. Revise sus cambios y seleccione **Guardar cambios**.

**En la página de detalles del servicio.**

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), seleccione **Configuración**.

1. En la lista de servicios, elija el nombre del servicio que desee editar.

1. En la página de detalles del servicio, seleccione **Editar**.

1. En la página **Configurar servicio**, rellene el formulario y seleccione **Siguiente**.

1. En la página **Configurar ajustes personalizados**, rellene el formulario y seleccione **Siguiente**.

1. Revise sus cambios y seleccione **Guardar cambios**.

------
#### [ AWS CLI ]

**Edite una descripción como se muestra en el siguiente ejemplo de comando y respuesta de la CLI.**

Comando:

```
$ aws proton update-service \
    --name "{{MySimpleService}}" \
    --description "{{Edit by updating description}}"
```

Respuesta:

```
{
    "service": {
        "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService",
        "branchName": "main",
        "createdAt": "2021-03-12T22:39:42.318000+00:00",
        "description": "Edit by updating description",
        "lastModifiedAt": "2021-03-12T22:44:21.975000+00:00",
        "name": "MySimpleService",
        "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "repositoryId": "my-repository/myorg-myapp",
        "status": "ACTIVE",
        "templateName": "fargate-service"
    }
}
```

------

## Edite un servicio para agregar o eliminar instancias de servicio
<a name="ag-svc-update-instances"></a>

En el caso AWS Proton de un servicio, puede añadir o eliminar instancias de servicio enviando una especificación editada. Para que una solicitud se realice correctamente, se deben cumplir las siguientes condiciones:
+ Cuando se envía la solicitud de edición, el servicio y la canalización aún no se editan ni se eliminan.
+ La especificación editada no incluye ni las ediciones que modifican a la canalización del servicio ni las ediciones de las instancias de servicio existentes que *no* sean para eliminarse.
+ La especificación editada no elimina ninguna instancia de servicio existente que tenga un componente conectado. Para eliminar una instancia de servicio de este tipo, primero debe actualizar el componente para desconectarlo de su instancia de servicio. Para obtener más información sobre los componentes, consulte [AWS Proton componentes](ag-components.md).

Las instancias en las que se ha producido un error de eliminación son instancias de servicio en el estado `DELETE_FAILED`. Cuando solicitas la edición de un servicio, AWS Proton intenta eliminar automáticamente las instancias en las que no se ha podido eliminar, como parte del proceso de edición. Si alguna de las instancias de servicio no se pudo eliminar, es posible que aún haya recursos asociados a dichas instancias, aunque no estén visibles desde la consola o la AWS CLI. Comprueba los recursos de infraestructura de las instancias que no se han podido eliminar y límpialos para AWS Proton poder eliminarlos por ti.

Para conocer la cuota de instancias de servicio de un servicio, consulte [AWS Proton cuotas](ag-limits.md). También debe mantener al menos una instancia de servicio para el servicio después de crearlo. Durante el proceso de actualización, AWS Proton hace un recuento de las instancias de servicio existentes y de las instancias que se van a añadir o eliminar. Las instancias que no se hayan podido eliminar se incluyen en este recuento y el usuario debe contabilizarlas al editar su `spec`.

### Utilice la consola o AWS CLI para añadir o eliminar instancias de servicio
<a name="ag-svc-update-console-cli"></a>

------
#### [ Consola de administración de AWS ]

**Edite el servicio para agregar o eliminar instancias de servicio mediante la consola.**

En la [consola de AWS Proton](https://console.aws.amazon.com//proton/)

1. En el panel de navegación, elija **Servicios**.

1. Seleccione el servicio que desee editar.

1. Seleccione **Editar**.

1. (Opcional) En la página **Configurar servicio**, edite el nombre o la descripción del servicio y, a continuación, seleccione **Siguiente**.

1. En la página **Configurar ajustes personalizados**, elija **Eliminar** para eliminar una instancia de servicio y elija **Agregar nueva instancia** para agregar una instancia de servicio y, por último, complete el formulario.

1. Elija **Siguiente**.

1. Revise las actualizaciones y seleccione **Guardar cambios**.

1. Un modal le pedirá al usuario que verifique la eliminación de las instancias de servicio. Siga las instrucciones y seleccione **Sí, eliminar**.

1. En la página de detalles del servicio, consulte los detalles del estado de su servicio.

------
#### [ AWS CLI ]

**Agregue y elimine instancias de servicio editándolas`spec`, como se muestra en el siguiente AWS CLI ejemplo de comandos y respuestas.**

Al utilizar la CLI, `spec` debe *excluir* las instancias de servicio que desee eliminar e *incluir* tanto las instancias de servicio que desee agregar como las instancias de servicio existentes que *no* se hayan marcado para su eliminación.

En la siguiente lista se muestra el ejemplo de `spec` anterior a la edición y una lista de las instancias de servicio implementadas según la especificación. Esta especificación se utilizó en el ejemplo anterior para editar la descripción de un servicio.

Especificación:

```
proton: ServiceSpec

pipeline:
  my_sample_pipeline_optional_input: "abc"
  my_sample_pipeline_required_input: "123"

instances:
  - name: "my-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_optional_input: "def"
      my_sample_service_instance_required_input: "456"
  - name: "my-other-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_required_input: "789"
```

El siguiente ejemplo de comando y respuesta de la CLI, `list-service-instances`, muestra las instancias activas antes de agregar o eliminar una instancia de servicio.

Comando:

```
$ aws proton list-service-instances \
    --service-name "{{MySimpleService}}"
```

Respuesta:

```
{
    "serviceInstances": [
        {
            "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-other-instance",
            "createdAt": "2021-03-12T22:39:42.318000+00:00",
            "deploymentStatus": "SUCCEEDED",
            "environmentName": "simple-env",
            "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.109000+00:00",
            "lastDeploymentSucceededAt": "2021-03-12T22:39:43.109000+00:00",
            "name": "my-other-instance",
            "serviceName": "example-svc",
            "templateMajorVersion": "1",
            "templateMinorVersion": "0",
            "templateName": "fargate-service"
        },
        {
            "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-instance",
            "createdAt": "2021-03-12T22:39:42.318000+00:00",
            "deploymentStatus": "SUCCEEDED",
            "environmentName": "simple-env",
            "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.160000+00:00",
            "lastDeploymentSucceededAt": "2021-03-12T22:39:43.160000+00:00",
            "name": "my-instance",
            "serviceName": "example-svc",
            "serviceTemplateArn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service",
            "templateMajorVersion": "1",
            "templateMinorVersion": "0",
            "templateName": "fargate-service"
        }
    ]
}
```

En la siguiente lista se muestra el ejemplo editado que `spec` utilizó para eliminar y agregar una instancia. Se elimina la instancia existente nombrada como `my-instance` y se agrega una nueva instancia nombrada como `yet-another-instance`.

Especificación:

```
proton: ServiceSpec

pipeline:
  my_sample_pipeline_optional_input: "abc"
  my_sample_pipeline_required_input: "123"

instances:
  - name: "my-other-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_required_input: "789"
  - name: "yet-another-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_required_input: "789"
```

Puede utilizar `"${Proton::CURRENT_VAL}"` para indicar qué valores de parámetros desea conservar de la `spec` original, si los valores existen en la `spec`. Utilice `get-service` para ver la `spec` original de un servicio, tal y como se describe en [Visualización de datos de servicio](ag-svc-view.md).

La siguiente lista muestra cómo puede utilizar `"${Proton::CURRENT_VAL}"` para asegurarse de que `spec` *no* incluya cambios en los valores de los parámetros para que las instancias de servicios existentes permanezcan.

Especificación:

```
proton: ServiceSpec

pipeline:
  my_sample_pipeline_optional_input: "${Proton::CURRENT_VAL}"
  my_sample_pipeline_required_input: "${Proton::CURRENT_VAL}"

instances:
  - name: "my-other-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_required_input: "${Proton::CURRENT_VAL}"
  - name: "yet-another-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_required_input: "789"
```

La siguiente lista muestra el comando y la respuesta de la CLI para editar el servicio.

Comando:

```
$ aws proton update-service 
    --name "{{MySimpleService}}" \
    --description "{{Edit by adding and deleting a service instance}}" \
    --spec "{{file://spec.yaml}}"
```

Respuesta:

```
{
    "service": {
        "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService",
        "branchName": "main",
        "createdAt": "2021-03-12T22:39:42.318000+00:00",
        "description": "Edit by adding and deleting a service instance",
        "lastModifiedAt": "2021-03-12T22:55:48.169000+00:00",
        "name": "MySimpleService",
        "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "repositoryId": "my-repository/myorg-myapp",
        "status": "UPDATE_IN_PROGRESS",
        "templateName": "fargate-service"
    }
}
```

El siguiente comando y respuesta de `list-service-instances` confirman que la instancia existente nombrada como `my-instance` se elimina y se agrega una nueva instancia nombrada como `yet-another-instance`.

Comando:

```
$ aws proton list-service-instances \
    --service-name "{{MySimpleService}}"
```

Respuesta:

```
{
    "serviceInstances": [
        {
            "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/yet-another-instance",
            "createdAt": "2021-03-12T22:39:42.318000+00:00",
            "deploymentStatus": "SUCCEEDED",
            "environmentName": "simple-env",
            "lastDeploymentAttemptedAt": "2021-03-12T22:56:01.565000+00:00",
            "lastDeploymentSucceededAt": "2021-03-12T22:56:01.565000+00:00",
            "name": "yet-another-instance",
            "serviceName": "MySimpleService",
            "templateMajorVersion": "1",
            "templateMinorVersion": "0",
            "templateName": "fargate-service"
        },
        {
            "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-other-instance",
            "createdAt": "2021-03-12T22:39:42.318000+00:00",
            "deploymentStatus": "SUCCEEDED",
            "environmentName": "simple-env",
            "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.109000+00:00",
            "lastDeploymentSucceededAt": "2021-03-12T22:39:43.109000+00:00",
            "name": "my-other-instance",
            "serviceName": "MySimpleService",
            "templateMajorVersion": "1",
            "templateMinorVersion": "0",
            "templateName": "fargate-service"
        }
    ]
}
```

------

### Qué ocurre cuando se agregan o se eliminan instancias de servicio
<a name="ag-svc-add-delete"></a>

Tras enviar una edición de servicio para eliminar y añadir instancias de servicio, AWS Proton realiza las siguientes acciones.
+ Establece el servicio en `UPDATE_IN_PROGRESS`.
+ Si el servicio tiene una canalización, establece su estado en `IN_PROGRESS` y bloquea las acciones de la canalización.
+ Establece las instancias de servicio que se van a eliminar como `DELETE_IN_PROGRESS`.
+ Bloquea las acciones del servicio.
+ Bloquea las acciones en instancias de servicio que estén marcadas para eliminarse.
+ Crea nuevas instancias de servicio.
+ Elimina las instancias que se hayan indicado para su eliminación.
+ Intenta eliminar las instancias cuya eliminación haya producido errores.
+ Una vez se agreguen o eliminen instancias por completo, vuelve a aprovisionar la canalización de servicios (si la hubiera), establece el servicio en `ACTIVE` y habilita las acciones del servicio y de la canalización.

AWS Proton intenta remediar los modos de fallo de la siguiente manera.
+ Si no *se pudieron crear* una o más instancias de servicio, AWS Proton intenta desaprovisionar todas las instancias de servicio recién creadas y las devuelve `spec` al estado anterior. *No* elimina ninguna instancia de servicio *ni* modifica la canalización de ninguna manera.
+ Si no se *pudieron eliminar una o más instancias de servicio, AWS Proton vuelve a aprovisionar la canalización sin las instancias eliminadas*. La `spec` se actualiza para incluir las instancias agregadas y excluir las instancias que se marcaron para su eliminación.
+ Si la *canalización no se aprovisiona correctamente*, *no* se intentará revertirla y tanto el servicio como la canalización reflejarán un estado de actualización con errores.

### Modificaciones de etiquetado y servicio
<a name="ag-svc-update-tagging"></a>

Cuando agregas instancias de servicio como parte de la edición del servicio, las etiquetas AWS administradas se propagan y se crean automáticamente para las nuevas instancias y los recursos aprovisionados. Si crea etiquetas nuevas, esas etiquetas solo se aplicarán a las nuevas instancias. Las etiquetas administradas por el cliente del servicio existente también se propagan a las nuevas instancias. Para obtener más información, consulte [AWS Proton recursos y etiquetado](resources.md).