Resuma los archivos de plantilla para AWS Proton - 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.

Resuma los archivos de plantilla para AWS Proton

Tras preparar el entorno y la infraestructura de servicios como archivos de código (IaC) y sus respectivos archivos de esquema, debe organizarlos en directorios. También debe crear un archivo YAML de manifiesto. El archivo de manifiesto muestra los archivos IaC de un directorio, el motor de renderizado y el lenguaje de plantillas utilizado para desarrollar el IaC en esta plantilla.

nota

Un archivo de manifiesto también se puede utilizar independientemente de los paquetes de plantillas, como entrada directa a los componentes definidos directamente. En este caso, siempre especifica un único archivo de plantilla de IaC, tanto para Terraform como para Terraform CloudFormation . Para obtener más información sobre los componentes, consulte Componentes de AWS Proton.

El archivo de manifiesto debe seguir el formato y el contenido que se muestran en el siguiente ejemplo.

CloudFormation formato de archivo de manifiesto:

Con CloudFormation, se muestra un único archivo.

infrastructure: templates: - file: "cloudformation.yaml" rendering_engine: jinja template_language: cloudformation

Formato de archivo de manifiesto de Terraform:

Con terraform, puede enumerar explícitamente un solo archivo o usar el comodín * para enumerar cada uno de los archivos de un directorio.

nota

El comodín solo incluye los archivos cuyos nombres terminan en. .tf Los demás archivos se omiten.

infrastructure: templates: - file: "*" rendering_engine: hcl template_language: terraform

CodeBuildformato de archivo de manifiesto de aprovisionamiento basado en:

Con el aprovisionamiento CodeBuild basado, se especifican los comandos de shell de aprovisionamiento y desaprovisionamiento.

nota

Además del manifiesto, el paquete debe incluir todos los archivos de los que dependan los comandos.

El siguiente ejemplo de manifiesto utiliza el aprovisionamiento CodeBuild basado para aprovisionar (implementar) y desaprovisionar (destruir) recursos mediante AWS Cloud Development Kit (AWS CDK) (AWS CDK). El paquete de plantillas también debe incluir el código CDK.

Durante el aprovisionamiento, AWS Proton crea un archivo de entrada con valores para los parámetros de entrada que usted definió en el esquema de la plantilla con el nombre. proton-input.json

infrastructure: templates: - rendering_engine: codebuild settings: image: aws/codebuild/amazonlinux2-x86_64-standard:4.0 runtimes: nodejs: 16 provision: - npm install - npm run build - npm run cdk bootstrap - npm run cdk deploy -- --require-approval never --outputs-file proton-outputs.json - jq 'to_entries | map_values(.value) | add | to_entries | map({key:.key, valueString:.value})' < proton-outputs.json > outputs.json - aws proton notify-resource-deployment-status-change --resource-arn $RESOURCE_ARN --status IN_PROGRESS --outputs file://./outputs.json deprovision: - npm install - npm run build - npm run cdk destroy project_properties: VpcConfig: VpcId: "{{ environment.inputs.codebuild_vpc_id }}" Subnets: "{{ environment.inputs.codebuild_subnets }}" SecurityGroupIds: "{{ environment.inputs.codebuild_security_groups }}"

Tras configurar los directorios y los archivos de manifiesto para su entorno o paquete de plantillas de servicio, comprima los directorios en forma de bola de alquitrán y los cargue en un depósito de Amazon Simple Storage Service (Amazon S3), AWS Proton donde podrá recuperarlos, o en un repositorio Git de sincronización de plantillas.

Cuando crea una versión secundaria de un entorno o plantilla de servicio en el que se ha registrado AWS Proton, proporciona la ruta a su entorno o paquete de plantillas de servicio (tar ball) que se encuentra en su depósito de S3. AWS Proton lo guarda con la nueva versión secundaria de la plantilla. Puede seleccionar la nueva versión secundaria de la plantilla para crear o actualizar entornos o servicios con ella AWS Proton.

Resumen del paquete de plantillas de entorno

Hay dos tipos de paquetes de plantillas de entorno para AWS Proton los que puede crear.

  • Para crear un paquete de plantillas de entorno para una plantilla de entorno estándar, organice el esquema, los archivos de infraestructura como código (IaC) y el archivo de manifiesto en directorios, tal y como se muestra en la siguiente estructura de directorios de paquetes de plantillas de entorno.

  • Para crear un paquete de plantillas de entorno para una plantilla de entorno gestionada por el cliente, proporcione únicamente el archivo y el directorio del esquema. No incluya el directorio ni los archivos de infraestructura. AWS Proton arroja un error si se incluyen el directorio y los archivos de la infraestructura.

Para obtener más información, consulte Registro y publicación de plantillas.

CloudFormation estructura de directorios del paquete de plantillas de entorno:

/schema schema.yaml /infrastructure manifest.yaml cloudformation.yaml

Estructura del directorio del paquete de plantillas de entorno Terraform:

/schema schema.yaml /infrastructure manifest.yaml environment.tf

Resumen del paquete de plantillas de servicio

Para crear un paquete de plantillas de servicio, debe organizar el esquema, los archivos de infraestructura como código (IaC) y los archivos de manifiesto en directorios, como se muestra en el ejemplo de estructura de directorios del paquete de plantillas de servicio.

Si no incluye una canalización de servicios en el paquete de plantillas, no incluya el directorio ni los archivos ni el conjunto de la canalización "pipelineProvisioning": "CUSTOMER_MANAGED" al crear la plantilla de servicio que se va a asociar a este paquete de plantillas.

nota

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

Para obtener más información, consulte Registro y publicación de plantillas.

CloudFormation Estructura de directorios del paquete de plantillas de servicio:

/schema schema.yaml /instance_infrastructure manifest.yaml cloudformation.yaml /pipeline_infrastructure manifest.yaml cloudformation.yaml

Estructura de directorios del paquete de plantillas de servicio de Terraform:

/schema schema.yaml /instance_infrastructure manifest.yaml instance.tf /pipeline_infrastructure manifest.yaml pipeline.tf