

Avis de fin de support : le 7 octobre 2026, AWS le support de AWS Proton. Après le 7 octobre 2026, vous ne pourrez plus accéder à la AWS Proton console ni aux AWS Proton ressources. Votre infrastructure déployée restera intacte. Pour plus d'informations, consultez le Guide [AWS Proton de dépréciation et de migration des services](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

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
<a name="create-template-sync"></a>

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 :**
+ Vous avez [lié un dépôt](ag-create-repo.md) à AWS Proton.
+ Un [ensemble de modèles](ag-template-authoring.md#ag-template-bundles) se trouve dans votre référentiel.

**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](using-service-linked-roles.md). 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](template-create.md) 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/templates`une 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/` to`my-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/` pour`subdirectoryPath`.

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](https://console.aws.amazon.com//proton/), choisissez **Modèles d'environnement**.

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

1. 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.**

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

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

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

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

1. Dans la section **Détails du modèle**.

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

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

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

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

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

1. 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 de plus amples informations, veuillez consulter [AWS Proton ressources et balisage](resources.md).

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

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

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

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

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

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

1. 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"
       }
   }
   ```

1. 

**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"
       }
   }
   ```

1. **Pour publier la version de votre modèle, consultez[Enregistrez et publiez des modèles](template-create.md).**

------

## Modèles de service de synchronisation
<a name="create-template-sync-service-templates"></a>

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, consultez[AWS Proton composants](ag-components.md).

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_sources`La spécification est facultative et la seule valeur prise en charge est`DIRECTLY_DEFINED`.

**Example .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-template`environnement. Il est également compatible avec les versions principales 1 et 3 du modèle d'`another-env-template`environnement. 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.