

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.

# Synchronisation des piles avec le code source stocké dans un référentiel Git avec synchronisation depuis Git
<a name="git-sync"></a>

Avec Git sync, vous pouvez gérer vos CloudFormation piles à l'aide du contrôle de source. Pour ce faire, configurez CloudFormation pour surveiller un dépôt Git. Le référentiel est surveillé pour détecter les modifications apportées à deux fichiers :
+ Un fichier CloudFormation modèle qui définit une pile
+ Un fichier de déploiement de pile contenant les paramètres qui configurent la pile

Avec Git sync, vous pouvez utiliser les pull requests et le suivi des versions pour configurer, déployer et mettre à jour vos CloudFormation stacks à partir d'un emplacement centralisé. Lorsque vous validez des modifications apportées au modèle ou au fichier de déploiement, la pile est CloudFormation automatiquement mise à jour. Si vous utilisez des pull requests, vous CloudFormation pouvez laisser un commentaire sur la pull request expliquant les modifications qui seront apportées à votre stack avant de la mettre à jour. Cependant, vous devez d’abord activer cette caractéristique. 

Git sync fournit une interface de console que vous pouvez utiliser pour créer un lien vers un dépôt, générer un fichier de déploiement de stack, mettre à jour un CloudFormation modèle et envoyer une pull request à votre dépôt. La synchronisation Git fournit également un tableau de bord d’état que vous pouvez utiliser pour surveiller, modifier et dépanner les déploiements actifs de la pile de synchronisation Git. Git Sync est accessible via la [CloudFormation console](https://console.aws.amazon.com/cloudformation/) lorsque vous [créez une pile](cfn-console-create-stack.md). Vous pouvez également accéder à Git Sync à l'aide de CodeConnections. Pour plus d’informations, consultez [Utilisation des configurations de synchronisation pour les référentiels liés](https://docs.aws.amazon.com/dtconsole/latest/userguide/configurations.html) dans le *Guide de l’utilisateur de la console des outils pour développeurs*.

Git Sync prend [GitHub](https://github.com/)en charge les référentiels [GitHub Enterprise [GitLab](https://about.gitlab.com/)](https://github.com/enterprise), [Bitbucket](https://bitbucket.org) et [GitLab autogérés](https://docs.gitlab.com/subscriptions/self_managed/).

**Note**  
La synchronisation Git est disponible dans les régions suivantes : USA Est (Virginie du Nord), USA Est (Ohio), USA Ouest (Californie du Nord), USA Ouest (Oregon), Canada (Centre), Asie-Pacifique (Mumbai), Asie-Pacifique (Tokyo), Asie-Pacifique (Séoul), Asie-Pacifique (Singapour), Asie-Pacifique (Sydney), Europe (Irlande), Europe (Londres), Europe (Paris), Europe (Stockholm), Europe (Francfort), Europe (Milan) et Amérique du Sud (São Paulo).

Pour plus d’informations sur l’utilisation de la synchronisation depuis Git dans le cadre d’une stratégie multi-comptes, consultez l’article de blog intitulé [Utilisation de la synchronisation depuis Git de CloudFormation pour configurer des ressources dans des comptes clients](https://aws.amazon.com/blogs/devops/use-aws-cloudformation-git-sync-to-configure-resources-in-customer-accounts/). 

**Topics**
+ [Comment fonctionne la synchronisation Git](git-sync-concepts-terms.md)
+ [Conditions préalables](git-sync-prereq.md)
+ [Créer une pile à partir du code source du référentiel](git-sync-create-stack-from-repository-source-code.md)
+ [Activation des commentaires sur les requêtes pull](gitsync-enable-comments-on-pull-requests.md)
+ [Tableau de bord d’état](git-sync-status.md)

# Comment fonctionne Git Sync avec CloudFormation
<a name="git-sync-concepts-terms"></a>

Cette rubrique décrit le fonctionnement de la synchronisation Git et présente les concepts clés nécessaires à son utilisation.

**Topics**
+ [Comment fonctionne la synchronisation Git](#git-sync-concepts-terms-how)
+ [Commentaires sur les demandes d'extraction](#git-sync-comments-on-pull-requests)
+ [Fichier de déploiement de pile](#git-sync-concepts-terms-depoyment-file)
+ [CloudFormation fichier modèle](#git-sync-concepts-terms-template-file)
+ [Référentiel de définition du modèle](#git-sync-concepts-terms-template-definition-repository)

## Comment fonctionne la synchronisation Git
<a name="git-sync-concepts-terms-how"></a>

Pour utiliser Git sync, vous devez d'abord connecter un fournisseur Git à CloudFormation l'utilisation du [CodeConnections](https://docs.aws.amazon.com/codeconnections/latest/APIReference/Welcome.html)service. Dans les procédures décrites dans ce guide, la connexion est créée via la CodeConnections console. Vous pouvez également créer la connexion avec le AWS CLI. Vous pouvez utiliser l’un des fournisseurs Git suivants :
+ [GitHub](https://github.com/)
+ [GitHub Entreprise](https://github.com/enterprise/)
+ [GitLab](https://about.gitlab.com/)
+ [Bitbucket](https://bitbucket.org)
+ [GitLabautogéré](https://docs.gitlab.com/subscriptions/self_managed/)

Ensuite, vous créez un CloudFormation modèle qui définit votre pile et vous l'ajoutez à votre référentiel. Ce fichier modèle est surveillé. CloudFormation met automatiquement à jour la pile lorsque des modifications y sont apportées.

Dans la CloudFormation console, vous créez une nouvelle pile et vous choisissez **Sync from Git** CloudFormation pour indiquer d'utiliser Git sync. Vous allez spécifier le dépôt et la branche que vous CloudFormation souhaitez surveiller, ainsi que le CloudFormation modèle de votre référentiel qui définit la pile.

Lors de la configuration, vous pouvez soit fournir votre propre fichier de déploiement de pile à partir de votre référentiel, soit demander à la synchronisation Git d’en générer un pour vous. Le fichier de déploiement de la pile contient des paramètres et des valeurs qui configurent les ressources de votre pile. Ce fichier de déploiement de stack est surveillé. CloudFormation met automatiquement à jour la pile lorsque des modifications y sont apportées.

Git sync crée une pull request dans votre dépôt pour synchroniser votre pile avec le fichier CloudFormation modèle et le fichier de déploiement de la pile. Si c’est la synchronisation Git qui génère le fichier de déploiement de la pile pour vous, ce fichier est envoyé à votre référentiel par la synchronisation Git.

Vous fusionnez ensuite la pull request avec votre référentiel afin que celui-ci CloudFormation approvisionne la pile, la configure avec vos paramètres de déploiement et commence à surveiller les modifications apportées à votre référentiel.

À partir de ce moment, chaque fois que vous apportez des modifications à votre fichier modèle ou à votre fichier de déploiement de pile et que vous les validez dans votre référentiel, les modifications CloudFormation seront automatiquement détectées. Si votre équipe utilise des requêtes pull, les membres de votre équipe peuvent alors examiner et approuver les modifications avant leur déploiement. Une fois la pull request acceptée, CloudFormation déploie vos modifications.

Vous pouvez surveiller l'état de votre configuration de synchronisation Git pour la pile et consulter l'historique des validations appliquées à la pile dans la CloudFormation console. La console fournit également des outils pour reconfigurer la synchronisation  Git et résoudre les problèmes. 

## Commentaires sur les demandes d'extraction
<a name="git-sync-comments-on-pull-requests"></a>

Vous pouvez choisir de CloudFormation créer un résumé des modifications de code dans les pull requests via le CodeConnections service en activant l'option **Activer les commentaires sur les pull requests** dans la console. Fournir un résumé des modifications apportées dans les demandes d’extraction permet aux membres de l’équipe d’examiner et de comprendre facilement l’impact des modifications proposées avant de fusionner la demande d’extraction. Pour de plus amples informations, veuillez consulter [Permet CloudFormation de publier un résumé des modifications de la pile dans les pull requests](gitsync-enable-comments-on-pull-requests.md).

## Fichier de déploiement de pile
<a name="git-sync-concepts-terms-depoyment-file"></a>

Un fichier de déploiement de pile est un fichier au format standard JSON ( JavaScript Object Notation) ou YAML qui contient les paramètres et les valeurs qui gèrent votre CloudFormation pile. Il est surveillé pour détecter les modifications. Lorsque les modifications apportées au fichier sont validées dans le référentiel, la pile associée est automatiquement mise à jour.

Le fichier de déploiement de pile contient une paire clé-valeur et deux dictionnaires :
+ `template-file-path`

  Il s'agit du chemin complet du référentiel pour le fichier CloudFormation modèle. Le fichier modèle déclare les ressources pour la CloudFormation pile associée à ce fichier de déploiement.
+ `parameters`

  Le dictionnaire de paramètres contient des paires clé-valeur qui configurent les ressources de la pile. Un fichier de déploiement de pile peut comporter jusqu’à 50 paramètres.
+ `tags`

  Le dictionnaire des balises contient des paires clé-valeur facultatives que vous pouvez utiliser pour identifier et classer les ressources de la pile. Un fichier de déploiement de pile peut comporter jusqu’à 50 balises.

Vous pouvez fournir votre propre fichier de déploiement de pile, ou demander à la synchronisation Git d’en créer un pour vous et d’envoyer automatiquement une demande d’extraction à votre référentiel. Vous pouvez gérer les paramètres et les balises en modifiant le fichier de déploiement de pile et en validant les modifications dans le référentiel.

Voici un exemple de fichier de déploiement de pile avec synchronisation Git :

```
template-file-path: fargate-srvc/my-stack-template.yaml

parameters: 
    image: public.ecr.aws/lts/nginx:latest
    task_size: x-small
    max_capacity: 5
    port: 8080
    env: production
tags:
    cost-center: '123456'
    org: 'AWS'
```

## CloudFormation fichier modèle
<a name="git-sync-concepts-terms-template-file"></a>

Un fichier modèle contient une déclaration des AWS ressources qui constituent une CloudFormation pile. Avec la synchronisation Git, le fichier modèle est stocké dans votre référentiel Git et référencé par le fichier de déploiement de la pile. Vous pouvez gérer la pile en modifiant le fichier modèle et en validant les modifications dans le référentiel.

Pour de plus amples informations, veuillez consulter [Utilisation de CloudFormation modèles](template-guide.md).

## Référentiel de définition du modèle
<a name="git-sync-concepts-terms-template-definition-repository"></a>

Le référentiel de définition du modèle est le référentiel Git auquel est lié CloudFormation via Git sync. Le référentiel est surveillé pour détecter les modifications apportées au CloudFormation modèle et au fichier de déploiement de la pile. Lorsque vous validez les modifications apportées au fichier, la pile associée est automatiquement mise à jour.

**Important**  
Lorsque vous configurez le référentiel de définition du modèle dans la console de synchronisation Git, sélectionnez le *référentiel* et la *branche* corrects à partir de la connexion Git. Git sync surveille uniquement le référentiel et la branche configurés pour détecter les modifications apportées au CloudFormation modèle et au fichier de déploiement de la pile.

# Conditions préalables à la synchronisation des piles vers un référentiel Git à l’aide de la synchronisation Git
<a name="git-sync-prereq"></a>

Avant de synchroniser une CloudFormation pile avec votre dépôt Git, vérifiez que les conditions suivantes sont remplies.

**Topics**
+ [Référentiel Git](#git-sync-prereq-repo)
+ [CloudFormation modèle](#git-sync-prereq-template)
+ [Rôle de service de synchronisation Git](#git-sync-prereq-iam)
+ [Autorisations IAM pour les utilisateurs de la console](#git-sync-prereq-user-permissions)

## Référentiel Git
<a name="git-sync-prereq-repo"></a>

Vous devez disposer d’un référentiel Git hébergé sur l’une des plateformes suivantes.
+ [GitHub](https://github.com/)
+ [GitHub Entreprise](https://github.com/enterprise)
+ [GitLab](https://about.gitlab.com/)
+ [Bitbucket](https://bitbucket.org)
+ [GitLabautogéré](https://docs.gitlab.com/subscriptions/self_managed/)

Le référentiel peut être public ou privé. Vous devrez connecter ce dépôt Git via CloudFormation la [console Connections](https://console.aws.amazon.com/codesuite/settings/connections).

## CloudFormation modèle
<a name="git-sync-prereq-template"></a>

Votre dépôt Git doit contenir un [fichier CloudFormation modèle](git-sync-concepts-terms.md#git-sync-concepts-terms-template-file) enregistré dans la branche à laquelle vous souhaitez vous connecter avec Git sync. Ce modèle sera référencé par le [fichier de déploiement de la pile](git-sync-concepts-terms.md#git-sync-concepts-terms-depoyment-file).

## Rôle de service de synchronisation Git
<a name="git-sync-prereq-iam"></a>

La synchronisation Git nécessite un rôle IAM. Vous pouvez choisir de créer un rôle IAM pour votre pile lorsque vous configurez la synchronisation Git, ou vous pouvez utiliser un rôle existant.

**Note**  
Un rôle IAM généré automatiquement applique des autorisations uniquement à la pile pour laquelle le rôle est généré. Pour réutiliser un rôle IAM généré automatiquement, vous devez modifier le rôle pour la nouvelle pile.

### Autorisations requises pour le rôle de service de synchronisation Git
<a name="git-sync-prereq-permissions"></a>

Le rôle IAM que vous attribuez à la synchronisation Git nécessite les autorisations suivantes.
+ `cloudformation:CreateChangeSet`
+ `cloudformation:DeleteChangeSet`
+ `cloudformation:DescribeChangeSet`
+ `cloudformation:DescribeStackEvents`
+ `cloudformation:DescribeStacks`
+ `cloudformation:ExecuteChangeSet`
+ `cloudformation:ListChangeSets`
+ `cloudformation:ValidateTemplate`
+ `events:PutRule`
+ `events:PutTargets`

**Note**  
Les autorisations requises ci-dessous sont automatiquement ajoutées aux rôles IAM générés par la synchronisation Git.

L’exemple de rôle IAM suivant inclut les autorisations prérequises pour la synchronisation Git.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SyncToCloudFormation",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateChangeSet",
                "cloudformation:DeleteChangeSet",
                "cloudformation:DescribeChangeSet",
                "cloudformation:DescribeStackEvents",
                "cloudformation:DescribeStacks",
                "cloudformation:ExecuteChangeSet",
                "cloudformation:GetTemplate",
                "cloudformation:ListChangeSets",
                "cloudformation:ListStacks",
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        },
        {
            "Sid": "PolicyForManagedRules",
            "Effect": "Allow",
            "Action": [
                "events:PutRule",
                "events:PutTargets"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                "events:ManagedBy": ["cloudformation.sync.codeconnections.amazonaws.com"]
                }
            }
        },
        {
            "Sid": "PolicyForDescribingRule",
            "Effect": "Allow",
            "Action": "events:DescribeRule",
            "Resource": "*"
        }
    ]
}
```

------

#### Politique d’approbation
<a name="git-sync-prereq-trust-policy"></a>

Vous devez fournir la politique d’approbation suivante lorsque vous créez le rôle pour définir la relation d’approbation.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CfnGitSyncTrustPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudformation.sync.codeconnections.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Nous vous recommandons d'utiliser les clés de condition `aws:SourceArn` et `aws:SourceAccount` pour vous protéger contre le problème de l'adjoint confus. Le compte source est votre identifiant de compte et l'ARN source est l'ARN de la connexion au [CodeConnections](https://docs.aws.amazon.com/codeconnections/latest/APIReference/Welcome.html)service qui permet de se connecter CloudFormation à votre dépôt Git.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CfnGitSyncTrustPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudformation.sync.codeconnections.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:codeconnections:us-east-1:123456789012:connection/EXAMPLE64-8aad-4d5d-8878-dfcab0bc441f"
        }
      }
    }
  ]
}
```

------

Pour de plus amples informations sur le problème de l’adjoint confus, veuillez consulter [Prévention du problème de l’adjoint confus entre services](cross-service-confused-deputy-prevention.md).

## Autorisations IAM pour les utilisateurs de la console
<a name="git-sync-prereq-user-permissions"></a>

Pour configurer correctement Git Sync via la CloudFormation console, les utilisateurs finaux doivent également disposer d'autorisations via IAM.

Les autorisations `codeconnections` suivantes sont requises pour créer et gérer la connexion à votre référentiel Git.
+ `codeconnections:CreateRepositoryLink`
+ `codeconnections:CreateSyncConfiguration`
+ `codeconnections:DeleteRepositoryLink`
+ `codeconnections:DeleteSyncConfiguration`
+ `codeconnections:GetRepositoryLink`
+ `codeconnections:GetSyncConfiguration`
+ `codeconnections:ListRepositoryLinks`
+ `codeconnections:ListSyncConfigurations`
+ `codeconnections:ListTagsForResource`
+ `codeconnections:TagResource`
+ `codeconnections:UntagResource`
+ `codeconnections:UpdateRepositoryLink`
+ `codeconnections:UpdateSyncBlocker`
+ `codeconnections:UpdateSyncConfiguration`
+ `codeconnections:UseConnection`

Les utilisateurs de console doivent également disposer des autorisations `cloudformation` suivantes pour afficher et gérer les piles pendant le processus de configuration de la synchronisation Git.
+ `cloudformation:CreateChangeSet`
+ `cloudformation:DeleteChangeSet`
+ `cloudformation:DescribeChangeSet`
+ `cloudformation:DescribeStackEvents`
+ `cloudformation:DescribeStacks`
+ `cloudformation:ExecuteChangeSet`
+ `cloudformation:GetTemplate`
+ `cloudformation:ListChangeSets`
+ `cloudformation:ListStacks`
+ `cloudformation:ValidateTemplate`

**Note**  
Bien que les autorisations de modification (`cloudformation:CreateChangeSet`, `cloudformation:DeleteChangeSet`, `cloudformation:DescribeChangeSet`, `cloudformation:ExecuteChangeSet`) ne soient pas strictement nécessaires pour une utilisation exclusive de la console, elles sont recommandées pour permettre l’inspection complète de la pile et les capacités de gestion.

L’exemple de politique IAM suivant inclut les autorisations utilisateur nécessaires pour configurer la synchronisation Git via la console.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeConnectionsPermissions",
            "Effect": "Allow",
            "Action": [
                "codeconnections:CreateRepositoryLink",
                "codeconnections:CreateSyncConfiguration",
                "codeconnections:DeleteRepositoryLink",
                "codeconnections:DeleteSyncConfiguration",
                "codeconnections:GetRepositoryLink",
                "codeconnections:GetSyncConfiguration",
                "codeconnections:ListRepositoryLinks",
                "codeconnections:ListSyncConfigurations",
                "codeconnections:ListTagsForResource",
                "codeconnections:TagResource",
                "codeconnections:UntagResource",
                "codeconnections:UpdateRepositoryLink",
                "codeconnections:UpdateSyncBlocker",
                "codeconnections:UpdateSyncConfiguration",
                "codeconnections:UseConnection",
                "codeconnections:CreateForcedTargetSync",
                "codeconnections:CreatePullRequestForResource"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CloudFormationConsolePermissions",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateChangeSet",
                "cloudformation:DeleteChangeSet",
                "cloudformation:DescribeChangeSet",
                "cloudformation:DescribeStackEvents",
                "cloudformation:DescribeStacks",
                "cloudformation:ExecuteChangeSet",
                "cloudformation:GetTemplate",
                "cloudformation:ListChangeSets",
                "cloudformation:ListStacks",
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**Note**  
Lorsque vous créez une politique IAM qui inclut les autorisations `codeconnections:CreateForcedTargetSync` et `codeconnections:CreatePullRequestForResource`, un avertissement peut s’afficher dans la console IAM indiquant que ces actions n’existent pas. Cet avertissement peut être ignoré et la politique sera toujours créée avec succès. Ces autorisations sont requises pour certaines opérations de synchronisation Git même si elles ne sont pas reconnues par la console IAM.

# Créez une pile à partir du code source du référentiel avec la synchronisation Git
<a name="git-sync-create-stack-from-repository-source-code"></a>

Cette rubrique explique comment créer une CloudFormation pile synchronisée avec un dépôt Git avec Git sync.

**Important**  
Avant de continuer, remplissez l'ensemble des [conditions préalables](git-sync-prereq.md) de la section précédente. 

## Créer une pile à partir du code source du référentiel
<a name="create-stack-from-repository-source-code"></a>

1. Connectez-vous à la CloudFormation console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Dans la barre de navigation en haut de l'écran, choisissez le Région AWS pour créer le stack in.

1. Sur la page **Piles**, choisissez **Créer une pile**, puis **Avec de nouvelles ressources (standard)**.

1. Sur la page **Créer une pile**, procédez de la manière suivante :

   1. Pour la **Condition préalable – Préparer le modèle**, laissez la case **Choisir un modèle existant** cochée.

   1. Pour **Spécifier le modèle**, choisissez **Sync. depuis Git**, puis **Suivant**.

1. Sur la page **Spécifier les détails de la pile**, entrez un nom pour la pile dans la zone **Nom de la pile**. Les noms de pile peuvent contenir des lettres (A à Z et a à z), des chiffres (0 à 9) et des tirets (-).

1. Pour le **fichier de déploiement Stack**, **création du fichier de déploiement** :
   + Si vous *n’avez pas* créé de fichier de déploiement de pile et ne l’avez pas ajouté à votre référentiel, sélectionnez **Créer le fichier à l’aide des paramètres suivants et le placer dans mon référentiel**.
   + Si votre référentiel contient un fichier de déploiement de pile, choisissez **Je fournis mon propre fichier dans mon référentiel.**

1. Pour le **référentiel de définition de modèles**, **choisissez Choisir un dépôt Git lié** pour choisir un dépôt Git auquel il est déjà lié CloudFormation, ou **Lier un dépôt Git** pour en lier un nouveau. Si vous choisissez **Lier un référentiel Git**, procédez comme suit :

   1. Pour **Sélectionner un fournisseur** de référentiel, choisissez l’une des options suivantes :
      + **GitHub**
      + **GitHub Serveur d'entreprise**
      + **GitLab**
      + **Bitbucket**
      + **GitLab autogéré**

   1. Pour la **connexion**, choisissez une connexion dans la liste. Si aucune option n’apparaît dans la liste **Connexion**, choisissez **Ajouter une nouvelle connexion** pour accéder à la [console Connexions](https://console.aws.amazon.com/codesuite/settings/connections) et créer une connexion à votre référentiel.

1. Dans la liste **Référentiel**, sélectionnez le référentiel Git qui contient votre fichier modèle de pile.

1. Dans la liste **Branche**, sélectionnez la branche que vous souhaitez que la synchronisation Git surveille.
**Note**  
Git sync surveille uniquement les modifications apportées au CloudFormation modèle et aux fichiers de déploiement de la pile dans la branche sélectionnée. Toutes les modifications que vous souhaitez appliquer à votre pile doivent être validées dans cette branche.

1. Pour le **chemin du fichier de déploiement**, spécifiez le chemin complet, y compris le nom du fichier de déploiement de la pile, à partir de la racine de la branche de votre référentiel.

   S' CloudFormation il génère le fichier pour vous, c'est ici que le fichier sera enregistré dans votre dépôt. Si vous fournissez le fichier, il s’agit de l’emplacement du fichier dans votre référentiel.

1. Ajoutez un **rôle IAM**. Le rôle IAM inclut les autorisations requises CloudFormation pour synchroniser la pile depuis votre référentiel Git. Vous pouvez choisir **Nouveau rôle IAM** pour générer un nouveau rôle, ou choisir **Rôle IAM existant** pour sélectionner un rôle existant dans votre Compte AWS. Si vous choisissez de générer un nouveau rôle, les autorisations requises sont incluses dans le rôle.

1. Activez ou désactivez les commentaires en cas de demande d’extraction :
   + Pour que les informations relatives à la CloudFormation post-modification soient définies dans les pull requests pour les mises à jour de la pile, maintenez le bouton **Activer le commentaire sur la pull request** activé.
   + Si vous désactivez cette option, je ne CloudFormation décrirai pas les différences entre la configuration actuelle de la pile et les modifications proposées dans les pull requests lorsque les fichiers de dépôt sont mis à jour.

1. Pour le **chemin du fichier modèle**, spécifiez le chemin complet de la racine de votre référentiel pour le fichier modèle de la pile.

1. (Facultatif) Pour spécifier les paramètres de la pile, sélectionnez **Ajouter un paramètre**, indiquez une clé et une valeur pour chaque paramètre, puis sélectionnez **Suivant**. Pour de plus amples informations, veuillez consulter [Fichier de déploiement de pile](git-sync-concepts-terms.md#git-sync-concepts-terms-depoyment-file).

   Par exemple, pour spécifier un paramètre **port=8080** dans votre fichier de déploiement de pile, procédez comme suit :

   1. Choisissez **Ajouter un paramètre**.

   1. Pour **Clé**, entrez **port**.

   1. Pour le champ **Value (Valeur)**, entrez **8080**.

1. (Facultatif) Pour spécifier des balises de pile, sélectionnez **Ajouter une nouvelle balise**, fournissez une clé et une valeur pour chaque balise, puis sélectionnez **Suivant**. Pour de plus amples informations, veuillez consulter [Fichier de déploiement de pile](git-sync-concepts-terms.md#git-sync-concepts-terms-depoyment-file).

1. Choisissez **Suivant** pour passer à **Configurer les options de la pile**. Pour plus d’informations sur les options de configuration de la pile, consultez [Configuration des options de pile](cfn-console-create-stack.md#configure-stack-options).

   Une fois la configuration de votre pile terminée, sélectionnez **Suivant** pour continuer.

1. Vérifiez les paramètres de votre pile et confirmez les points suivants :
   + Le modèle de pile est correctement configuré et défini sur **Synchronisation à partir de Git**.
   + Le fichier de déploiement est correctement configuré.
   + Le référentiel de définition du modèle est correctement configuré, en particulier en ce qui concerne la sélection du **Référentiel** et du **Nom de branche** corrects.
   + L’aperçu du fichier de déploiement est correct et contient les paramètres et valeurs attendus.

1. Choisissez **Envoyer** pour créer la pile.

   Après avoir sélectionné **Soumettre**, une demande d’extraction est automatiquement créée dans votre référentiel Git. Vous devez fusionner cette demande d’extraction dans votre référentiel Git pour créer votre pile. Une fois la pile créée, CloudFormation surveille les modifications apportées à votre dépôt Git.

## Mettez à jour votre pile depuis votre référentiel Git
<a name="update-stack-from-repository-source-code"></a>

Pour mettre à jour la pile, apportez les modifications directement dans votre fichier modèle ou dans le fichier de déploiement de la pile dans votre référentiel Git. Une fois que vous avez validé vos modifications dans la branche surveillée, la pile est CloudFormation automatiquement mise à jour. Si vous utilisez des requêtes pull, une requête pull est automatiquement créée dans votre référentiel Git avant la mise à jour de la pile. Vous devez fusionner cette demande d’extraction dans votre référentiel Git pour mettre à jour votre pile.

Dans la CloudFormation console, vous pouvez sélectionner la pile et choisir l'onglet **Git sync** pour afficher les informations relatives à l'état de la pile et aux événements de synchronisation. Pour de plus amples informations, veuillez consulter [Tableau de bord d’état de la synchronisation Git](git-sync-status.md).

# Permet CloudFormation de publier un résumé des modifications de la pile dans les pull requests
<a name="gitsync-enable-comments-on-pull-requests"></a>

Cette rubrique explique comment activer la publication d'un résumé des modifications apportées CloudFormation à la pile dans les pull requests dans votre dépôt Git.

En activant la fonctionnalité de commentaires sur les pull requests, vous CloudFormation autorisez la publication d'un commentaire décrivant les différences entre la configuration de la pile actuelle et les modifications proposées lors de la mise à jour des fichiers de dépôt. Ce commentaire fournit un résumé des ressources qui seront ajoutées, modifiées ou supprimées, vous permettant d’effectuer une révision de code complète avant de fusionner la requête pull.

**Activation des commentaires sur les requêtes pull pour une nouvelle pile (console)**  
Lorsque vous créez la pile, sur la page **Spécifier les détails de la pile**, sous **Référentiel de définitions de modèles**, assurez-vous que le bouton **Activer les commentaires sur les requêtes pull** est activé. Il s’agit du paramètre par défaut pour les nouvelles piles. 

**Activation des commentaires sur les requêtes pull pour une pile existante (console)**

1. Connectez-vous à la CloudFormation console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Dans la barre de navigation en haut de l'écran, choisissez le modèle dans Région AWS lequel vous avez créé votre stack.

1. Sur la page **Piles**, choisissez la pile en cours d’exécution que vous souhaitez mettre à jour.

1. Choisissez l’onglet **Synchronisation depuis Git**, puis **Modifier**.

1. Sur la page **Modifier les paramètres de synchronisation depuis Git**, sous **Référentiel de définitions de modèles**, activez l’option **Activer les commentaires sur les requêtes pull**.

1. Choisissez **Mettre à jour la configuration**.

# Tableau de bord d’état de la synchronisation Git
<a name="git-sync-status"></a>

Pour afficher l'état d'un déploiement de synchronisation AWS CloudFormation Git, sélectionnez la pile dans la CloudFormation console et choisissez l'onglet **Git sync**.

L’onglet Synchronisation Git est divisé en deux volets, **État de la synchronisation Git** et **Derniers événements de synchronisation**.

## État de la synchronisation Git
<a name="git-sync-status-info"></a>

Le volet supérieur fournit les informations suivantes sur la configuration de la synchronisation Git de la pile.

****Référentiel****  
 Lien vers le référentiel connecté à la synchronisation Git

****Fournisseur du référentiel****  
Nom du fournisseur du référentiel

****Branche****  
Nom de la branche surveillée par la synchronisation Git

****Chemin du fichier de déploiement****  
Chemin complet vers le fichier de déploiement de cette pile

****État de la synchronisation du référentiel****  
État de la dernière opération de synchronisation

****Message d’état de la synchronisation du référentiel****  
Message de la dernière opération de synchronisation

****État de la synchronisation Git****  
État de la synchronisation Git de cette pile

****État du provisionnement****  
État de l’opération de provisionnement

Dans la partie supérieure droite du volet, utilisez les boutons suivants pour modifier ou mettre à jour la synchronisation Git :
+ **Modifier** : modifiez la configuration de la synchronisation Git.
+ **Réessayer la dernière validation** : mettez à jour la pile en fonction de la dernière validation dans le référentiel.
+ **Déconnecter** : déconnectez la synchronisation Git de la pile.
+ **Actualiser** : actualisez le volet d’état de la synchronisation Git.

## Derniers événements de synchronisation
<a name="git-sync-status-sync-events"></a>

Le volet **Derniers événements de synchronisation** affiche une table des validations appliquées à la pile.

Vous pouvez trier la table à l’aide des flèches situées dans l’en-tête de chaque colonne. La table peut être triée par ordre croissant ou décroissant selon les critères suivants :
+ **Date**
+ **ID de validation**
+ **Event**
+ **Date**
+ **Type d’événement**

## États de pile pris en charge
<a name="git-sync-status-stack-state"></a>

La synchronisation Git ne peut être configurée pour une pile que si celle-ci se trouve dans l’un des états pris en charge suivants :
+ `CREATE_COMPLETE`
+ `UPDATE_COMPLETE`
+ `UPDATE_ROLLBACK_COMPLETE`
+ `IMPORT_COMPLETE`
+ `IMPORT_ROLLBACK_COMPLETE`

Le tableau suivant répertorie l’ensemble des codes d’état de la pile avec leurs descriptions :


| État de la pile et statut détaillé facultatif | Description | 
| --- | --- | 
|  `CREATE_COMPLETE`  |  Réussite de la création d’une ou de plusieurs piles.  | 
|  `CREATE_IN_PROGRESS`  |  Création en cours d’une ou de plusieurs piles.  | 
|  `CREATE_FAILED`  |  Échec de la création d’une ou de plusieurs piles. Affichez les événements de la pile pour voir les messages d’erreur associés. Les raisons possibles d'un échec de création incluent des autorisations insuffisantes pour utiliser toutes les ressources de la pile, des valeurs de paramètres rejetées par un AWS service ou un délai d'attente lors de la création des ressources.  | 
|  `DELETE_COMPLETE`  |  Réussite de la suppression d’une ou de plusieurs piles. Les piles supprimées sont conservées et consultables pendant 90 jours.  | 
|  `DELETE_FAILED`  |  Échec de la suppression d’une ou de plusieurs piles. Comme la suppression a échoué, certaines ressources sont peut-être encore en cours d’exécution. Cependant, vous ne pouvez pas utiliser ni mettre à jour la pile. Supprimez la pile à nouveau ou consultez les événements correspondants pour voir les messages d’erreur associés.  | 
|  `DELETE_IN_PROGRESS`  |  Suppression en cours d’une ou de plusieurs piles.  | 
| `REVIEW_IN_PROGRESS` | Création continue d’une ou de plusieurs piles avec un StackId attendu, mais sans aucun modèle ni ressource. Une pile associée à ce code de statut est comptabilisée dans le [nombre maximal possible de piles](cloudformation-limits.md).  | 
|  `ROLLBACK_COMPLETE`  |  Réussite de la suppression d’une ou de plusieurs piles après un échec de création ou après l’annulation explicite de la création de la pile. La pile revient à son état de fonctionnement précédent. Toutes les ressources qui ont été créées au cours de l’action de création de la pile sont supprimées. Ce statut existe uniquement après un échec de création de la pile. Il signifie que toutes les opérations de la pile partiellement créée ont été correctement nettoyées. Dans ce cas-là, seule une opération de suppression peut être effectuée.  | 
|  `ROLLBACK_FAILED`  |  Échec de la suppression d’une ou de plusieurs piles après un échec de création ou après l’annulation explicite de la création de la pile. Supprimez la pile ou consultez les événements correspondants pour voir les messages d’erreur associés.  | 
|  `ROLLBACK_IN_PROGRESS`  |  Suppression en cours d’une ou de plusieurs piles après un échec de création ou après l’annulation explicite de la création de la pile.  | 
|  `UPDATE_COMPLETE`  | Réussite de la mise à jour d’une ou de plusieurs piles. | 
|  `UPDATE_COMPLETE_CLEANUP_IN_PROGRESS`  |  Suppression en cours d’anciennes ressources pour une ou plusieurs piles après une mise à jour réussie. Pour les mises à jour de pile qui nécessitent le remplacement de ressources, CloudFormation créez d'abord les nouvelles ressources, puis supprimez les anciennes ressources afin de réduire les interruptions de votre pile. Dans cet état, la pile a été mise à jour et est utilisable, mais les anciennes ressources CloudFormation sont toujours supprimées.  | 
|  `UPDATE_FAILED`  | Réussite de la mise à jour d’une ou de plusieurs piles. Affichez les événements de la pile pour voir les messages d’erreur associés. | 
|  `UPDATE_IN_PROGRESS`  |  Mise à jour en cours d’une ou de plusieurs piles.  | 
|  `UPDATE_ROLLBACK_COMPLETE`  |  Réussite de la restauration de l’état de fonctionnement d’une ou plusieurs piles après un échec de mise à jour.  | 
|  `UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS`  |  Suppression en cours des nouvelles ressources d’une ou de plusieurs piles après un échec de mise à jour. Dans cet état, la pile a été rétablie à son état de fonctionnement précédent et est utilisable, mais CloudFormation les nouvelles ressources créées lors de la mise à jour de la pile sont toujours supprimées.  | 
|  `UPDATE_ROLLBACK_FAILED`  |  Échec de la restauration de l’état de fonctionnement d’une ou plusieurs piles après un échec de mise à jour. Dans ce cas là, vous pouvez supprimer la pile ou [poursuivre la restauration](using-cfn-updating-stacks-continueupdaterollback.md). Vous devrez peut-être corriger les erreurs avant que votre pile puisse revenir à un état de fonctionnement. Vous pouvez également contacter Support pour restaurer la pile dans un état utilisable.  | 
|  `UPDATE_ROLLBACK_IN_PROGRESS`  |  Restauration en cours de l’état de fonctionnement d’une ou plusieurs piles après un échec de mise à jour.  | 
|  `IMPORT_IN_PROGRESS`  |  L'opération d'importation est en cours.  | 
|  `IMPORT_COMPLETE`  |  L’opération d’importation a été exécutée avec succès pour toutes les ressources de la pile qui prennent en charge `resource import`.  | 
|  `IMPORT_ROLLBACK_IN_PROGRESS`  |  L'importation sera restaurée à la configuration précédente du modèle.  | 
|  `IMPORT_ROLLBACK_FAILED`  |  L’opération de restauration de l’importation a échoué pour au moins une ressource de la pile. Les résultats seront disponibles pour les ressources importées CloudFormation avec succès.  | 
|  `IMPORT_ROLLBACK_COMPLETE`  |  L'importation a été restaurée avec succès à la configuration du modèle précédente.  | 