

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.

# AWS Proton plantillas
<a name="ag-templates"></a>

Para añadir el paquete de plantillas a la biblioteca de AWS Proton plantillas, cree una versión secundaria de la plantilla y regístrela en ella AWS Proton. Al crear la plantilla, proporcione el nombre del bucket de Amazon S3 y la ruta del paquete de plantillas. Una vez publicadas las plantillas, los miembros del equipo de la plataforma y los desarrolladores podrán seleccionarlas. Una vez seleccionadas, AWS Proton usa la plantilla para crear y aprovisionar infraestructura y aplicaciones.

Como administrador, puede crear y registrar una plantilla de entorno con ella AWS Proton. A continuación, esta plantilla de entorno se puede utilizar para implementar varios entornos. Por ejemplo, se puede utilizar para implementar entornos de “desarrollo”, de “ensayo” y de “producción”. El entorno de “desarrollo” puede incluir una VPC con subredes privadas y una política de acceso restrictiva a todos los recursos. Las salidas del entorno se pueden utilizar como entradas para los servicios.

Puede crear y registrar plantillas de entorno para crear dos tipos diferentes de entornos. Tanto usted como los desarrolladores pueden AWS Proton utilizarla para implementar servicios en ambos tipos.
+ Registre y publique una plantilla de entorno *estándar* que se AWS Proton utilice para crear un entorno *estándar* que aprovisione y administre la infraestructura del entorno.
+ Registre y publique una plantilla de entorno *gestionado por el cliente* que se AWS Proton utilice para crear un entorno gestionado por el cliente que se conecte a la infraestructura aprovisionada existente. AWS Proton *no* administra la infraestructura aprovisionada existente.

Puede crear y registrar plantillas de servicios con las AWS Proton que implementar servicios en los entornos. Se debe crear un AWS Proton entorno antes de poder implementar un servicio en él.

La siguiente lista describe cómo se crean y administran las plantillas con AWS Proton.
+ (Opcional) Prepare una función de IAM para controlar el acceso de los desarrolladores a las llamadas a la AWS Proton API y a las funciones de servicio de AWS Proton IAM. Para obtener más información, consulte [Roles de IAM](ag-environment-roles.md).
+ Cree un paquete de plantillas. Para obtener más información, consulte [Paquetes de plantillas](ag-template-authoring.md#ag-template-bundles).
+ Cree y registre una plantilla AWS Proton después de crear, comprimir y guardar el paquete de plantillas en un bucket de Amazon S3. Puede hacerlo mediante la consola o la AWS CLI.
+ Pruebe y utilice la plantilla para crear y gestionar los recursos AWS Proton aprovisionados una vez que se haya registrado AWS Proton en ella.
+ Cree y administre versiones principales y secundarias de la plantilla a lo largo de su vida útil.

Puede administrar las versiones de la plantilla manualmente o con las configuraciones de sincronización de plantillas:
+ Usa la AWS Proton consola AWS CLI para crear una nueva versión secundaria o principal.
+ [Cree una configuración de sincronización de plantillas](create-template-sync.md) que permita crear AWS Proton automáticamente una nueva versión secundaria o principal cuando detecte un cambio en el paquete de plantillas en un repositorio que usted defina.

Para obtener información adicional, consulta la [https://docs.aws.amazon.com/proton/latest/APIReference/Welcome.html](https://docs.aws.amazon.com/proton/latest/APIReference/Welcome.html).

**Topics**
+ [Plantillas versionadas](ag-template-versions.md)
+ [Registro y publicación de plantillas](template-create.md)
+ [Visualización de datos de la plantilla](template-view.md)
+ [Actualizar una plantilla](template-update.md)
+ [Eliminación de plantillas](template-delete.md)
+ [Configuraciones de sincronización de plantillas](ag-template-sync-configs.md)
+ [Configuraciones de sincronización de servicios](ag-service-sync-configs.md)

# Plantillas versionadas
<a name="ag-template-versions"></a>

Como administrador o miembro de un equipo de plataforma, el usuario define, crea y administra una biblioteca de plantillas versionadas que se utilizan para aprovisionar recursos de infraestructura. Hay dos tipos de versiones de plantillas: versiones secundarias y versiones principales.
+ *Versiones secundarias*: cambios en la plantilla que tienen un esquema compatible con versiones anteriores. Estos cambios no requieren que el desarrollador proporcione nueva información al actualizar a la nueva versión de la plantilla.

  Cuando intente realizar un cambio menor en la versión, AWS Proton haga todo lo posible por determinar si el esquema de la nueva versión es compatible con versiones anteriores de la plantilla. Si el nuevo esquema no es compatible con versiones anteriores, AWS Proton no se puede registrar la nueva versión secundaria.
**nota**  
La compatibilidad se determina únicamente en función del esquema. AWS Proton no comprueba si el archivo de infraestructura como código (IaC) del paquete de plantillas es compatible con versiones secundarias anteriores. Por ejemplo, AWS Proton no comprueba si el nuevo archivo IaC provoca cambios importantes en las aplicaciones que se ejecutan en la infraestructura aprovisionada por una versión secundaria anterior de la plantilla.
+ *Versiones principales*: cambios en la plantilla que pueden no ser compatibles con versiones anteriores. Estos cambios suelen requerir nuevas entradas por parte del desarrollador y suelen implicar cambios en el esquema de la plantilla.

  En ocasiones, el usuario puede decidir si desea designar un cambio compatible con versiones anteriores como una versión principal en función del modelo operativo de su equipo.

La forma en que se AWS Proton determina si una solicitud de versión de la plantilla es para una versión secundaria o principal depende de la forma en que se realice el seguimiento de los cambios en la plantilla:
+ Cuando se solicita explícitamente la creación de una nueva versión de plantilla, se solicita una versión principal al especificar un número de versión principal, y se solicita una versión secundaria sin especificar ningún número de versión principal.
+ Cuando utilizas la [sincronización de plantillas](ag-template-sync-configs.md) (y, por lo tanto, no realizas solicitudes explícitas de versiones de plantillas), AWS Proton intenta crear nuevas versiones secundarias para los cambios de plantilla que se producen en el archivo YAML existente. AWS Proton crea una versión principal al crear un directorio nuevo para el nuevo cambio de plantilla (por ejemplo, al pasar de la v1 a la v2).
**nota**  
El registro de una nueva versión secundaria basado en la sincronización de la plantilla sigue fallando si se AWS Proton determina que el cambio no es compatible con versiones anteriores.

Cuando se publica una nueva versión de una plantilla, esta se convierte en la versión **recomendada** si se trata de la versión principal y secundaria superior. Los nuevos AWS Proton recursos se crean con la nueva versión recomendada y se AWS Proton pide a los administradores que usen la nueva versión y que actualicen AWS Proton los recursos existentes que utilizan una versión desactualizada.

# Registro y publicación de plantillas
<a name="template-create"></a>

Puede registrar y publicar plantillas de entorno y servicio con ellas AWS Proton, tal y como se describe en las siguientes secciones.

Puede crear una nueva versión de una plantilla con la consola o AWS CLI.

Como alternativa, puede utilizar la consola o AWS CLI crear una plantilla y [configurar una sincronización de plantillas](ag-template-sync-configs.md) para ella. Esta configuración permite la AWS Proton sincronización desde paquetes de plantillas ubicados en los repositorios git registrados que hayas definido. Cada vez que se inserta una confirmación al repositorio que cambia alguno de los paquetes de plantillas, se crea una nueva versión secundaria o principal de la plantilla, siempre y cuando la versión aún no exista. Para obtener más información sobre los requisitos previos y los requisitos de la configuración de sincronización de plantillas, consulte [Configuraciones de sincronización de plantillas](ag-template-sync-configs.md).

## Registro y publicación de plantillas de entorno
<a name="env-template-v1"></a>

Puede registrar y publicar los siguientes tipos de plantillas de entorno.
+ Registra y publica una plantilla de entorno *estándar* que se AWS Proton utilice para implementar y gestionar la infraestructura del entorno.
+ Registre y publique una plantilla de entorno *gestionado por el cliente* que AWS Proton utilice para conectarse a la infraestructura aprovisionada existente que administra. AWS Proton *no* administra la infraestructura aprovisionada existente.

**importante**  
Como administrador, asegúrese de que la infraestructura aprovisionada y gestionada y todos los parámetros de salida sean compatibles con las plantillas de entorno *gestionadas por el cliente* asociadas. AWS Proton no puede contabilizar los cambios en su nombre porque estos cambios no son visibles para AWS Proton usted. Las inconsistencias producen errores.

Puede utilizar la consola o la AWS CLI para registrar y publicar una plantilla de entorno.

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

**Utilice la consola para registrar y publicar una nueva plantilla de entorno.**

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), elija **Plantillas de entorno**.

1. Seleccione **Crear plantilla de entorno**.

1. En la página **Crear plantilla de entorno**, en la sección **Opciones de plantilla**, elija una de las dos opciones de plantilla disponibles.
   + **Crear una plantilla para aprovisionar nuevos entornos**.
   + **Crear una plantilla para utilizar la infraestructura aprovisionada que administre el usuario**.

1. Si ha seleccionado **Crear una plantilla para aprovisionar nuevos entornos**, en la sección **Origen del paquete de plantillas**, elija una de las tres opciones de código fuente del paquete de plantillas disponibles. Para obtener más información sobre los requisitos y requisitos previos para la sincronización de plantillas, consulte [Configuraciones de sincronización de plantillas](ag-template-sync-configs.md).
   + **Utilice uno de nuestros paquetes de plantillas de muestra**.
   + **Utilice su propio paquete de plantillas**.
   + **[Sincronice plantillas desde Git](ag-template-sync-configs.md)**.

1. 

**Proporcione una ruta a un paquete de plantillas.**

   1. Si elige **Utilice uno de nuestros paquetes de plantillas de muestra**:

      En la sección **Paquete de plantillas de muestra**, seleccione un paquete de plantillas de muestra.

   1. Si ha seleccionado **Sincronizar plantillas de Git**, en la sección **Código fuente**:

      1. Seleccione el repositorio para configurar la sincronización de plantillas.

      1. Introduzca el nombre de la ramificación del repositorio desde la que desee llevar a cabo la sincronización.

      1. (Opcional) Introduzca el nombre de un directorio para limitar la búsqueda del paquete de plantillas.

   1. De lo contrario, en la sección de **Ubicación del paquete de S3**, se proporcionará una ruta al paquete de plantillas.

1. En la sección **Detalles de la plantilla**.

   1. Introduzca un **Nombre de plantilla**.

   1. (Opcional) Introduzca un **Nombre de visualización de la plantilla**.

   1. (Opcional) Introduzca una **Descripción de la plantilla** para la plantilla de entorno.

1. (Opcional) Marque la casilla **Personalización de la configuración de cifrado (avanzada)** en la sección **Configuración de cifrado** para proporcionar su propia clave de cifrado.

1. (Opcional) En la sección **Etiquetas**, seleccione **Agregar etiqueta** e introduzca una clave y un valor para crear una etiqueta administrada por el cliente.

1. Seleccione **Crear plantilla de entorno**.

   Ahora aparecerá una nueva página que muestra el estado y los detalles de su nueva plantilla de entorno. Estos detalles incluyen una lista de AWS etiquetas administradas por el cliente. AWS Proton genera automáticamente etiquetas AWS administradas cuando crea AWS Proton recursos. Para obtener más información, consulte [AWS Proton recursos y etiquetado](resources.md).

1. El estado de una nueva plantilla de entorno comienza en el estado **Borrador**. Usted y las personas que gocen de permisos `proton:CreateEnvironment` podrán verla y acceder a ella. Siga el siguiente paso para poner la plantilla a disposición de otras personas.

1. En la sección **Versiones de la plantilla**, seleccione el botón de radio situado a la izquierda de la versión secundaria de la plantilla que acaba de crear (1.0). Como alternativa, puede seleccionar **Publicar** en la alerta de información y omitir el siguiente paso.

1. En la sección **Versiones de la plantilla**, seleccione **Publicar**.

1. El estado de la plantilla cambiará a **Publicado**. Como esta es la versión más reciente de la plantilla, pasará a ser la versión **Recomendada**.

1. En el panel de navegación, seleccione **Plantillas de entorno** para ver una lista de las plantillas de entorno y sus detalles.

**Utilice la consola para registrar las nuevas versiones principales y secundarias de una plantilla de entorno.**

Para obtener más información, consulte [Plantillas versionadas](ag-template-versions.md).

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), elija **Plantillas de entorno**.

1. En la lista de plantillas de entorno, elija el nombre de la plantilla de entorno para la que desee crear una versión principal o secundaria.

1. En la vista detallada de la plantilla de entorno, elija **Crear nueva versión** en la sección **Versiones de la plantilla**.

1. En la página **Crear una nueva versión de plantilla de entorno**, en la sección **Origen del paquete de plantillas**, elija una de las dos opciones de código fuente del paquete de plantillas disponibles.
   + **Utilice uno de nuestros paquetes de plantillas de muestra**.
   + **Usar su propio paquete de plantillas**.

1. Proporcione una ruta al paquete de plantillas seleccionado.
   + Si eligió **Utilice uno de nuestros paquetes de plantillas de muestra**, en la sección **Paquete de plantillas de muestra**, seleccione un paquete de plantillas de muestra.
   + Si eligió **Usar su propio paquete de plantillas**, en la sección **Ubicación del paquete de S3**, elija la ruta al paquete de plantillas.

1. En la sección **Detalles de la plantilla**.

   1. (Opcional) Introduzca un **Nombre de visualización de la plantilla**.

   1. (Opcional) Introduzca una **Descripción de la plantilla** para la plantilla de servicio.

1. En la sección **Detalles de la plantilla**, elija una de las siguientes opciones.
   + Para crear una versión secundaria, desmarque la casilla **Marcar para crear una nueva versión principal**.
   + Para crear una versión principal, marque la casilla **Marcar para crear una nueva versión principal**.

1. Continúe con los pasos de la consola para crear la nueva versión secundaria o principal y seleccione **Crear nueva versión**.

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

**Utilice la CLI para registrar y publicar una nueva plantilla de entorno, como se muestra en los pasos siguientes.**

1. Cree una plantilla de entorno *estándar* o *administrado por el cliente*; para ello, debe especificar la región, el nombre, el nombre para mostrar (opcional) y una descripción (opcional).

   1. Cree una plantilla de entorno *estándar*.

      Ejecuta el siguiente comando:

      ```
      $ aws proton create-environment-template \
          --name "simple-env" \
          --display-name "Fargate" \
          --description "VPC with public access"
      ```

      Respuesta:

      ```
      {
          "environmentTemplate": {
              "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env",
              "createdAt": "2020-11-11T23:02:45.336000+00:00",
              "description": "VPC with public access",
              "displayName": "VPC",
              "lastModifiedAt": "2020-11-11T23:02:45.336000+00:00",
              "name": "simple-env"
          }
      }
      ```

   1. Cree una plantilla de entorno *administrado por el cliente*; para ello, añada el parámetro `provisioning` con el valor `CUSTOMER_MANAGED`.

      Ejecuta el siguiente comando:

      ```
      $ aws proton create-environment-template \
          --name "simple-env" \
          --display-name "Fargate" \
          --description "VPC with public access" \
          --provisioning "CUSTOMER_MANAGED"
      ```

      Respuesta:

      ```
      {
          "environmentTemplate": {
              "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env",
              "createdAt": "2020-11-11T23:02:45.336000+00:00",
              "description": "VPC with public access",
              "displayName": "VPC",
              "lastModifiedAt": "2020-11-11T23:02:45.336000+00:00",
              "name": "simple-env",
              "provisioning": "CUSTOMER_MANAGED"
          }
      }
      ```

1. 

**Creación de una versión secundaria 0 de la versión principal 1 de la plantilla de entorno**

   Este paso y el resto son los mismos para las plantillas de entorno *estándar* y *administrado por el cliente*.

   Incluya el nombre de la plantilla, la versión principal y el nombre y la clave del bucket de S3 que contenga el paquete de plantillas de entorno.

   Ejecuta el siguiente comando:

   ```
   $ aws proton create-environment-template-version \
       --template-name "simple-env" \
       --description "Version 1" \
       --source s3="{bucket=your_s3_bucket, key=your_s3_key}"
   ```

   Respuesta:

   ```
   {
       "environmentTemplateVersion": {
           "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0",
           "createdAt": "2020-11-11T23:02:47.763000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:47.763000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "status": "REGISTRATION_IN_PROGRESS",
           "templateName": "simple-env"
       }
   }
   ```

1. Utilice el comando “get” para comprobar el estado de los registros.

   Ejecuta el siguiente comando:

   ```
   $ aws proton get-environment-template-version \
       --template-name "simple-env" \
       --major-version "1" \
       --minor-version "0"
   ```

   Respuesta:

   ```
   {
       "environment": {
           "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0",
           "createdAt": "2020-11-11T23:02:47.763000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:47.763000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "recommendedMinorVersion": "0",
           "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  environment_input_type: \"MyEnvironmentInputType\"\n  types:\n    MyEnvironmentInputType:\n      type: object\n      description: \"Input properties for my environment\"\n      properties:\n        my_sample_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_other_sample_input:\n          type: string\n          description: \"Another sample input\"\n      required:\n        - my_other_sample_input\n",
           "status": "DRAFT",
           "statusMessage": "",
           "templateName": "simple-env"
       }
   }
   ```

1. Publique la versión secundaria 0 de la versión principal 1 de la plantilla de entorno; para ello, proporcione el nombre de la plantilla y las versiones principal y secundaria. Esta versión es la versión `Recommended`.

   Ejecuta el siguiente comando:

   ```
   $ aws proton update-environment-template-version \
       --template-name "simple-env" \
       --major-version "1" \
       --minor-version "0" \
       --status "PUBLISHED"
   ```

   Respuesta:

   ```
   {
       "environmentTemplateVersion": {
           "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0",
           "createdAt": "2020-11-11T23:02:47.763000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:54.610000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "recommendedMinorVersion": "0",
           "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  environment_input_type: \"MyEnvironmentInputType\"\n  types:\n    MyEnvironmentInputType:\n      type: object\n      description: \"Input properties for my environment\"\n      properties:\n        my_sample_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_other_sample_input:\n          type: string\n          description: \"Another sample input\"\n      required:\n        - my_other_sample_input\n",
           "status": "PUBLISHED",
           "statusMessage": "",
           "templateName": "simple-env"
       }
   }
   ```

Tras crear una nueva plantilla con la AWS CLI, podrá ver una lista de etiquetas gestionadas por el cliente AWS y las etiquetas gestionadas por ellos. AWS Proton genera automáticamente etiquetas AWS gestionadas para usted. También puede modificar y crear etiquetas administradas por el cliente mediante la AWS CLI. Para obtener más información, consulte [AWS Proton recursos y etiquetado](resources.md).

Ejecuta el siguiente comando:

```
$ aws proton list-tags-for-resource \
    --resource-arn "arn:aws:proton:region-id:123456789012:environment-template/simple-env"
```

------

## Registro y publicación de plantillas de servicio
<a name="svc-template-v1"></a>

Al crear una versión de una plantilla de servicio, debe especificar una lista de plantillas de entorno compatibles. De esta forma, cuando los desarrolladores seleccionen una plantilla de servicio, tendrán opciones para el entorno en el que implementar su servicio.

Antes de crear un servicio a partir de una plantilla de servicio o antes de publicar una plantilla de servicio, confirme que los entornos se implementen a partir de las plantillas de entorno compatibles de la lista.

*No puede* actualizar un servicio a la nueva versión principal si se ha implementado en un entorno creado a partir de una plantilla de entorno compatible eliminada.

Para añadir o eliminar plantillas de entorno compatibles para una versión de plantilla de servicio, debe crear una nueva versión principal de la misma.

Puede utilizar la consola o la AWS CLI para registrar y publicar una plantilla de servicio.

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

**Utilice la consola para registrar y publicar una nueva plantilla de servicio.**

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), elija **Plantillas de servicio**.

1. Elija **Crear plantilla de servicio**.

1. En la página **Crear plantilla de servicio**, en la sección **Origen del paquete de plantillas**, elija una de las opciones de plantilla disponibles.
   + **Utilice su propio paquete de plantillas**.
   + **Sincronice plantillas desde Git**.

1. 

**Proporcione una ruta a un paquete de plantillas.**

   1. Si ha seleccionado **Sincronizar plantillas de Git**, en la sección **Repositorio de código fuente**:

      1. Seleccione el repositorio para configurar la sincronización de plantillas.

      1. Introduzca el nombre de la ramificación del repositorio desde la que desee llevar a cabo la sincronización.

      1. (Opcional) Introduzca el nombre de un directorio para limitar la búsqueda del paquete de plantillas.

   1. De lo contrario, en la sección de **Ubicación del paquete de S3**, se proporcionará una ruta al paquete de plantillas.

1. En la sección **Detalles de la plantilla**.

   1. Introduzca un **Nombre de plantilla**.

   1. (Opcional) Introduzca un **Nombre de visualización de la plantilla**.

   1. (Opcional) Introduzca una **Descripción de la plantilla** para la plantilla de servicio.

1. En la sección **Plantillas de entorno compatibles**, elija una plantilla de la lista de plantillas de entorno compatibles.

   

1. (Opcional) En la sección **Configuración de cifrado**, elija **Personalización de la configuración de cifrado (avanzada)** para proporcionar su propia clave de cifrado.

1. (Opcional) En la sección **Canalización**:

   Si no incluye una definición de canalización de servicios en la plantilla de servicio, desmarque la casilla de **Canalización: opcional**, situada en la parte inferior de la página. *No podrá* cambiar esta opción una vez creada la plantilla de servicio. Para obtener más información, consulte [Paquetes de plantillas](ag-template-authoring.md#ag-template-bundles).

1. (Opcional) En la sección **Orígenes de componentes compatibles**, en **Orígenes de componentes**, seleccione **Definición directa** para asociar los componentes definidos directamente a las instancias de servicio.

1. (Opcional) En la sección **Etiquetas**, seleccione **Agregar etiqueta** e introduzca una clave y un valor para crear una etiqueta administrada por el cliente.

1. Elija **Crear una plantilla de servicio**.

   Ahora aparecerá una nueva página que muestra el estado y los detalles de su nueva plantilla de servicio. Estos detalles incluyen una lista de etiquetas administradas por el cliente AWS y otras etiquetas. AWS Proton genera automáticamente etiquetas AWS administradas cuando crea AWS Proton recursos. Para obtener más información, consulte [AWS Proton recursos y etiquetado](resources.md).

1. El estado inicial de una nueva plantilla de servicio será el estado **Borrador**. Usted y las personas que gocen de permisos `proton:CreateService` podrán verla y acceder a ella. Siga el siguiente paso para poner la plantilla a disposición de otras personas.

1. En la sección **Versiones de la plantilla**, seleccione el botón de radio situado a la izquierda de la versión secundaria de la plantilla que acaba de crear (1.0). Como alternativa, puede seleccionar **Publicar** en la alerta de información y omitir el siguiente paso.

1. En la sección **Versiones de la plantilla**, seleccione **Publicar**.

1. El estado de la plantilla cambiará a **Publicado**. Como esta es la versión más reciente de la plantilla, pasará a ser la versión **Recomendada**.

1. En el panel de navegación, seleccione **Plantillas de servicio** para ver una lista de sus plantillas y detalles de servicio.

**Utilice la consola para registrar las nuevas versiones principales y secundarias de una plantilla de servicio.**

Para obtener más información, consulte [Plantillas versionadas](ag-template-versions.md).

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), elija **Plantillas de servicio**.

1. En la lista de plantillas de servicio, elija el nombre de la plantilla de servicio para la que desee crear una versión principal o secundaria.

1. En la vista detallada de la plantilla de servicio, elija **Crear nueva versión** en la sección **Versiones de la plantilla**.

1. En la página **Crear una nueva versión de plantillas de servicio**, en la sección **Origen del paquete**, seleccione **Usar su propio paquete de plantillas**.

1. En la sección **Ubicación del paquete de S3**, elija la ruta al paquete de plantillas.

1. En la sección **Detalles de la plantilla**.

   1. (Opcional) Introduzca un **Nombre de visualización de la plantilla**.

   1. (Opcional) Introduzca una **Descripción de la plantilla** para la plantilla de servicio.

1. En la sección **Detalles de la plantilla**, elija una de las siguientes opciones.
   + Para crear una versión secundaria, desmarque la casilla **Marcar para crear una nueva versión principal**.
   + Para crear una versión principal, marque la casilla **Marcar para crear una nueva versión principal**.

1. Continúe con los pasos de la consola para crear la nueva versión secundaria o principal y seleccione **Crear nueva versión**.

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

Para crear una plantilla de servicio que implemente un servicio sin una canalización de servicios, agregue el parámetro y el valor `--pipeline-provisioning "CUSTOMER_MANAGED"` al comando `create-service-template`. Configure los paquetes de plantillas como se describe en creación de [Paquetes de plantillas](ag-template-authoring.md#ag-template-bundles) y [Requisitos del esquema para los paquetes de plantillas de servicio](ag-schema.md#schema-req-svc).

**nota**  
No puede modificar `pipelineProvisioning` una vez se haya creado la plantilla de servicio.

1. 

**Utilice la CLI para registrar y publicar una nueva plantilla de servicio, con o sin una canalización de servicios, como se muestra en los pasos siguientes.**

   1. 

**Cree una plantilla de servicio con una canalización de servicios mediante la CLI.**

      Introduzca el nombre, el nombre para mostrar (opcional) y una descripción (opcional).

      Ejecuta el siguiente comando:

      ```
      $ aws proton create-service-template \
          --name "fargate-service" \
          --display-name "Fargate" \
          --description "Fargate-based Service"
      ```

      Respuesta:

      ```
      {
          "serviceTemplate": {
              "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service",
              "createdAt": "2020-11-11T23:02:55.551000+00:00",
              "description": "Fargate-based Service",
              "displayName": "Fargate",
              "lastModifiedAt": "2020-11-11T23:02:55.551000+00:00",
              "name": "fargate-service"
          }
      }
      ```

   1. 

**Cree una plantilla de servicio sin una canalización de servicios.**

      Añada `--pipeline-provisioning`.

      Ejecute el siguiente comando:

      ```
      $ aws proton create-service-template \
          --name "fargate-service" \
          --display-name "Fargate" \
          --description "Fargate-based Service" \
          --pipeline-provisioning "CUSTOMER_MANAGED"
      ```

      Respuesta:

      ```
      {
          "serviceTemplate": {
              "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service",
              "createdAt": "2020-11-11T23:02:55.551000+00:00",
              "description": "Fargate-based Service",
              "displayName": "Fargate",
              "lastModifiedAt": "2020-11-11T23:02:55.551000+00:00",
              "name": "fargate-service",
              "pipelineProvisioning": "CUSTOMER_MANAGED"
          }
      }
      ```

1. 

**Cree una versión secundaria 0 de la versión principal 1 de la plantilla de servicio.**

   Incluya el nombre de la plantilla, las plantillas de entorno compatibles, la versión principal y el nombre y la clave del bucket de S3 que contenga el paquete de plantillas de servicio.

   Ejecuta el siguiente comando:

   ```
   $ aws proton create-service-template-version \
       --template-name "fargate-service" \
       --description "Version 1" \
       --source s3="{bucket=your_s3_bucket, key=your_s3_key}" \
       --compatible-environment-templates '[{"templateName":"simple-env","majorVersion":"1"}]'
   ```

   Respuesta:

   ```
   {
       "serviceTemplateMinorVersion": {
           "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service:1.0",
           "compatibleEnvironmentTemplates": [
               {
                   "majorVersion": "1",
                   "templateName": "simple-env"
               }
           ],
           "createdAt": "2020-11-11T23:02:57.912000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:57.912000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "status": "REGISTRATION_IN_PROGRESS",
           "templateName": "fargate-service"
       }
   }
   ```

   

1. Utilice el comando *get* para comprobar el estado de los registros.

   Ejecute el siguiente comando:

   ```
   $ aws proton get-service-template-version \
       --template-name "fargate-service" \
       --major-version "1" \
       --minor-version "0"
   ```

   Respuesta:

   ```
   {
       "serviceTemplateMinorVersion": {
           "arn": "arn:aws:proton:us-east-1:123456789012:service-template/fargate-service:1.0",
           "compatibleEnvironmentTemplates": [
               {
                   "majorVersion": "1",
                   "templateName": "simple-env"
               }
           ],
           "createdAt": "2020-11-11T23:02:57.912000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:57.912000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  pipeline_input_type: \"MyPipelineInputType\"\n  service_input_type: \"MyServiceInstanceInputType\"\n\n  types:\n    MyPipelineInputType:\n      type: object\n      description: \"Pipeline input properties\"\n      required:\n        - my_sample_pipeline_required_input\n      properties:\n        my_sample_pipeline_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_pipeline_required_input:\n          type: string\n          description: \"Another sample input\"\n\n    MyServiceInstanceInputType:\n      type: object\n      description: \"Service instance input properties\"\n      required:\n        - my_sample_service_instance_required_input\n      properties:\n        my_sample_service_instance_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_service_instance_required_input:\n          type: string\n          description: \"Another sample input\"",
           "status": "DRAFT",
           "statusMessage": "",
           "templateName": "fargate-service"
       }
   }
   ```

1. Publique la plantilla de servicio mediante el comando “update” para cambiar el estado a `"PUBLISHED"`.

   Ejecuta el siguiente comando:

   ```
   $ aws proton update-service-template-version \
       --template-name "fargate-service" \
       --description "Version 1" \
       --major-version "1" \
       --minor-version "0" \
       --status "PUBLISHED"
   ```

   Respuesta:

   ```
   {
       "serviceTemplateVersion": {
           "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service:1.0",
           "compatibleEnvironmentTemplates": [
               {
                   "majorVersion": "1",
                   "templateName": "simple-env"
               }
           ],
           "createdAt": "2020-11-11T23:02:57.912000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:57.912000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "recommendedMinorVersion": "0",
           "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  pipeline_input_type: \"MyPipelineInputType\"\n  service_input_type: \"MyServiceInstanceInputType\"\n\n  types:\n    MyPipelineInputType:\n      type: object\n      description: \"Pipeline input properties\"\n      required:\n        - my_sample_pipeline_required_input\n      properties:\n        my_sample_pipeline_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello pipeline\"\n        my_sample_pipeline_required_input:\n          type: string\n          description: \"Another sample input\"\n\n    MyServiceInstanceInputType:\n      type: object\n      description: \"Service instance input properties\"\n      required:\n        - my_sample_service_instance_required_input\n      properties:\n        my_sample_service_instance_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_service_instance_required_input:\n          type: string\n          description: \"Another sample input\"\n",
           "status": "PUBLISHED",
           "statusMessage": "",
           "templateName": "fargate-service"
       }
   }
   ```

1. Compruebe si se AWS Proton ha publicado la versión 1.0 mediante el comando get para recuperar los datos detallados de la plantilla de servicio.

   Ejecuta el siguiente comando:

   ```
   $ aws proton get-service-template-version \
       --template-name "fargate-service" \
       --major-version "1" \
       --minor-version "0"
   ```

   Respuesta:

   ```
   {
       "serviceTemplateMinorVersion": {
           "arn": "arn:aws:proton:us-east-1:123456789012:service-template/fargate-service:1.0",
           "compatibleEnvironmentTemplates": [
               {
                   "majorVersion": "1",
                   "templateName": "simple-env"
               }
           ],
           "createdAt": "2020-11-11T23:02:57.912000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:03:04.767000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  pipeline_input_type: \"MyPipelineInputType\"\n  service_input_type: \"MyServiceInstanceInputType\"\n\n  types:\n    MyPipelineInputType:\n      type: object\n      description: \"Pipeline input properties\"\n      required:\n        - my_sample_pipeline_required_input\n      properties:\n        my_sample_pipeline_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_pipeline_required_input:\n          type: string\n          description: \"Another sample input\"\n\n    MyServiceInstanceInputType:\n      type: object\n      description: \"Service instance input properties\"\n      required:\n        - my_sample_service_instance_required_input\n      properties:\n        my_sample_service_instance_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_service_instance_required_input:\n          type: string\n          description: \"Another sample input\"",
           "status": "PUBLISHED",
           "statusMessage": "",
           "templateName": "fargate-service"
       }
   }
   ```

------

# Visualización de datos de la plantilla
<a name="template-view"></a>

Puede ver listas de plantillas con detalles y visualizar plantillas individuales con datos detallados mediante la [consola de AWS Proton](https://console.aws.amazon.com//proton/) y la AWS CLI.

Los datos de la plantilla de entorno *administrado por el cliente* incluyen el parámetro `provisioned` con el valor `CUSTOMER_MANAGED`.

Si una plantilla de servicio *no* incluye ninguna canalización de servicios, los datos de la plantilla de servicio incluirán el parámetro `pipelineProvisioning` con el valor `CUSTOMER_MANAGED`.

Para obtener más información, consulte [Registro y publicación de plantillas](template-create.md).

Puede utilizar la consola o la AWS CLI para enumerar y ver los datos de la plantilla.

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

**Utilice la consola para enumerar y ver las plantillas.**

1. Para ver una lista de plantillas, elija **Plantillas (de entorno o de servicio)**.

1. Para ver los datos detallados, elija el nombre de una plantilla.

   Vea los datos detallados de la plantilla, una lista de las versiones principales y secundarias de la plantilla y una lista de los AWS Proton recursos que se implementaron mediante las versiones de la plantilla y las etiquetas de la plantilla.

   La versión principal y la versión secundaria recomendadas están etiquetadas como **Recomendadas**.

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

**Utilice esta opción AWS CLI para enumerar y ver las plantillas.**

Ejecuta el siguiente comando:

```
$ aws proton get-environment-template-version \
    --template-name "simple-env" \
    --major-version "1" \
    --minor-version "0"
```

Respuesta:

```
{
    "environmentTemplateVersion": {
        "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0",
        "createdAt": "2020-11-10T18:35:08.293000+00:00",
        "description": "Version 1",
        "lastModifiedAt": "2020-11-10T18:35:11.162000+00:00",
        "majorVersion": "1",
        "minorVersion": "0",
        "recommendedMinorVersion": "0",
        "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  environment_input_type: \"MyEnvironmentInputType\"\n  types:\n    MyEnvironmentInputType:\n      type: object\n      description: \"Input properties for my environment\"\n      properties:\n        my_sample_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_other_sample_input:\n          type: string\n          description: \"Another sample input\"\n      required:\n        - my_other_sample_input\n",
        "status": "DRAFT",
        "statusMessage": "",
        "templateName": "simple-env"
    }
}
```

Ejecuta el siguiente comando:

```
$ aws proton list-environment-templates
```

Respuesta:

```
{
    "templates": [
        {
            "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env-3",
            "createdAt": "2020-11-10T18:35:05.763000+00:00",
            "description": "VPC with Public Access",
            "displayName": "VPC",
            "lastModifiedAt": "2020-11-10T18:35:05.763000+00:00",
            "name": "simple-env-3",
            "recommendedVersion": "1.0"            
        },
        {
            "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env-1",
            "createdAt": "2020-11-10T00:14:06.881000+00:00",
            "description": "Some SSM Parameters",
            "displayName": "simple-env-1",
            "lastModifiedAt": "2020-11-10T00:14:06.881000+00:00",
            "name": "simple-env-1",
            "recommendedVersion": "1.0"           
        }
    ]
}
```

Vea una versión secundaria de una plantilla de servicio.

Ejecuta el siguiente comando:

```
$ aws proton get-service-template-version \
    --template-name "fargate-service" \
    --major-version "1" \
    --minor-version "0"
```

Respuesta:

```
{
    "serviceTemplateMinorVersion": {
        "arn": "arn:aws:proton:us-east-1:123456789012:service-template/fargate-service:1.0",
        "compatibleEnvironmentTemplates": [
            {
                "majorVersion": "1",
                "templateName": "simple-env"
            }
        ],
        "createdAt": "2020-11-11T23:02:57.912000+00:00",
        "description": "Version 1",
        "lastModifiedAt": "2020-11-11T23:02:57.912000+00:00",
        "majorVersion": "1",
        "minorVersion": "0",
        "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  pipeline_input_type: \"MyPipelineInputType\"\n  service_input_type: \"MyServiceInstanceInputType\"\n\n  types:\n    MyPipelineInputType:\n      type: object\n      description: \"Pipeline input properties\"\n      required:\n        - my_sample_pipeline_required_input\n      properties:\n        my_sample_pipeline_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_pipeline_required_input:\n          type: string\n          description: \"Another sample input\"\n\n    MyServiceInstanceInputType:\n      type: object\n      description: \"Service instance input properties\"\n      required:\n        - my_sample_service_instance_required_input\n      properties:\n        my_sample_service_instance_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_service_instance_required_input:\n          type: string\n          description: \"Another sample input\"",
        "status": "DRAFT",
        "statusMessage": "",
        "templateName": "fargate-service"
    }
}
```

Vea una plantilla de servicio sin una canalización de servicios, como se muestra en el siguiente ejemplo de comando y respuesta.

Ejecuta el siguiente comando:

```
$ aws proton get-service-template \
    --name "simple-svc-template-cli"
```

Respuesta:

```
{
    "serviceTemplate": {
        "arn": "arn:aws:proton:region-id:123456789012:service-template/simple-svc-template-cli",
        "createdAt": "2021-02-18T15:38:57.949000+00:00",
        "displayName": "simple-svc-template-cli",
        "lastModifiedAt": "2021-02-18T15:38:57.949000+00:00",
        "status": "DRAFT",
        "name": "simple-svc-template-cli",
        "pipelineProvisioning": "CUSTOMER_MANAGED"
    }
}
```

------

# Actualizar una plantilla
<a name="template-update"></a>

Puede actualizar una plantilla tal y como se describe en la siguiente lista.
+ Edite los valores `description` o `display name` de una plantilla cuando utilice la consola o la AWS CLI. No *puede* editar el valor `name` de una plantilla.
+ Actualice el estado de la versión secundaria de una plantilla cuando utilice la consola o la AWS CLI. Solo se puede cambiar el estado de `DRAFT` a `PUBLISHED`.
+ Edite el nombre para mostrar y la descripción de una versión secundaria o principal de una plantilla cuando utilice la AWS CLI.

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

Edite la descripción y el nombre para mostrar de una plantilla mediante la consola tal y como se describe en los pasos siguientes.

**En la lista de plantillas.**

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), elija **Plantillas (de entorno o de servicio)**.

1. En la lista de plantillas, elija el botón de radio situado a la izquierda de la plantilla, cuya descripción o nombre para mostrar desee actualizar.

1. Elija **Acciones** y, a continuación, elija **Editar**.

1. En la página **Editar plantilla (de entorno o de servicio)**, en la sección **Detalles de la plantilla**, introduzca las modificaciones en el formulario y seleccione **Guardar cambios**.

Cambie el estado de una versión secundaria de una plantilla mediante la consola para publicar una plantilla, tal y como se describe a continuación. Solo se puede cambiar el estado de `DRAFT` a `PUBLISHED`.

**En la página de detalles de la plantilla (de entorno o de servicio).**

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), elija **Plantillas (de entorno o de servicio)**.

1. En la lista de plantillas, elija el nombre de la plantilla desde la que desee actualizar el estado de una versión secundaria de **Borrador** a **Publicada**.

1. En la página de detalles de la plantilla (entorno o servicio), en la sección **Versiones de la plantilla**, seleccione el botón de radio situado a la izquierda de la versión secundaria que desee publicar.

1. Seleccione **Publicar** en la sección **Versiones de la plantilla**. El estado cambiará de **Borrador** a **Publicada**.

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

El siguiente ejemplo de comando y respuesta muestra cómo se puede editar la descripción de una plantilla de entorno.

Ejecute el siguiente comando.

```
$ aws proton update-environment-template \
    --name "simple-env" \
    --description "A single VPC with public access"
```

Respuesta:

```
{
    "environmentTemplate": {
        "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env",
        "createdAt": "2020-11-28T22:02:10.651000+00:00",
        "description": "A single VPC with public access",
        "displayName": "simple-env",
        "lastModifiedAt": "2020-11-29T16:11:18.956000+00:00",
        "majorVersion": "1",
        "minorVersion": "0",
        "recommendedMinorVersion": "0",
        "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  environment_input_type: \"MyEnvironmentInputType\"\n  types:\n    MyEnvironmentInputType:\n      type: object\n      description: \"Input properties for my environment\"\n      properties:\n        my_sample_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_other_sample_input:\n          type: string\n          description: \"Another sample input\"\n      required:\n        - my_other_sample_input\n",
        "status": "PUBLISHED",
        "statusMessage": "",
        "templateName": "simple-env"
    }
}
```

También puede utilizarla AWS CLI para actualizar las plantillas de servicio. Consulte el paso 5 en [Registro y publicación de plantillas de servicio](template-create.md#svc-template-v1) para ver un ejemplo de cómo actualizar el estado de una versión secundaria de una plantilla de servicio.

------

# Eliminación de plantillas
<a name="template-delete"></a>

Las plantillas se pueden eliminar mediante la consola y la AWS CLI.

Puede eliminar una versión secundaria de una plantilla de entorno si no hay ningún otro entorno implementado en esa versión.

Puede eliminar una versión secundaria de una plantilla de servicio si no hay instancias de servicio o canalizaciones implementadas en esa versión. La canalización se puede implementar en una versión de plantilla diferente a la de la instancia de servicio. Por ejemplo, si la instancia de servicio se ha actualizado a la versión 1.1 desde la versión 1.0 y la canalización sigue implementada en la versión 1.0, no será posible eliminar la plantilla de servicio de versión 1.0.

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

Puede utilizar la consola para eliminar la plantilla completa o las versiones secundarias y principales individuales de una plantilla.

Utilice la consola para eliminar plantillas como se muestra a continuación.

**nota**  
Al eliminar la plantilla completa, también se eliminarán las versiones principal y secundaria de dicha plantilla.

**En la lista de plantillas (de entorno o de servicio).**

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), elija **Plantillas (de entorno o de servicio)**.

1. En la lista de plantillas, seleccione el botón de radio situado a la izquierda de la plantilla que desee eliminar.

   Solo puede eliminar una plantilla completa si no hay AWS Proton recursos implementados en sus versiones.

1. Seleccione **Acciones** y, a continuación, **Eliminar** para eliminar toda la plantilla.

1. Un modal le pedirá que confirme la acción de eliminación.

1. Siga las instrucciones y seleccione **Sí, eliminar**.

**En la página de detalles de la plantilla (de entorno o de servicio).**

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), elija **Plantillas (de entorno o de servicio)**.

1. En la lista de plantillas, elija el nombre de la plantilla que desee eliminar por completo o elimine las versiones principales o secundarias individuales de la misma.

1. 

**Para eliminar la plantilla completa.**

   Solo puede eliminar una plantilla completa si no hay AWS Proton recursos implementados en sus versiones.

   1. Seleccione **Eliminar**, en la esquina superior derecha de la página.

   1. Un modal le pedirá que confirme la acción de eliminación.

   1. Siga las instrucciones y seleccione **Sí, eliminar**.

1. 

**Para eliminar las versiones principales o secundarias de una plantilla.**

   Solo puede eliminar una versión secundaria de una plantilla si no hay AWS Proton recursos desplegados en esa versión.

   1. En la sección **Versiones de la plantilla**, seleccione el botón de radio situado a la izquierda de la versión que desee eliminar.

   1. Seleccione **Eliminar** en la sección **Versiones de la plantilla**.

   1. Un modal le pedirá que confirme la acción de eliminación.

   1. Siga las instrucciones y seleccione **Sí, eliminar**.

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

AWS CLI las operaciones de eliminación de plantillas *no* incluyen la eliminación de otras versiones de una plantilla. Cuando utilice las AWS CLI, elimine las plantillas con las siguientes condiciones.
+ Elimine una plantilla completa si no existen versiones secundarias o principales de la plantilla.
+ Elimine una versión principal al eliminar la última versión secundaria restante.
+ Elimine una versión secundaria de una plantilla si no hay AWS Proton recursos desplegados en esa versión.
+ Elimine la versión secundaria recomendada de una plantilla si no existen otras versiones secundarias de la plantilla y no hay AWS Proton recursos desplegados en esa versión.

**Los siguientes comandos y respuestas de ejemplo muestran cómo utilizarlos AWS CLI para eliminar plantillas.**

Ejecuta el siguiente comando:

```
$ aws proton delete-environment-template-version \
    --template-name "simple-env" \
    --major-version "1" \
    --minor-version "0"
```

Respuesta:

```
{
    "environmentTemplateVersion": {
        "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0",
        "createdAt": "2020-11-11T23:02:47.763000+00:00",
        "description": "Version 1",
        "lastModifiedAt": "2020-11-11T23:02:54.610000+00:00",
        "majorVersion": "1",
        "minorVersion": "0",
        "status": "PUBLISHED",
        "statusMessage": "",
        "templateName": "simple-env"
    }
}
```

Ejecuta el siguiente comando:

```
$ aws proton delete-environment-template \
    --name "simple-env"
```

Respuesta:

```
{
    "environmentTemplate": {
        "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env",
        "createdAt": "2020-11-11T23:02:45.336000+00:00",
        "description": "VPC with Public Access",
        "displayName": "VPC",
        "lastModifiedAt": "2020-11-12T00:23:22.339000+00:00",
        "name": "simple-env",
        "recommendedVersion": "1.0"
    }
}
```

Ejecuta el siguiente comando:

```
$ aws proton delete-service-template-version \
    --template-name "fargate-service" \
    --major-version "1" \
    --minor-version "0"
```

Respuesta:

```
{
    "serviceTemplateVersion": {
        "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service:1.0",
        "compatibleEnvironmentTemplates": [{"majorVersion": "1", "templateName": "simple-env"}],
        "createdAt": "2020-11-28T22:07:05.798000+00:00",
        "lastModifiedAt": "2020-11-28T22:19:05.368000+00:00",
        "majorVersion": "1",
        "minorVersion": "0",
        "status": "PUBLISHED",
        "statusMessage": "",
        "templateName": "fargate-service"
    }
}
```

------

# Configuraciones de sincronización de plantillas
<a name="ag-template-sync-configs"></a>

Aprende a configurar una plantilla para permitir la AWS Proton sincronización de los paquetes de plantillas ubicados en los repositorios de git registrados que tú definas. Cuando se inserta una confirmación al repositorio, AWS Proton comprueba si hay cambios en los paquetes de plantillas de dicho repositorio. Si detecta un cambio en un paquete de plantillas, se crea una nueva versión secundaria o principal de su plantilla, si la versión aún no existe. AWS Proton actualmente es compatible con GitHub GitHub Enterprise y BitBucket.

## Inserción de una confirmación a un paquete de plantillas sincronizadas
<a name="ag-commits"></a>

Cuando se inserta una confirmación a una ramificación a la que alguna de las plantillas está realizando un seguimiento, AWS Proton clona el repositorio y determina qué plantillas necesita sincronizar. Escanea los archivos del directorio para encontrar directorios que coincidan con la convención de `{template-name}/{major-version}/`.

Después de AWS Proton determinar qué plantillas y versiones principales están asociadas a tu repositorio y rama, comienza a intentar sincronizar todas esas plantillas en paralelo.

Durante cada sincronización con una plantilla concreta, AWS Proton primero comprueba si el contenido del directorio de plantillas ha cambiado desde la última sincronización correcta. Si el contenido no ha cambiado, AWS Proton omite el registro de un paquete duplicado. Esto garantiza la creación de una nueva versión secundaria de la plantilla si el contenido del paquete de plantillas cambia. Si el contenido del paquete de plantillas ha cambiado, el paquete se registra en él. AWS Proton

Una vez registrado el paquete de plantillas, AWS Proton supervisa el estado del registro hasta que se complete el registro.

Solo se puede realizar una sincronización con una versión secundaria y una versión principal de una plantilla determinada a la vez. Todas las confirmaciones que se hayan insertado mientras se estaba realizando una sincronización se agruparán por lotes. Las confirmaciones por lotes se sincronizan una vez finalizado el intento de sincronización anterior.

## Sincronización de plantillas de servicio
<a name="syncing-service-templates"></a>

AWS Proton puede sincronizar tanto las plantillas de entorno como las de servicio desde tu repositorio de git. Para sincronizar las plantillas de servicio, añada un archivo adicional con el nombre `.template-registration.yaml` a cada directorio de versiones principales del paquete de plantillas. Este archivo contiene los detalles adicionales AWS Proton necesarios para crear una versión de plantilla de servicio para ti tras una confirmación: *entornos compatibles* y *fuentes de componentes compatibles*.

La ruta completa del archivo es `service-template-name/major-version/.template-registration.yaml`. Para obtener más información, consulte [Sincronización de plantillas de servicio](create-template-sync.md#create-template-sync-service-templates).

## Consideraciones sobre la configuración de sincronización de plantillas
<a name="sync-considerations"></a>

Revise las siguientes consideraciones para utilizar las configuraciones de sincronización de plantillas.
+ Los repositorios no deben tener más de 250 MB.
+ Para configurar la sincronización de plantillas, primero vincule el repositorio a AWS Proton. Para obtener más información, consulte [Creación de un enlace para el repositorio del usuario](ag-create-repo.md).
+ Cuando se crea una nueva versión de la plantilla a partir de una plantilla sincronizada, tendrá el estado de `DRAFT`.
+ Se creará una nueva versión secundaria de una plantilla si se cumple alguno de los siguientes requisitos:
  + El contenido del paquete de plantillas es diferente al de la última versión secundaria de la plantilla sincronizada.
  + Se eliminó la última versión secundaria de la plantilla previamente sincronizada.
+ La sincronización no se puede pausar.
+ Tanto las nuevas versiones secundarias como las principales se sincronizan automáticamente.
+ Las configuraciones de sincronización de plantillas no pueden crear nuevas plantillas de nivel superior.
+ No se puede sincronizar una plantilla desde varios repositorios con una configuración de sincronización de plantillas.
+ No se pueden utilizar etiquetas en lugar de ramificaciones.
+ Al [crear una plantilla de servicio](template-create.md#svc-template-v1), se especifican plantillas de entorno compatibles.
+ Puede crear una plantilla de entorno y agregarla como un entorno compatible para la plantilla de servicio en la misma confirmación.
+ Las sincronizaciones con una sola versión principal de la plantilla se ejecutan de una en una. Durante una sincronización, si se detectan confirmaciones nuevas, se agruparán por lotes y se aplicarán al final de la sincronización activa. Las sincronizaciones con las diferentes versiones principales de la plantilla se realizan en paralelo.
+ Si cambia la ramificación desde la que se sincronizan las plantillas, se completará primero cualquier sincronización en curso desde la ramificación anterior. A continuación, la sincronización comenzará a partir de la nueva ramificación.
+ Si cambia el repositorio desde el que se sincronizan las plantillas, es posible que se produzca un error en las sincronizaciones en curso desde el repositorio anterior o que se ejecuten hasta completarse. Esto dependerá de la etapa de la sincronización en la que se encuentren.

Para obtener más información, consulta la [https://docs.aws.amazon.com/proton/latest/APIReference/Welcome.html](https://docs.aws.amazon.com/proton/latest/APIReference/Welcome.html).

**Topics**
+ [Inserción de una confirmación a un paquete de plantillas sincronizadas](#ag-commits)
+ [Sincronización de plantillas de servicio](#syncing-service-templates)
+ [Consideraciones sobre la configuración de sincronización de plantillas](#sync-considerations)
+ [Creación de una configuración de sincronización de plantillas](create-template-sync.md)
+ [Visualización de los detalles de la configuración de sincronización de plantillas](view-template-sync.md)
+ [Edición de la configuración de sincronización de una plantilla](update-template-sync.md)
+ [Eliminación de una configuración sincronizada de plantillas](delete-template-sync.md)

# Creación de una configuración de sincronización de plantillas
<a name="create-template-sync"></a>

Aprenda a crear una configuración de sincronización de plantillas con AWS Proton.

**Requisitos previos para crear una configuración de sincronización de plantillas:**
+ Haber [vinculado un repositorio](ag-create-repo.md) con AWS Proton.
+ Que un [paquete de plantillas](ag-template-authoring.md#ag-template-bundles) se encuentre en el repositorio del usuario.

**El enlace al repositorio consta de lo siguiente:**
+ Una CodeConnections conexión que da AWS Proton permiso para acceder a tu repositorio y suscribirte a sus notificaciones.
+ Un [rol vinculado a un servicio](using-service-linked-roles.md). Al vincular el repositorio, el rol vinculado al servicio se creará para el usuario.

Antes de crear su primera configuración de sincronización de plantillas, envíe un paquete de plantillas al repositorio, tal y como se muestra en el siguiente diseño de directorios.

```
 /templates/                                                 # subdirectory (optional)
 /templates/my-env-template/                                 # template name
 /templates/my-env-template/v1/                              # template version
 /templates/my-env-template/v1/infrastructure/               # template bundle
 /templates/my-env-template/v1/schema/
```

Tras crear la primera configuración de sincronización de plantillas, las nuevas versiones de las plantillas se crean automáticamente al insertar una confirmación que agrega un paquete de plantillas actualizadas a una versión nueva (por ejemplo, en `/my-env-template/v2/`).

```
 /templates/                                                 # subdirectory (optional)
 /templates/my-env-template/                                 # template name
 /templates/my-env-template/v1/                              # template version
 /templates/my-env-template/v1/infrastructure/               # template bundle
 /templates/my-env-template/v1/schema/
 /templates/my-env-template/v2/
 /templates/my-env-template/v2/infrastructure/
 /templates/my-env-template/v2/schema/
```

Puedes incluir nuevas versiones de paquetes de plantillas para una o más plantillas configuradas para la sincronización en una sola confirmación. AWS Proton crea una nueva versión de plantilla para cada nueva versión del paquete de plantillas que se incluyó en la confirmación.

Después de crear la configuración de sincronización de plantillas, aún puede crear nuevas versiones de la plantilla manualmente en la consola o con ella AWS CLI cargando paquetes de plantillas desde un bucket de S3. La sincronización de plantillas solo funciona en una dirección: desde tu repositorio hasta. AWS Proton Las versiones de plantillas creadas manualmente *no* se sincronizan.

Después de configurar una configuración de sincronización de plantillas, AWS Proton escucha los cambios en tu repositorio. Cada vez que se realiza un cambio, se busca cualquier directorio que tenga el mismo nombre que la plantilla. A continuación, busca dentro de ese directorio cualquier directorio que parezca una versión principal. AWS Proton registra el paquete de plantillas en la versión principal de la plantilla correspondiente. Las nuevas versiones están siempre en el estado `DRAFT`. Puede [publicar las nuevas versiones](template-create.md) con la consola o AWS CLI.

Por ejemplo, supongamos que tiene una plantilla llamada `my-env-template` configurada para sincronizarse desde `my-repo/templates` en una ramificación `main` con el siguiente diseño.

```
 /code
 /code/service.go
 README.md
 /templates/
 /templates/my-env-template/
 /templates/my-env-template/v1/
 /templates/my-env-template/v1/infrastructure/
 /templates/my-env-template/v1/schema/
 /templates/my-env-template/v2/
 /templates/my-env-template/v2/infrastructure/
 /templates/my-env-template/v2/schema/
```

AWS Proton sincroniza el contenido de `/templates/my-env-template/v1/` to `my-env-template:1` y el contenido de `/templates/my-env-template/v2/` to`my-env-template:2`. Si aún no existen, se crearán estas versiones principales.

AWS Proton encontró el primer directorio que coincide con el nombre de la plantilla. Puede limitar las AWS Proton búsquedas de directorios especificando una configuración de sincronización `subdirectoryPath` al crear o editar una plantilla. Por ejemplo, puede especificar `/production-templates/` para `subdirectoryPath`.

Puede crear una configuración de sincronización de plantillas mediante la consola o la CLI.

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

**Cree una plantilla y una configuración de sincronización de plantillas mediante la consola.**

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), elija **Plantillas de entorno**.

1. Seleccione **Crear plantilla de entorno**.

1. En la página **Crear plantilla de entorno**, en la sección **Opciones de plantilla**, seleccione **Crear una plantilla para aprovisionar nuevos entornos**.

1. En la sección **Origen del paquete de plantillas**, seleccione **Sincronizar plantillas de Git**.

1. Consulte la sección **Repositorio de código fuente**:

   1. En **Repositorio**, seleccione el repositorio vinculado que contenga el paquete de plantillas.

   1. En **Ramificación**, seleccione una ramificación del repositorio desde la que realizar la sincronización.

   1. (Opcional) En **Directorio de paquetes de plantillas**, escriba el nombre de un directorio para limitar la búsqueda del paquete de plantillas.

1. En la sección **Detalles de la plantilla**.

   1. Introduzca un **Nombre de plantilla**.

   1. (Opcional) Introduzca un **Nombre de visualización de la plantilla**.

   1. (Opcional) Introduzca una **Descripción de la plantilla** para la plantilla de entorno.

1. (Opcional) Marque la casilla **Personalización de la configuración de cifrado (avanzada)** en la sección **Configuración de cifrado** para proporcionar su propia clave de cifrado.

1. (Opcional) En la sección **Etiquetas**, seleccione **Agregar etiqueta** e introduzca una clave y un valor para crear una etiqueta administrada por el cliente.

1. Seleccione **Crear plantilla de entorno**.

   Ahora aparecerá una nueva página que muestra el estado y los detalles de su nueva plantilla de entorno. Estos detalles incluyen una lista de etiquetas AWS administradas y administradas por el cliente. AWS Proton genera automáticamente etiquetas AWS administradas cuando crea AWS Proton recursos. Para obtener más información, consulte [AWS Proton recursos y etiquetado](resources.md).

1. En la página de detalles de la plantilla, seleccione la pestaña **Sincronizar** para ver los datos detallados de la configuración de sincronización de plantillas.

1. Seleccione la pestaña **Versiones de la plantilla** para ver las versiones de las plantillas con detalles de estado.

1. El estado de una nueva plantilla de entorno comienza en el estado **Borrador**. Usted y las personas que gocen de permisos `proton:CreateEnvironment` podrán verla y acceder a ella. Siga el siguiente paso para poner la plantilla a disposición de otras personas.

1. En la sección **Versiones de la plantilla**, seleccione el botón de radio situado a la izquierda de la versión secundaria de la plantilla que acaba de crear (1.0). Como alternativa, puede seleccionar **Publicar** en la alerta de información y omitir el siguiente paso.

1. En la sección **Versiones de la plantilla**, seleccione **Publicar**.

1. El estado de la plantilla cambiará a **Publicado**. Es la versión más reciente y **recomendada** de la plantilla.

1. En el panel de navegación, seleccione **Plantillas de entorno** para ver una lista de las plantillas de entorno y sus detalles.

El procedimiento para crear una plantilla de servicio y la configuración de sincronización de plantillas es similar.

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

**Cree una plantilla y una configuración de sincronización de plantillas mediante la AWS CLI.**

1. 

**Cree una plantilla. En este ejemplo, se crea una plantilla de entorno.**

   Ejecute el comando siguiente.

   ```
   $ aws proton create-environment-template \
       --name "env-template"
   ```

   La respuesta será como la que se muestra a continuación.

   ```
   {
       "environmentTemplate": {
           "arn": "arn:aws:proton:us-east-1:123456789012:environment-template/env-template",
           "createdAt": "2021-11-07T23:32:43.045000+00:00",
           "displayName": "env-template",
           "lastModifiedAt": "2021-11-07T23:32:43.045000+00:00",
           "name": "env-template",
           "status": "DRAFT",
           "templateName": "env-template"
       }
   }
   ```

1. 

**Cree la configuración de sincronización de su plantilla AWS CLI proporcionando lo siguiente:**
   + La plantilla con la que desee sincronizar. Una vez que haya creado la configuración de sincronización de la plantilla, podrá seguir creando nuevas versiones a partir de ella manualmente en la consola o con la AWS CLI.
   + El nombre de la plantilla.
   + El tipo de plantilla.
   + El repositorio vinculado desde el que desee sincronizar.
   + El proveedor del repositorio vinculado.
   + La ramificación en la que se encuentra el paquete de plantillas.
   + (Opcional) La ruta al directorio que contenga el paquete de plantillas. De forma predeterminada, AWS Proton busca el primer directorio que coincida con el nombre de la plantilla.

   Ejecute el comando siguiente.

   ```
   $ aws proton create-template-sync-config \
       --template-name "env-template" \
       --template-type "ENVIRONMENT" \
       --repository-name "myrepos/templates" \
       --repository-provider "GITHUB" \
       --branch "main" \
       --subdirectory "env-template/"
   ```

   La respuesta será como la que se muestra a continuación.

   ```
   {
       "templateSyncConfigDetails": {
           "branch": "main",
           "repositoryName": "myrepos/templates",
           "repositoryProvider": "GITHUB",
           "subdirectory": "templates",
           "templateName": "env-template",
           "templateType": "ENVIRONMENT"
       }
   }
   ```

1. **Para publicar la versión de la plantilla, consulte [Registro y publicación de plantillas](template-create.md).**

------

## Sincronización de plantillas de servicio
<a name="create-template-sync-service-templates"></a>

En los siguientes ejemplos se muestra cómo se pueden sincronizar las plantillas de entorno. Las plantillas de servicio son similares. Para sincronizar las plantillas de servicio, añada un archivo adicional con el nombre de `.template-registration.yaml` a cada directorio de versiones principales del paquete de plantillas. Este archivo contiene los detalles adicionales que se AWS Proton necesitan cuando se crea una versión de la plantilla de servicio para usted tras una confirmación. Cuando se crea de forma explícita una versión de plantilla de servicio mediante la AWS Proton consola o la API, se proporcionan estos detalles como entradas y este archivo reemplaza estas entradas para la sincronización de la plantilla.

```
./templates/                                                 # subdirectory (optional)
 /templates/my-svc-template/                                 # service template name
 /templates/my-svc-template/v1/                              # service template version
 /templates/my-svc-template/v1/.template-registration.yaml   # service template version properties
 /templates/my-svc-template/v1/instance_infrastructure/      # template bundle
 /templates/my-svc-template/v1/schema/
```

El archivo `.template-registration.yaml` contiene los siguientes detalles:
+ **Entornos compatibles** [obligatorio]: los entornos basados en estas plantillas de entorno y en las versiones principales son compatibles con los servicios basados en esta versión de la plantilla de servicio.
+ **Orígenes de componentes compatibles** [opcional]: los componentes que utilizan estos orígenes son compatibles con los servicios en función de esta versión de plantilla de servicio. Si no se especifica, los componentes no se pueden conectar a estos servicios. Para obtener más información sobre los componentes, consulte [AWS Proton componentes](ag-components.md).

La sintaxis YAML del archivo es la siguiente:

```
compatible_environments:
  - env-templ-name:major-version
  - ...
supported_component_sources:
  - DIRECTLY_DEFINED
```

Especifique una o más combinaciones de plantillas de entorno o de versiones principales. Especificar `supported_component_sources` es opcional y el único valor admitido es `DIRECTLY_DEFINED`.

**Example .template-registration.yaml**  
En este ejemplo, la versión de la plantilla de servicio es compatible con las versiones principales 1 y 2 de la plantilla de entorno `my-env-template`. También es compatible con las versiones principales 1 y 3 de la plantilla de entorno `another-env-template`. El archivo no especifica `supported_component_sources`, por lo que los componentes no se pueden conectar a los servicios basados en esta versión de la plantilla de servicio.  

```
compatible_environments:
  - my-env-template:1
  - my-env-template:2
  - another-env-template:1
  - another-env-template:3
```

**nota**  
Anteriormente, AWS Proton se definió un archivo diferente para especificar los entornos compatibles. `.compatible-envs` AWS Proton sigue siendo compatible con ese archivo y su formato por motivos de compatibilidad con versiones anteriores. No recomendamos seguir utilizándolo, ya que no es extensible y no admite características más nuevas como los componentes.

# Visualización de los detalles de la configuración de sincronización de plantillas
<a name="view-template-sync"></a>

Vea los datos detallados de la configuración de sincronización de plantillas mediante la consola o la CLI.

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

**Utilice la consola para ver detalles sobre la configuración sincronizada de plantillas.**

1. En el panel de navegación, elija **Plantillas (de entorno o de servicio)**.

1. Para ver los datos detallados, elija el nombre de la plantilla para la que creó una configuración de sincronización de plantillas.

1. En la página de detalles de la plantilla, seleccione la pestaña **Sincronización** para ver los datos detallados de la configuración de sincronización de plantillas.

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

**Utilice AWS CLI para ver una plantilla sincronizada.**

Ejecute el comando siguiente.

```
$ aws proton get-template-sync-config \
    --template-name "svc-template" \
    --template-type "SERVICE"
```

La respuesta será como la que se muestra a continuación.

```
{
    "templateSyncConfigDetails": {
        "branch": "main",
        "repositoryProvider": "GITHUB",
        "repositoryName": "myrepos/myrepo",
        "subdirectory": "svc-template",
        "templateName": "svc-template",
        "templateType": "SERVICE"
    }
}
```

**Utilice AWS CLI para obtener el estado de sincronización de la plantilla.**

Para `template-version`, introduzca la versión principal de la plantilla.

Ejecute el comando siguiente.

```
$ aws proton get-template-sync-status \
    --template-name "env-template" \
    --template-type "ENVIRONMENT" \
    --template-version "1"
```

------

# Edición de la configuración de sincronización de una plantilla
<a name="update-template-sync"></a>

Puede editar cualquiera de los parámetros de configuración de sincronización de plantillas, excepto `template-name` y `template-type`.

Obtenga información sobre cómo editar la configuración sincronizada de plantillas mediante la consola o la CLI.

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

Edite una ramificación de configuración de sincronización de plantillas mediante la consola.

**En la lista de plantillas.**

1. En la [consola de AWS Proton](https://console.aws.amazon.com//proton/), elija **Plantillas (de entorno o de servicio)**.

1. En la lista de plantillas, elija el nombre de la plantilla con la configuración sincronizada de plantillas que desee editar.

1. En la página de detalles de la plantilla, seleccione la pestaña **Sincronización de plantillas**.

1. En la sección **Detalles de la sincronización de plantillas**, elija **Editar**.

1. En la página **Editar**, en la sección **Repositorio de código fuente**, en **Ramificación**, seleccione una ramificación y, a continuación, seleccione **Guardar configuración**.

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

**El siguiente ejemplo de comando y respuesta muestra cómo se puede editar una `branch` de configuración de sincronización de plantillas mediante la CLI.**

Ejecute el comando siguiente.

```
$ aws proton update-template-sync-config \
    --template-name "env-template" \
    --template-type "ENVIRONMENT" \
    --repository-provider "GITHUB" \
    --repository-name "myrepos/templates" \
    --branch "fargate" \
    --subdirectory "env-template"
```

La respuesta será como la que se muestra a continuación.

```
{
    "templateSyncConfigDetails": {
        "branch": "fargate",
        "repositoryProvider": "GITHUB",
        "repositoryName": "myrepos/myrepo",
        "subdirectory": "templates",
        "templateName": "env-template",
        "templateType": "ENVIRONMENT"
    }
}
```

También puede utilizarla AWS CLI para actualizar las plantillas de servicios sincronizadas.

------

# Eliminación de una configuración sincronizada de plantillas
<a name="delete-template-sync"></a>

Elimine una configuración sincronizada de plantillas mediante la consola o la CLI.

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

**Elimine una configuración sincronizada de plantillas mediante la consola.**

1. En la página de detalles de la plantilla, seleccione la pestaña **Sincronizar**.

1. En la sección de **Detalles de sincronización**, seleccione **Desconectar**.

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

**Los siguientes comandos y respuestas de ejemplo muestran cómo utilizarlos AWS CLI para eliminar las configuraciones de plantillas sincronizadas.**

Ejecute el comando siguiente.

```
$ aws proton delete-template-sync-config \
    --template-name "env-template" \
    --template-type "ENVIRONMENT"
```

La respuesta será como la que se muestra a continuación.

```
{
    "templateSyncConfig": {
        "templateName": "env-template",
        "templateType": "ENVIRONMENT"
    }
}
```

------

# Configuraciones de sincronización de servicios
<a name="ag-service-sync-configs"></a>

Con la sincronización de servicios, puedes configurar e implementar tus AWS Proton servicios mediante Git. Puedes usar la sincronización de servicios para gestionar las implementaciones y actualizaciones iniciales de tu AWS Proton servicio con una configuración definida en un repositorio de Git. A través de Git, puede utilizar características como el seguimiento de versiones y las solicitudes de extracción para configurar, administrar e implementar los servicios. Service Sync combina AWS Proton Git para ayudarlo a aprovisionar una infraestructura estandarizada que se define y administra mediante AWS Proton plantillas. Además, administra las definiciones de servicios en el repositorio de Git del usuario y reduce la necesidad de tener que cambiar de herramienta. En comparación con el uso exclusivo de Git, la estandarización de las plantillas y la implementación le AWS Proton ayudan a dedicar menos tiempo a administrar su infraestructura. AWS Proton también proporciona una mayor transparencia y capacidad de auditoría tanto para los desarrolladores como para los equipos de plataformas.

## AWS Proton Archivo OPS
<a name="service-sync-ops"></a>

El `proton-ops` archivo define dónde se AWS Proton encuentra el archivo de especificaciones que se utiliza para actualizar la instancia de servicio. También define en qué orden actualizar las instancias de servicio y cuándo promover los cambios de una instancia a otra.

El archivo `proton-ops` permite sincronizar una instancia de servicio mediante el archivo de especificaciones, o varios archivos de especificaciones, que se encuentran en el repositorio vinculado. Para ello, defina un bloque de sincronización en el archivo de `proton-ops`, como en el siguiente ejemplo.

**Ejemplo ./configuration/proton-ops.yaml:**

```
sync:
  services:
      frontend-svc:
          alpha:
              branch: dev
              spec: ./frontend-svc/test/frontend-spec.yaml
          beta:
              branch: dev
              spec: ./frontend-svc/test/frontend-spec.yaml
          gamma:
              branch: pre-prod
              spec: ./frontend-svc/pre-prod/frontend-spec.yaml
          prod-one:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
          prod-two:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
          prod-three:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
```

En el ejemplo anterior, `frontend-svc` es el nombre del servicio y `alpha`, `beta`, `gamma`, `prod-one`, `prod-two` y `prod-three` son las instancias.

El archivo `spec` puede ser todas las instancias o un subconjunto de las instancias definidas en el archivo `proton-ops`. Sin embargo, como mínimo, debe tener la instancia definida en la ramificación y la especificación desde la que se sincronice. Si las instancias no están definidas en el archivo `proton-ops`, con la ramificación específica y la ubicación del archivo `spec`, el servicio de sincronización no creará ni actualizará esas instancias.

El siguiente ejemplo muestra el posible aspecto de los archivos `spec`. Recuerde que el archivo `proton-ops` se sincroniza desde estos archivos `spec`.

**Ejemplo`./frontend-svc/test/frontend-spec.yaml`:**

```
proton: "ServiceSpec"
instances:
- name: "alpha"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "beta"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

**Ejemplo`./frontend-svc/pre-prod/frontend-spec.yaml`:**

```
proton: "ServiceSpec"
instances:
- name: "gamma"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

**Ejemplo`./frontend-svc/prod/frontend-spec-second.yaml`:**

```
proton: "ServiceSpec"
instances:
- name: "prod-one"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "prod-two"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "prod-three"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

Si una instancia no se sincroniza y hay un problema persistente al intentar sincronizarla, llamar a la API [https://docs.aws.amazon.com//proton/latest/APIReference/API_GetServiceInstanceSyncStatus.html](https://docs.aws.amazon.com//proton/latest/APIReference/API_GetServiceInstanceSyncStatus.html) puede ayudar a resolver el problema.

**nota**  
Los clientes que utilizan la sincronización de servicios siguen estando restringidos por AWS Proton ciertos límites.

**Bloqueadores**

Al sincronizar tu AWS Proton servicio mediante la sincronización de servicios, puedes actualizar las especificaciones del servicio y crear y actualizar instancias de servicio desde tu repositorio de Git. Sin embargo, puede haber ocasiones en las que necesites actualizar un servicio o una instancia manualmente a través de la Consola de administración de AWS tecla o. AWS CLI

AWS Proton ayuda a evitar sobrescribir los cambios manuales que realice a través del Consola de administración de AWS o AWS CLI, por ejemplo, actualizar una instancia de servicio o eliminar una instancia de servicio. Para conseguirlo, AWS Proton crea automáticamente un bloqueador de sincronización de servicios al deshabilitar la sincronización de servicios cuando detecta un cambio manual.

Para obtener todos los bloqueadores asociados a un servicio, se debe hacer lo siguiente para cada `serviceInstance` asociada al servicio:
+ Llamar a la API `getServiceSyncBlockerSummary` solo con el `serviceName`.
+ Llamar a la API `getServiceSyncBlockerSummary` con el `serviceName` y el `serviceInstanceName`.

Esto devuelve una lista de los bloqueadores más recientes y el estado asociado a ellos. Si algún bloqueador está marcado como **ACTIVO**, debe resolverlo mediante una llamada a la API `UpdateServiceSyncBlocker` con el `blockerId` y `resolvedReason` para cada uno de ellos.

Si actualiza o crea una instancia de servicio manualmente, AWS Proton crea un bloqueador de sincronización de servicios en la instancia de servicio. AWS Proton continúa sincronizando todas las demás instancias de servicio, pero deshabilita la sincronización de esta instancia de servicio hasta que se resuelva el bloqueo. Si eliminas una instancia de servicio de un servicio, AWS Proton crea un bloqueador de sincronización de servicios en el servicio. Esto AWS Proton impide que se sincronice ninguna de las instancias de servicio hasta que se haya resuelto el bloqueo.

Una vez que tenga todos los bloqueadores activos, deberá resolverlos mediante una llamada a la API `UpdateServiceSyncBlocker` con el `blockerId` y `resolvedReason` para cada uno de los bloqueadores activos.

Con el Consola de administración de AWS, puede determinar si la sincronización de un servicio está deshabilitada navegando hasta la pestaña **Service Sync AWS Proton y seleccionándola**. Si el servicio o las instancias de servicio están bloqueados, aparecerá el botón **Habilitar**. Para habilitar la sincronización de servicios, seleccione **Habilitar**.

**Topics**
+ [AWS Proton Archivo OPS](#service-sync-ops)
+ [Creación de una configuración de sincronización de servicios](create-service-sync.md)
+ [Visualización de los detalles de configuración de una sincronización de servicios](get-service-sync.md)
+ [Edición de una configuración de sincronización de servicios](update-service-sync.md)
+ [Eliminación de una configuración de sincronización de servicios](delete-service-sync.md)

# Creación de una configuración de sincronización de servicios
<a name="create-service-sync"></a>



Puede crear una configuración de sincronización de servicios mediante la consola o AWS CLI.

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

1. En la página **Elegir una plantilla de servicio**, seleccione una plantilla y elija **Configurar**.

1. En la página **Configurar servicio**, en la sección **Detalles del servicio**, introduzca un nuevo **Nombre del servicio**.

1. (Opcional) Escriba una descripción para el servicio.

1. En la sección **Repositorio de código fuente de la aplicación**, selecciona **Elegir un repositorio de Git vinculado** para seleccionar un repositorio al que ya te hayas vinculado AWS Proton. Si aún no tiene un repositorio vinculado, seleccione **Vincular otro repositorio de Git** y siga las instrucciones en [Crear un enlace al repositorio](https://docs.aws.amazon.com//proton/latest/userguide/ag-create-repo.html).

1. En **Repositorio**, elija de la lista el nombre del repositorio que contenga el código fuente.

1. En **Ramificación**, elija de la lista el nombre de la ramificación del repositorio para el código fuente.

1. (Opcional) En la sección **Etiquetas**, seleccione **Agregar etiqueta** e introduzca una clave y un valor para crear una etiqueta administrada por el cliente.

1. Elija **Siguiente**.

1. En la página **Configurar instancias de servicio**, en la sección **Fuente de definición del servicio**, seleccione **Sincronice el servicio desde Git**.

1. En la sección **Archivos de definición de servicio**, si desea que AWS Proton cree el archivo `proton-ops`, seleccione **Quiero que AWS Proton cree los archivos**. Con esta opción, AWS Proton crea el `proton-ops` archivo `spec` and en las ubicaciones que especifiques. Seleccione **Voy a proporcionar mis propios archivos** para crear su propio archivo OPS.

1. En la sección **Repositorio de definición de servicio**, **elige Elegir un repositorio de Git vinculado** para seleccionar un repositorio al que ya te hayas vinculado AWS Proton.

1. En **Nombre del repositorio**, elija de la lista el nombre del repositorio del código fuente.

1. Para la **rama de `proton-ops` archivos**, elige el nombre de la rama de la lista en la que AWS Proton colocarás el OPS y el archivo de especificaciones.

1. En la sección **Instancias de servicio**, cada campo se rellena automáticamente en función de los valores del archivo `proton-ops`.

1. Seleccione **Siguiente** y revise las entradas.

1. Seleccione **Crear**.

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

**Cree una configuración de sincronización de servicios mediante el AWS CLI**
+ Ejecute el siguiente comando.

  ```
  $ aws proton create-service-sync-config \
      --resource "service-arn" \
      --repository-provider "GITHUB" \
      --repository "example/proton-sync-service" \
      --ops-file-branch "main" \
      --proton-ops-file "./configuration/custom-proton-ops.yaml" (optional)
  ```

  La respuesta será como la que se muestra a continuación.

  ```
  {
      "serviceSyncConfig": {
          "branch": "main",
          "filePath": "./configuration/custom-proton-ops.yaml",
          "repositoryName": "example/proton-sync-service",
          "repositoryProvider": "GITHUB",
          "serviceName": "service name"
      }
  }
  ```

------

# Visualización de los detalles de configuración de una sincronización de servicios
<a name="get-service-sync"></a>

Puede ver los datos de los detalles de configuración de una sincronización de servicios mediante la consola o la AWS CLI.

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

**Uso de la consola para ver los detalles de configuración de una sincronización de servicios**

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

1. Para ver los datos detallados, elija el nombre de un servicio para el que haya creado una configuración de sincronización de servicios.

1. En la página de detalles del servicio, seleccione la pestaña **Sincronización de servicios** para ver los datos detallados de la configuración de la sincronización de servicios.

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

**Utilice el AWS CLI para obtener un servicio sincronizado.**

Ejecute el siguiente comando.

```
$ aws proton get-service-sync-config \
    --service-name "service name"
```

La respuesta será como la que se muestra a continuación.

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

**Usa el AWS CLI para obtener el estado de sincronización del servicio.**

Ejecute el siguiente comando.

```
$ aws proton get-service-sync-status \
    --service-name "service name"
```

------

# Edición de una configuración de sincronización de servicios
<a name="update-service-sync"></a>

Puede editar la configuración de sincronización de un servicio mediante la consola o AWS CLI.



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

Edite una configuración de sincronización de servicios mediante la consola.

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

1. Para ver los datos detallados, elija el nombre de un servicio para el que haya creado una configuración de sincronización de servicios.

1. En la página de detalles del servicio, seleccione la pestaña **Sincronización de servicios**.

1. En la sección **Usuarios**, seleccione **Editar**.

1. En la página **Editar**, actualice la información que desee editar y, a continuación, seleccione **Guardar**.

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

**En el siguiente comando y respuesta de ejemplo se muestra cómo se puede editar la configuración de sincronización de servicios mediante la AWS CLI.**

Ejecute el siguiente comando.

```
$ aws proton update-service-sync-config \
    --service-name "service name" \
    --repository-provider "GITHUB" \
    --repository "example/proton-sync-service" \
    --ops-file-branch "main" \
    --ops-file "./configuration/custom-proton-ops.yaml"
```

La respuesta será como la que se muestra a continuación.

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

------

# Eliminación de una configuración de sincronización de servicios
<a name="delete-service-sync"></a>

Puede eliminar una configuración de sincronización de servicios mediante la consola o AWS CLI.

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

**Eliminación de una configuración de sincronización de servicios mediante la consola**

1. En la página de detalles del servicio, seleccione la pestaña **Sincronización de servicios**.

1. En la sección de **Detalles de la sincronización de servicios**, seleccione **Desconectar** para desconectar el repositorio. Una vez desconectado el repositorio, dejaremos de sincronizar el servicio desde ese repositorio.

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

**Los siguientes comandos y respuestas de ejemplo muestran cómo utilizarlos AWS CLI para eliminar las configuraciones sincronizadas del servicio.**

Ejecute el siguiente comando.

```
$ aws proton delete-service-sync-config \
    --service-name "service name"
```

La respuesta será como la que se muestra a continuación.

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

**nota**  
La sincronización de servicios no elimina las instancias de servicio. Solo elimina configuración.

------