Creación de una configuración de sincronización de plantillas - AWS Proton

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

Creación de una configuración de sincronización de plantillas

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:
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. 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 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/ tomy-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.

AWS Management Console
Cree una plantilla y una configuración de sincronización de plantillas mediante la consola.
  1. En la consola de AWS Proton, elija Plantillas de entorno.

  2. Seleccione Crear plantilla de entorno.

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

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

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

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

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

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

  6. En la sección Detalles de la plantilla.

    1. Introduzca un Nombre de plantilla.

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

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

  7. (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.

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

  9. 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 Recursos y etiquetado de AWS Proton.

  10. 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.

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

  12. 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.

  13. 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.

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

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

  16. 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 siguiente comando de la .

    $ 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" } }
  2. 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 siguiente comando de la .

    $ 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" } }
  3. Para publicar la versión de la plantilla, consulte Registro y publicación de plantillas.

Sincronización de plantillas de servicio

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 Componentes de AWS Proton.

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.

ejemplo .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.