Création d'une configuration de synchronisation de modèles - 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.

Création d'une configuration de synchronisation de modèles

Découvrez comment créer un modèle de configuration de synchronisation avec AWS Proton.

Créez un modèle de configuration prérequis pour la synchronisation :
Le lien vers le référentiel se compose des éléments suivants :
  • Une CodeConnections connexion qui donne AWS Proton l'autorisation d'accéder à votre dépôt et de vous abonner à ses notifications.

  • Un rôle lié à un service. Lorsque vous liez votre référentiel, le rôle lié au service est créé pour vous.

Avant de créer votre première configuration de synchronisation de modèles, transférez un ensemble de modèles vers votre référentiel, comme indiqué dans le schéma de répertoire suivant.

/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/

Une fois que vous avez créé votre première configuration de synchronisation de modèles, de nouvelles versions de modèles sont automatiquement créées lorsque vous envoyez un commit qui ajoute un ensemble de modèles mis à jour dans une nouvelle version (par exemple, sous/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/

Vous pouvez inclure de nouvelles versions de bundle de modèles pour un ou plusieurs modèles configurés pour la synchronisation dans un seul commit. AWS Proton crée une nouvelle version de modèle pour chaque nouvelle version de bundle de modèles incluse dans le commit.

Après avoir créé la configuration de synchronisation des modèles, vous pouvez toujours créer manuellement de nouvelles versions du modèle dans la console ou en AWS CLI téléchargeant des ensembles de modèles depuis un compartiment S3. La synchronisation des modèles ne fonctionne que dans un seul sens : de votre dépôt vers AWS Proton. Les versions de modèles créées manuellement ne sont pas synchronisées.

Après avoir configuré une configuration de synchronisation des modèles, AWS Proton écoute les modifications apportées à votre référentiel. Chaque fois qu'une modification est poussée, elle recherche tout répertoire portant le même nom que votre modèle. Il recherche ensuite dans ce répertoire tous les répertoires qui ressemblent à des versions majeures. AWS Proton enregistre le bundle de modèles dans la version principale du modèle correspondant. Les nouvelles versions sont toujours en bon DRAFT état. Vous pouvez publier les nouvelles versions avec la console ou AWS CLI.

Supposons, par exemple, que vous ayez un modèle appelé my-env-template configuré pour être synchronisé à partir d'my-repo/templatesune branche main avec la mise en page suivante.

/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 synchronise le contenu de /templates/my-env-template/v1/ to my-env-template:1 et le contenu de /templates/my-env-template/v2/ tomy-env-template:2. S'ils n'existent pas déjà, il crée ces versions majeures.

AWS Proton a trouvé le premier répertoire correspondant au nom du modèle. Vous pouvez limiter les AWS Proton recherches dans les annuaires en spécifiant une configuration de synchronisation de modèles subdirectoryPath lorsque vous créez ou modifiez un modèle. Par exemple, vous pouvez spécifier /production-templates/ poursubdirectoryPath.

Vous pouvez créer un modèle de configuration de synchronisation à l'aide de la console ou de la CLI.

AWS Management Console
Créez un modèle et une configuration de synchronisation de modèles à l'aide de la console.
  1. Dans la AWS Proton console, choisissez Modèles d'environnement.

  2. Choisissez Créer un modèle d'environnement.

  3. Sur la page Créer un modèle d'environnement, dans la section Options du modèle, choisissez Créer un modèle pour le provisionnement de nouveaux environnements.

  4. Dans la section Source du bundle de modèles, choisissez Synchroniser les modèles depuis Git.

  5. Dans la section Référentiel du code source :

    1. Pour Repository, sélectionnez le référentiel lié qui contient votre bundle de modèles.

    2. Pour Branch, sélectionnez une branche du référentiel à partir de laquelle effectuer la synchronisation.

    3. (Facultatif) Dans le répertoire des ensembles de modèles, entrez le nom d'un répertoire pour affiner la recherche de votre ensemble de modèles.

  6. Dans la section Détails du modèle.

    1. Saisissez un Template name (Nom de modèle).

    2. (Facultatif) Entrez un nom d'affichage du modèle.

    3. (Facultatif) Entrez une description du modèle pour le modèle d'environnement.

  7. (Facultatif) Cochez la case Personnaliser les paramètres de chiffrement (avancés) dans la section Paramètres de chiffrement pour fournir votre propre clé de chiffrement.

  8. (Facultatif) Dans la section Tags, choisissez Ajouter un nouveau tag et entrez une clé et une valeur pour créer un tag géré par le client.

  9. Choisissez Créer un modèle d'environnement.

    Vous êtes maintenant sur une nouvelle page qui affiche le statut et les détails de votre nouveau modèle d'environnement. Ces informations incluent une liste de balises AWS gérées et gérées par le client. AWS Proton génère automatiquement des balises AWS gérées pour vous lorsque vous créez des AWS Proton ressources. Pour plus d’informations, consultez AWS Protonressources et balises.

  10. Sur la page détaillée du modèle, choisissez l'onglet Synchronisation pour afficher les données détaillées de configuration de synchronisation du modèle.

  11. Cliquez sur l'onglet Versions du modèle pour afficher les versions du modèle avec les détails du statut.

  12. Le statut d'un nouveau modèle d'environnement commence à l'état Brouillon. Vous et les autres personnes proton:CreateEnvironment autorisées pouvez le consulter et y accéder. Suivez l'étape suivante pour mettre le modèle à la disposition des autres utilisateurs.

  13. Dans la section Versions du modèle, cliquez sur le bouton radio situé à gauche de la version mineure du modèle que vous venez de créer (1.0). Vous pouvez également choisir Publier dans l'alerte d'information et ignorer l'étape suivante.

  14. Dans la section Versions du modèle, choisissez Publier.

  15. Le statut du modèle passe à Publié. Il s'agit de la version la plus récente et recommandée du modèle.

  16. Dans le volet de navigation, sélectionnez Modèles d'environnement pour afficher la liste de vos modèles d'environnement et leurs détails.

La procédure de création d'un modèle de service et d'une configuration de synchronisation de modèles est similaire.

AWS CLI
Créez un modèle et une configuration de synchronisation de modèles à l'aide du AWS CLI.
  1. Créez un modèle. Dans cet exemple, un modèle d'environnement est créé.

    Exécutez la commande suivante.

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

    La réponse est la suivante.

    { "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. Créez la configuration de synchronisation de votre modèle avec AWS CLI en fournissant les éléments suivants :
    • Le modèle avec lequel vous souhaitez effectuer la synchronisation. Après avoir créé la configuration de synchronisation du modèle, vous pouvez toujours créer de nouvelles versions à partir de celui-ci manuellement dans la console ou à l'aide du AWS CLI.

    • Nom du modèle.

    • Type de modèle.

    • Le référentiel lié à partir duquel vous souhaitez effectuer la synchronisation.

    • Le fournisseur du référentiel lié.

    • Branche dans laquelle se trouve le bundle de modèles.

    • (Facultatif) Le chemin d'accès au répertoire contenant votre ensemble de modèles. Par défaut, AWS Proton recherche le premier répertoire correspondant au nom de votre modèle.

    Exécutez la commande suivante.

    $ 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 réponse est la suivante.

    { "templateSyncConfigDetails": { "branch": "main", "repositoryName": "myrepos/templates", "repositoryProvider": "GITHUB", "subdirectory": "templates", "templateName": "env-template", "templateType": "ENVIRONMENT" } }
  3. Pour publier la version de votre modèle, consultezEnregistrer et publier des modèles.

Modèles de service de synchronisation

Les exemples précédents montrent comment synchroniser les modèles d'environnement. Les modèles de service sont similaires. Pour synchroniser les modèles de services, vous ajoutez un fichier supplémentaire nommé .template-registration.yaml dans le répertoire de chaque version majeure de votre ensemble de modèles. Ce fichier contient des informations supplémentaires AWS Proton nécessaires lorsqu'il crée une version de modèle de service pour vous à la suite d'un commit. Lorsque vous créez explicitement une version de modèle de service à l'aide de la AWS Proton console ou de l'API, vous fournissez ces informations en tant qu'entrées, et ce fichier remplace ces entrées pour la synchronisation des modèles.

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

Le .template-registration.yaml fichier contient les informations suivantes :

  • Environnements compatibles [obligatoire] — Les environnements basés sur ces modèles d'environnement et les versions majeures sont compatibles avec les services basés sur cette version de modèle de service.

  • Sources de composants prises en charge [facultatif] — Les composants utilisant ces sources sont compatibles avec les services basés sur cette version de modèle de service. Si ce n'est pas spécifié, les composants ne peuvent pas être attachés à ces services. Pour plus d'informations sur les composants, consultezComposants AWS Proton.

La syntaxe YAML du fichier est la suivante :

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

Spécifiez une ou plusieurs combinaisons de modèles d'environnement et de versions principales. supported_component_sourcesLa spécification est facultative et la seule valeur prise en charge estDIRECTLY_DEFINED.

Exemple .template-registration.yaml

Dans cet exemple, la version du modèle de service est compatible avec les versions principales 1 et 2 du modèle d'my-env-templateenvironnement. Il est également compatible avec les versions principales 1 et 3 du modèle d'another-env-templateenvironnement. Le fichier ne le précise supported_component_sources pas. Les composants ne peuvent donc pas être attachés à des services basés sur cette version de modèle de service.

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

Précédemment, AWS Proton défini un fichier différent.compatible-envs, pour spécifier les environnements compatibles. AWS Proton supporte toujours ce fichier et son format pour des raisons de rétrocompatibilité. Nous ne recommandons plus de l'utiliser, car il n'est pas extensible et ne peut pas prendre en charge de nouvelles fonctionnalités telles que les composants.