Résumez les fichiers modèles pour AWS Proton - AWS Proton

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résumez les fichiers modèles pour AWS Proton

Après avoir préparé les fichiers de votre environnement et de votre infrastructure de services sous forme de code (IaC) et leurs fichiers de schéma respectifs, vous devez les organiser dans des répertoires. Vous devez également créer un fichier manifeste YAML. Le fichier manifeste répertorie les fichiers iAc d'un répertoire, le moteur de rendu et le langage de modèle utilisé pour développer l'iAc dans ce modèle.

Note

Un fichier manifeste peut également être utilisé indépendamment des ensembles de modèles, en tant qu'entrée directe vers des composants directement définis. Dans ce cas, il spécifie toujours un seul fichier modèle IaC, à la fois pour Terraform CloudFormation et pour Terraform. Pour plus d'informations sur les composants, consultezComposants AWS Proton.

Le fichier manifeste doit respecter le format et le contenu présentés dans l'exemple suivant.

CloudFormation format de fichier manifeste :

Avec CloudFormation, vous ne listez qu'un seul fichier.

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

Format de fichier manifeste Terraform :

Avec Terraform, vous pouvez répertorier explicitement un seul fichier ou utiliser le caractère générique * pour répertorier chacun des fichiers d'un répertoire.

Note

Le caractère générique inclut uniquement les fichiers dont le nom se termine par.tf. Les autres fichiers sont ignorés.

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

CodeBuildformat de fichier manifeste de provisionnement basé sur :

Avec le provisionnement CodeBuild basé, vous spécifiez les commandes shell de provisionnement et de déprovisionnement.

Note

Outre le manifeste, votre bundle doit inclure tous les fichiers dont dépendent vos commandes.

L'exemple de manifeste suivant utilise le provisionnement CodeBuild basé pour provisionner (déployer) et déprovisionner (détruire) les ressources à l'aide du AWS Cloud Development Kit (AWS CDK) (AWS CDK). Le bundle de modèles doit également inclure le code CDK.

Pendant le provisionnement, AWS Proton crée un fichier d'entrée contenant les valeurs des paramètres d'entrée que vous avez définis dans le schéma du modèle avec le nomproton-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 }}"

Après avoir configuré les répertoires et les fichiers manifestes pour votre environnement ou votre ensemble de modèles de services, vous compressez les répertoires dans une archive tar et vous les téléchargez dans un bucket Amazon Simple Storage Service (Amazon S3) AWS Proton où vous pouvez les récupérer, ou dans un référentiel Git de synchronisation de modèles.

Lorsque vous créez une version mineure d'un modèle d'environnement ou de service auprès duquel vous vous êtes inscrit AWS Proton, vous indiquez le chemin d'accès à votre environnement ou à la base de modèles de services qui se trouve dans votre compartiment S3. AWS Proton l'enregistre avec la nouvelle version mineure du modèle. Vous pouvez sélectionner la nouvelle version mineure du modèle pour créer ou mettre à jour des environnements ou des services AWS Proton.

Résumé du bundle de modèles d'environnement

Il existe deux types d'ensembles de modèles d'environnement pour AWS Proton lesquels vous pouvez créer.

  • Pour créer un ensemble de modèles d'environnement pour un modèle d'environnement standard, organisez le schéma, les fichiers d'infrastructure sous forme de code (IaC) et le fichier manifeste dans des répertoires, comme indiqué dans la structure de répertoires du bundle de modèles d'environnement suivante.

  • Pour créer un ensemble de modèles d'environnement pour un modèle d'environnement géré par le client, fournissez uniquement le fichier et le répertoire du schéma. N'incluez pas le répertoire et les fichiers de l'infrastructure. AWS Proton renvoie une erreur si le répertoire et les fichiers de l'infrastructure sont inclus.

Pour de plus amples informations, veuillez consulter Enregistrer et publier des modèles.

CloudFormation structure du répertoire du bundle de modèles d'environnement :

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

Structure du répertoire du bundle de modèles d'environnement Terraform :

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

Résumé de l'offre groupée de modèles de services

Pour créer un ensemble de modèles de services, vous devez organiser le schéma, les fichiers d'infrastructure en tant que code (IaC) et les fichiers manifestes dans des répertoires, comme indiqué dans l'exemple de structure de répertoire du bundle de modèles de services.

Si vous n'incluez pas de pipeline de services dans votre ensemble de modèles, n'incluez pas le répertoire et les fichiers du pipeline et ne définissez pas le modèle de service à associer à ce bundle de modèles "pipelineProvisioning": "CUSTOMER_MANAGED" lorsque vous créez le modèle de service.

Note

Vous ne pouvez pas le modifier une pipelineProvisioning fois le modèle de service créé.

Pour de plus amples informations, veuillez consulter Enregistrer et publier des modèles.

CloudFormation structure du répertoire du bundle de modèles de services :

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

Structure du répertoire du bundle de modèles de services Terraform :

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