

Amazon n' CodeCatalyst est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour de plus amples informations, veuillez consulter [Comment effectuer une migration depuis CodeCatalyst](migration.md).

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.

# Déploiement avec des workflows
<a name="deploy"></a>



À l'aide de [CodeCatalyst flux de travail](workflow.md), vous pouvez déployer des applications et d'autres ressources sur diverses cibles telles qu'Amazon ECS AWS Lambda, etc. 

## Comment déployer une application ?
<a name="deploy-concepts"></a>

Pour déployer une application ou une ressource CodeCatalyst, vous devez d'abord créer un flux de travail, puis spécifier une action de déploiement à l'intérieur de celui-ci. Une *action de déploiement* est un élément constitutif du flux de travail qui définit *ce* que vous souhaitez déployer, *où* vous souhaitez le déployer et *comment* vous souhaitez le déployer (par exemple, à l'aide d'un blue/green schéma). Vous ajoutez une action de déploiement à votre flux de travail à l'aide de l'éditeur visuel de la CodeCatalyst console, ou éditeur YAML.

Les étapes de haut niveau pour déployer une application ou une ressource sont les suivantes.

**Pour déployer une application (tâches de haut niveau)**

1. Dans votre CodeCatalyst projet, vous **ajoutez le code source** d'une application que vous souhaitez déployer. Pour de plus amples informations, veuillez consulter [Stockage du code source dans des référentiels pour un projet dans CodeCatalyst](source-repositories.md).

1. Dans votre CodeCatalyst projet, vous **ajoutez un environnement** qui définit l'Amazon Virtual Private Cloud (VPC) cible Compte AWS et facultatif sur lequel vous souhaitez effectuer le déploiement. Pour de plus amples informations, veuillez consulter [Déploiement dans Comptes AWS et VPCs](deploy-environments.md).

1. Dans votre CodeCatalyst projet, vous **créez un flux de travail**. Le flux de travail vous permet de définir comment créer, tester et déployer votre application. Pour de plus amples informations, veuillez consulter [Commencer à utiliser les flux de travail](workflows-getting-started.md).

1. Dans le flux de travail, vous **ajoutez un déclencheur**, une **action de création** et éventuellement une **action de test**. Pour plus d’informations, consultez [Démarrage d'un flux de travail exécuté automatiquement à l'aide de déclencheurs](workflows-add-trigger.md), [Ajouter l'action de construction](build-add-action.md) et [Ajouter l'action de test](test-add-action.md).

1. Dans le flux de travail, vous **ajoutez une action de déploiement**. Vous pouvez choisir parmi plusieurs actions de déploiement CodeCatalyst proposées sur votre application vers différentes cibles, telles qu'Amazon ECS. (Vous pouvez également utiliser une action de génération ou une GitHub action pour déployer votre application. Pour plus d'informations sur l'action de génération et GitHub les actions, consultez[Alternatives aux actions de déploiement](#deploy-concepts-alternatives).)

1. Vous **démarrez le flux de travail** manuellement ou automatiquement par le biais d'un déclencheur. Le flux de travail exécute les actions de génération, de test et de déploiement en séquence pour déployer votre application et vos ressources vers la cible. Pour de plus amples informations, veuillez consulter [Démarrage manuel de l’exécution d’un flux de travail](workflows-manually-start.md).

## Liste des actions de déploiement
<a name="deploy-concepts-action-supported"></a>

Les actions de déploiement suivantes sont disponibles :
+ Déployer une CloudFormation pile : cette action crée une CloudFormation pile sur la AWS base d'un [CloudFormation modèle](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html) ou d'un [AWS Serverless Application Model modèle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) que vous fournissez. Pour de plus amples informations, veuillez consulter [Déploiement d'une CloudFormation pile](deploy-action-cfn.md).
+ Déployer sur Amazon ECS : cette action enregistre un fichier de [définition de tâche](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) que vous fournissez. Pour de plus amples informations, veuillez consulter [Déploiement sur Amazon ECS à l'aide d'un flux de travail](deploy-action-ecs.md).
+ Déployer vers un cluster Kubernetes : cette action déploie une application sur un cluster Amazon Elastic Kubernetes Service. Pour de plus amples informations, veuillez consulter [Déploiement sur Amazon EKS à l'aide d'un flux de travail](deploy-action-eks.md).
+ AWS CDK déployer — Cette action déploie une [AWS CDK application](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_concepts) dans. AWS Pour de plus amples informations, veuillez consulter [Déploiement d'une AWS CDK application avec un flux de travail](cdk-dep-action.md).

**Note**  
D'autres CodeCatalyst actions peuvent déployer des ressources ; toutefois, elles ne sont pas considérées comme des actions de *déploiement* car leurs informations de déploiement n'apparaissent pas sur la page **Environnements**. Pour en savoir plus sur la page **Environnements** et sur l'affichage des déploiements, consultez [Déploiement dans Comptes AWS et VPCs](deploy-environments.md) et[Affichage des informations de déploiement](deploy-view-deployment-info.md).

## Avantages des actions de déploiement
<a name="deploy-concepts-why-use"></a>

L'utilisation d'actions de déploiement dans un flux de travail présente les avantages suivants :
+ **Historique des déploiements** : consultez l'historique de vos déploiements pour vous aider à gérer et à communiquer les modifications apportées aux logiciels que vous avez déployés. 
+ **Traçabilité** : suivez l'état de vos déploiements via la CodeCatalyst console et découvrez quand et où chaque révision d'application a été déployée.
+ **Annulations** : annulez automatiquement les déploiements en cas d'erreur. Vous pouvez également configurer des alarmes pour activer les annulations de déploiement.
+ **Surveillance** : surveillez votre déploiement au fur et à mesure qu'il progresse au cours des différentes étapes de votre flux de travail.
+ **Intégration avec d'autres CodeCatalyst fonctionnalités** : stockez le code source, puis créez-le, testez-le et déployez-le, le tout à partir d'une seule application.

## Alternatives aux actions de déploiement
<a name="deploy-concepts-alternatives"></a>

Vous n'êtes pas obligé d'utiliser des actions de déploiement, bien qu'elles soient recommandées car elles offrent les avantages décrits dans la section précédente. Au lieu de cela, vous pouvez utiliser les [CodeCatalyst actions](workflows-actions.md#workflows-actions-types-cc) suivantes :
+ Une action **de construction**.

  Généralement, vous utilisez des actions de génération si vous souhaitez effectuer un déploiement sur une cible pour laquelle aucune action de déploiement correspondante n'existe, ou si vous souhaitez mieux contrôler la procédure de déploiement. Pour plus d'informations sur l'utilisation des actions de génération pour déployer des ressources, consultez[Construire avec des flux de travail](build-workflow-actions.md).
+ Une **GitHub action**.

  Vous pouvez utiliser une [GitHub action](workflows-actions.md#workflows-actions-types-github) dans un CodeCatalyst flux de travail pour déployer des applications et des ressources (au lieu d'une CodeCatalyst action). Pour plus d'informations sur l'utilisation GitHub des actions dans un CodeCatalyst flux de travail, voir [Intégration aux GitHub actions](integrations-github-actions.md)

Vous pouvez également utiliser les AWS services suivants pour déployer votre application, si vous ne souhaitez pas utiliser de CodeCatalyst flux de travail pour ce faire :
+ AWS CodeDeploy — voir [Qu'est-ce que c'est CodeDeploy ?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ AWS CodeBuild et AWS CodePipeline — voir [Qu'est-ce que c'est AWS CodeBuild ?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) et [qu'est-ce que c'est AWS CodePipeline ?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ CloudFormation — voir [Qu'est-ce que c'est CloudFormation ?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

Utilisation CodeDeploy, CodeBuild CodePipeline, et CloudFormation services pour les déploiements complexes en entreprise.

**Topics**
+ [Comment déployer une application ?](#deploy-concepts)
+ [Liste des actions de déploiement](#deploy-concepts-action-supported)
+ [Avantages des actions de déploiement](#deploy-concepts-why-use)
+ [Alternatives aux actions de déploiement](#deploy-concepts-alternatives)
+ [Déploiement sur Amazon ECS à l'aide d'un flux de travail](deploy-action-ecs.md)
+ [Déploiement sur Amazon EKS à l'aide d'un flux de travail](deploy-action-eks.md)
+ [Déploiement d'une CloudFormation pile](deploy-action-cfn.md)
+ [Déploiement d'une AWS CDK application avec un flux de travail](cdk-dep-action.md)
+ [Démarrage d'une AWS CDK application à l'aide d'un flux de travail](cdk-boot-action.md)
+ [Publication de fichiers sur Amazon S3 à l'aide d'un flux de travail](s3-pub-action.md)
+ [Déploiement dans Comptes AWS et VPCs](deploy-environments.md)
+ [Afficher l'URL de l'application dans le diagramme du flux de travail](deploy-app-url.md)
+ [Supprimer une cible de déploiement](deploy-remove-target.md)
+ [Suivi de l'état du déploiement par validation](track-changes.md)
+ [Afficher les journaux de déploiement](deploy-deployment-logs.md)
+ [Affichage des informations de déploiement](deploy-view-deployment-info.md)

# Déploiement sur Amazon ECS à l'aide d'un flux de travail
<a name="deploy-action-ecs"></a>

Cette section décrit comment déployer une application conteneurisée dans un cluster Amazon Elastic Container Service à l'aide d'un CodeCatalyst flux de travail. Pour ce faire, vous devez ajouter l'action **Deploy to Amazon ECS** à votre flux de travail. Cette action enregistre un fichier de [définition de tâche](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) que vous fournissez. Lors de l'enregistrement, la définition de tâche est instanciée par votre [service Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) exécuté dans votre cluster [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-clusters). « Instancier une définition de tâche » équivaut au déploiement d'une application dans Amazon ECS.

Pour utiliser cette action, vous devez disposer d'un cluster, d'un service et d'un fichier de définition de tâche Amazon ECS prêt.

Pour plus d'informations sur Amazon ECS, consultez le *guide du développeur Amazon Elastic Container Service*.

**Astuce**  
Pour consulter un didacticiel expliquant comment utiliser l'action **Deploy to Amazon ECS**, consultez[Tutoriel : Déployer une application sur Amazon ECS](deploy-tut-ecs.md).

**Astuce**  
Pour un exemple pratique de l'action **Deploy to Amazon ECS**, créez un projet avec l'**API Node.js avec AWS Fargate ou avec** l'**API Java avec AWS Fargate** Blueprint. Pour de plus amples informations, veuillez consulter [Création d'un projet à l'aide d'un plan](projects-create.md#projects-create-console-template).

**Topics**
+ [Image d'exécution utilisée par l'action « Déployer sur Amazon ECS »](#deploy-action-ecs-runtime)
+ [Tutoriel : Déployer une application sur Amazon ECS](deploy-tut-ecs.md)
+ [Ajout de l'action « Déployer sur Amazon ECS »](deploy-action-ecs-adding.md)
+ [Variables « Déployer sur Amazon ECS »](deploy-action-ecs-variables.md)
+ [Action YAML « Déployer sur Amazon ECS »](deploy-action-ref-ecs.md)

## Image d'exécution utilisée par l'action « Déployer sur Amazon ECS »
<a name="deploy-action-ecs-runtime"></a>

L'action **Deploy to Amazon ECS** s'exécute sur une [image de novembre 2022](build-images.md#build.previous-image). Pour de plus amples informations, veuillez consulter [Images actives](build-images.md#build-curated-images).

# Tutoriel : Déployer une application sur Amazon ECS
<a name="deploy-tut-ecs"></a>

Dans ce didacticiel, vous apprendrez à déployer une application sans serveur dans Amazon Elastic Container Service (Amazon ECS) à l'aide d'un flux de travail, Amazon ECS, et de quelques autres services. AWS L'application déployée est un simple site Web Hello World construit sur une image Docker du serveur Web Apache. Le didacticiel explique les tâches de préparation requises, telles que la configuration d'un cluster, puis décrit comment créer un flux de travail pour créer et déployer l'application.

**Astuce**  
Au lieu de suivre ce didacticiel, vous pouvez utiliser un plan qui effectue une configuration complète d'Amazon ECS pour vous. Vous devrez utiliser l'**API Node.js avec AWS Fargate ou l'API** **Java avec AWS Fargate** Blueprint. Pour de plus amples informations, veuillez consulter [Création d'un projet à l'aide d'un plan](projects-create.md#projects-create-console-template).

**Topics**
+ [Conditions préalables](#deploy-tut-ecs-prereqs)
+ [Étape 1 : configurer un AWS utilisateur et AWS CloudShell](#deploy-tut-ecs-user-cloudshell)
+ [Étape 2 : Déployer une application fictive dans Amazon ECS](#deploy-tut-ecs-placeholder)
+ [Étape 3 : créer un référentiel d'images Amazon ECR](#deploy-tut-ecs-ecr)
+ [Étape 4 : Création de AWS rôles](#deploy-tut-ecs-build-deploy-roles)
+ [Étape 5 : Ajouter AWS des rôles à CodeCatalyst](#deploy-tut-ecs-import-roles)
+ [Étape 6 : Création d'un référentiel source](#deploy-tut-ecs-source-repo)
+ [Étape 7 : Ajouter des fichiers source](#deploy-tut-ecs-source-files)
+ [Étape 8 : créer et exécuter un flux de travail](#deploy-tut-ecs-workflow)
+ [Étape 9 : Apportez une modification à vos fichiers source](#deploy-tut-ecs-change)
+ [Nettoyage](#deploy-tut-ecs-cleanup)

## Conditions préalables
<a name="deploy-tut-ecs-prereqs"></a>

Avant de commencer :
+ Vous avez besoin d'un CodeCatalyst **espace** avec un AWS compte connecté. Pour de plus amples informations, veuillez consulter [Création d’un espace](spaces-create.md).
+ Dans votre espace, vous avez besoin d'un projet vide appelé :

  ```
  codecatalyst-ecs-project
  ```

  Utilisez l'option **Partir de zéro** pour créer ce projet.

  Pour de plus amples informations, veuillez consulter [Création d'un projet vide dans Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ Dans votre projet, vous avez besoin d'un CodeCatalyst **environnement** appelé :

  ```
  codecatalyst-ecs-environment
  ```

  Configurez cet environnement comme suit :
  + Choisissez n'importe quel type, tel que **Non-production**.
  +  AWS Connectez-y votre compte.
  + Pour le **rôle IAM par défaut**, choisissez n'importe quel rôle. Vous spécifierez un autre rôle ultérieurement.

  Pour de plus amples informations, veuillez consulter [Déploiement dans Comptes AWS et VPCs](deploy-environments.md).

## Étape 1 : configurer un AWS utilisateur et AWS CloudShell
<a name="deploy-tut-ecs-user-cloudshell"></a>

La première étape de ce didacticiel consiste à créer un utilisateur dans AWS IAM Identity Center et à lancer une AWS CloudShell instance sous le nom de cet utilisateur. Pendant la durée de ce didacticiel, CloudShell c'est votre ordinateur de développement et c'est là que vous configurez les AWS ressources et les services. Supprimez cet utilisateur après avoir terminé le didacticiel.

**Note**  
N'utilisez pas votre utilisateur root pour ce didacticiel. Vous devez créer un utilisateur distinct, sinon vous risquez de rencontrer des problèmes lors de l'exécution d'actions dans la AWS Command Line Interface (CLI) ultérieurement.

Pour plus d'informations sur les utilisateurs d'IAM Identity Center CloudShell, consultez le guide de l'*AWS IAM Identity Center utilisateur et le guide* de *AWS CloudShell l'utilisateur*. 

**Pour créer un utilisateur IAM Identity Center**

1. Connectez-vous à la AWS IAM Identity Center console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/).
**Note**  
Assurez-vous de vous connecter à l'aide de Compte AWS celui qui est connecté à votre CodeCatalyst espace. Vous pouvez vérifier quel compte est connecté en accédant à votre espace et en choisissant l'onglet **Comptes AWS**. Pour de plus amples informations, veuillez consulter [Création d’un espace](spaces-create.md).

1. Dans le panneau de navigation, choisissez **Users (Utilisateurs)**, puis **Add user (Ajouter un utilisateur)**.

1. Dans **Nom d'utilisateur**, entrez :

   ```
   CodeCatalystECSUser
   ```

1. Sous **Mot de passe**, choisissez **Générer un mot de passe à usage unique que vous pouvez partager avec cet utilisateur**.

1. Dans **Adresse e-mail** et **Confirmer l'adresse e-mail**, entrez une adresse e-mail qui n'existe pas encore dans IAM Identity Center.

1. Dans **Prénom et nom** **de famille**, entrez :

   ```
   CodeCatalystECSUser
   ```

1. Dans **Nom d'affichage**, conservez le nom généré automatiquement :

   ```
   CodeCatalystECSUser CodeCatalystECSUser
   ```

1. Choisissez **Suivant**.

1. Sur la page **Ajouter un utilisateur aux groupes**, choisissez **Next**.

1. Sur la page **Vérifier et ajouter un utilisateur**, passez en revue les informations et choisissez **Ajouter un utilisateur**.

   Une boîte **de dialogue de mot de passe à usage unique** s'affiche.

1. Choisissez **Copier**, puis collez les informations de connexion, y compris l'URL du portail AWS d'accès et le mot de passe à usage unique.

1. Choisissez **Fermer**.

**Pour créer un jeu d'autorisations**

Vous attribuerez cet ensemble d'autorisations à une `CodeCatalystECSUser` date ultérieure.

1. Dans le volet de navigation, choisissez **Ensembles d'autorisations**, puis choisissez **Créer un ensemble d'autorisations**.

1. Choisissez **Ensemble d'autorisations prédéfini**, puis sélectionnez **AdministratorAccess**. Cette politique fournit des autorisations complètes à tous Services AWS. 

1. Choisissez **Suivant**.

1. Dans **Nom du jeu d'autorisations**, entrez :

   ```
   CodeCatalystECSPermissionSet
   ```

1. Choisissez **Suivant**.

1. Sur la page **Réviser et créer**, passez en revue les informations et choisissez **Créer**.

**Pour attribuer l'ensemble d'autorisations à CodeCatalyst ECSUser**

1. Dans le volet de navigation, choisissez **Comptes AWS**, puis cochez la case à côté de Compte AWS celle à laquelle vous êtes actuellement connecté.

1. Choisissez **Attribuer des utilisateurs ou des groupes**.

1. Sélectionnez l’onglet **Utilisateurs**.

1. Cochez la case située à côté de`CodeCatalystECSUser`.

1. Choisissez **Suivant**.

1. Cochez la case située à côté de`CodeCatalystECSPermissionSet`.

1. Choisissez **Suivant**.

1. Vérifiez les informations et choisissez **Soumettre**.

   Vous les avez maintenant assignés `CodeCatalystECSUser` et `CodeCatalystECSPermissionSet` à votre Compte AWS, en les liant ensemble.

**Pour vous déconnecter et vous reconnecter en tant que CodeCatalyst ECSUser**

1. Avant de vous déconnecter, assurez-vous d'avoir l'URL du portail AWS d'accès ainsi que le nom d'utilisateur et le mot de passe à usage unique pour`CodeCatalystECSUser`. Vous devriez avoir copié ces informations dans un éditeur de texte plus tôt.
**Note**  
Si vous ne disposez pas de ces informations, rendez-vous sur la page de `CodeCatalystECSUser` détails dans IAM Identity Center, choisissez **Réinitialiser le mot de passe**, **Générer un mot de passe à usage unique [...]** , et **Réinitialisez à nouveau le mot** de passe pour afficher les informations à l'écran.

1. Déconnectez-vous de AWS.

1. Collez l'URL du portail d' AWS accès dans la barre d'adresse de votre navigateur.

1. Connectez-vous avec le nom d'utilisateur et le mot de passe à usage unique pour`CodeCatalystECSUser`.

1. Dans **Nouveau mot de passe**, entrez un mot de passe, puis choisissez **Définir un nouveau mot de passe**.

   Une **Compte AWS**boîte apparaît à l'écran.

1. Choisissez **Compte AWS**, puis choisissez le nom de l'utilisateur Compte AWS auquel vous avez attribué l'`CodeCatalystECSUser`utilisateur et le jeu d'autorisations.

1. À côté de`CodeCatalystECSPermissionSet`, choisissez **Console de gestion**.

   Le AWS Management Console apparaît. Vous êtes maintenant connecté `CodeCatalystECSUser` avec les autorisations appropriées.

**Pour lancer une AWS CloudShell instance**

1. Par `CodeCatalystECSUser` exemple, dans la barre de navigation supérieure, choisissez l' AWS icône (![\[AWS icon\]](http://docs.aws.amazon.com/fr_fr/codecatalyst/latest/userguide/images/deploy/aws-logo.png)).

   La page principale du AWS Management Console apparaît.

1. Dans la barre de navigation supérieure, choisissez l' AWS CloudShell icône (![\[CloudShell icon\]](http://docs.aws.amazon.com/fr_fr/codecatalyst/latest/userguide/images/deploy/CloudShell.png)).

   CloudShell ouvre. Patientez pendant la création de CloudShell l'environnement.
**Note**  
Si l' CloudShell icône ne s'affiche pas, assurez-vous que vous vous trouvez dans une [région prise en charge par CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/faq-list.html#regions-available). Ce didacticiel part du principe que vous vous trouvez dans la région de l'ouest des États-Unis (Oregon).

**Pour vérifier AWS CLI que le**

1. Dans le CloudShell terminal, saisissez :

   ```
   aws --version
   ```

1. Vérifiez qu'une version apparaît.

   Il AWS CLI est déjà configuré pour l'utilisateur actuel`CodeCatalystECSUser`, il n'est donc pas nécessaire de configurer AWS CLI les clés et les informations d'identification, comme c'est normalement le cas.

## Étape 2 : Déployer une application fictive dans Amazon ECS
<a name="deploy-tut-ecs-placeholder"></a>

Dans cette section, vous déployez manuellement une application fictive dans Amazon ECS. Cette application fictive sera remplacée par l'application Hello World déployée par votre flux de travail. L'application fictive est le serveur Web Apache.

Pour plus d'informations sur Amazon ECS, consultez le *guide du développeur Amazon Elastic Container Service*.

Suivez la série de procédures ci-dessous pour déployer l'application fictive.<a name="deploy-tut-ecs-create-task-execution-role"></a>

**Pour créer le rôle d'exécution des tâches**

Ce rôle accorde à Amazon ECS l' AWS Fargate autorisation d'effectuer des appels d'API en votre nom. 

1. Créez une politique de confiance :

   1. Dans AWS CloudShell, entrez la commande suivante :

      ```
      cat > codecatalyst-ecs-trust-policy.json
      ```

      Un message clignotant apparaît dans le CloudShell terminal.

   1. Entrez le code suivant à l'invite :

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

****  

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

------

   1. Placez votre curseur après le dernier crochet (`}`).

   1. Appuyez sur **Enter** puis **Ctrl\$1d** pour enregistrer le fichier et quitter cat.

1. Créez un rôle d'exécution de tâches :

   ```
   aws iam create-role \
         --role-name codecatalyst-ecs-task-execution-role \
         --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
   ```

1. Associez la `AmazonECSTaskExecutionRolePolicy` politique AWS gérée au rôle :

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-ecs-task-execution-role \
         --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
   ```

1. Afficher les détails du rôle :

   ```
   aws iam get-role \
         --role-name codecatalyst-ecs-task-execution-role
   ```

1. Notez la `"Arn":` valeur du rôle, par exemple`arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role`. Vous aurez besoin de cet Amazon Resource Name (ARN) ultérieurement.

**Pour créer un nouveau cluster Amazon ECS**

Ce cluster contiendra l'application d'espace réservé Apache, puis l'application Hello World. 

1. Comme dans `CodeCatalystECSUser` AWS CloudShell, créez un cluster vide :

   ```
   aws ecs create-cluster --cluster-name codecatalyst-ecs-cluster
   ```

1. (Facultatif) Vérifiez que le cluster a été créé avec succès :

   ```
   aws ecs list-clusters
   ```

   L'ARN du `codecatalyst-ecs-cluster` cluster doit apparaître dans la liste, indiquant une création réussie.

**Pour créer un fichier de définition de tâche**

Le fichier de définition de tâche indique d'exécuter l'image Docker (`httpd:2.4`) [du serveur Web Apache 2.4](https://hub.docker.com/_/httpd) dont elle est DockerHub extraite.

1. Comme dans `CodeCatalystECSUser` AWS CloudShell, créez un fichier de définition de tâche :

   ```
   cat > taskdef.json
   ```

1. Collez le code suivant à l'invite :

   ```
   {
       "executionRoleArn": "arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role",
       "containerDefinitions": [
           {
               "name": "codecatalyst-ecs-container",
               "image": "httpd:2.4",
               "essential": true,
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ]
           }
       ],
       "requiresCompatibilities": [
           "FARGATE"
       ],
       "cpu": "256",
       "family": "codecatalyst-ecs-task-def",
       "memory": "512",
       "networkMode": "awsvpc"
   }
   ```

   Dans le code précédent, remplacez *arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role*

   avec l'ARN du rôle d'exécution de tâche que vous avez noté dans[Pour créer le rôle d'exécution des tâches](#deploy-tut-ecs-create-task-execution-role).

1. Placez votre curseur après le dernier crochet (`}`).

1. Appuyez sur **Enter** puis **Ctrl\$1d** pour enregistrer le fichier et quitter cat.

**Pour enregistrer le fichier de définition de tâche auprès d'Amazon ECS**

1. Comme dans `CodeCatalystECSUser` AWS CloudShell, enregistrez la définition de tâche :

   ```
   aws ecs register-task-definition \
       --cli-input-json file://taskdef.json
   ```

1. (Facultatif) Vérifiez que la définition de tâche a été enregistrée :

   ```
   aws ecs list-task-definitions
   ```

   La définition de la `codecatalyst-ecs-task-def` tâche doit apparaître dans la liste.

**Pour créer le service Amazon ECS**

Le service Amazon ECS exécute les tâches (et les conteneurs Docker associés) de l'application fictive Apache, puis de l'application Hello World.

1. Par `CodeCatalystECSUser` exemple, passez à la console Amazon Elastic Container Service si ce n'est pas déjà fait.

1. Choisissez le cluster que vous avez créé précédemment,`codecatalyst-ecs-cluster`.

1. Dans l'onglet **Services**, choisissez **Create**.

1. Dans la page **Créer**, procédez comme suit :

   1. Conservez tous les paramètres par défaut, à l'exception de ceux listés ci-dessous.

   1. Pour **Launch type (Type de lancement)**, choisissez **FARGATE**.

   1. Sous **Définition de la tâche**, dans la liste déroulante **Famille**, sélectionnez :

      `codecatalyst-ecs-task-def`

   1. Dans le **champ Nom du service**, entrez :

      ```
      codecatalyst-ecs-service
      ```

   1. Dans la **zone Tâches souhaitées**, entrez :

      ```
      3
      ```

      Dans ce didacticiel, chaque tâche lance un conteneur Docker unique.

   1. Développez la section **Mise en réseau**.

   1. Pour **VPC**, choisissez n'importe quel VPC.

   1. Pour les **sous-réseaux**, choisissez n'importe quel sous-réseau.
**Note**  
Spécifiez un seul sous-réseau. C'est tout ce dont vous avez besoin pour ce tutoriel.
**Note**  
Si vous n'avez pas de VPC ni de sous-réseau, créez-les. Consultez les [sections Créer un VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC) et [Créer un sous-réseau dans votre VPC dans le guide de l'utilisateur *Amazon* VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet).

   1. Pour **Groupe de sécurité**, choisissez **Créer un nouveau groupe de sécurité**, puis procédez comme suit :

      1. Pour le **nom du groupe de sécurité**, entrez :

         ```
         codecatalyst-ecs-security-group
         ```

      1. Pour **la description du groupe de sécurité**, entrez :

         ```
         CodeCatalyst ECS security group
         ```

      1. Choisissez **Ajouter une règle**. Pour **Type**, choisissez **HTTP**, et pour **Source**, choisissez **Anywhere**.

   1. En bas, choisissez **Create**.

   1. Patientez pendant la création du service. Cette opération peut prendre quelques minutes.

1. Cliquez sur l'onglet **Tâches**, puis sur le bouton d'actualisation. Vérifiez que la colonne **Dernier état** des trois tâches est définie sur En **cours d'exécution**.

**(Facultatif) Pour vérifier que votre application d'espace réservé Apache est en cours d'exécution**

1. Dans l'onglet **Tâches**, choisissez l'une des trois tâches.

1. Dans le champ **IP publique**, choisissez une **adresse ouverte**.

   Une `It Works!` page apparaît. Cela indique que le service Amazon ECS a démarré avec succès une tâche qui a lancé un conteneur Docker avec l'image Apache.

   À ce stade du didacticiel, vous avez déployé manuellement une définition de cluster, de service et de tâche Amazon ECS, ainsi qu'une application d'espace réservé Apache. Tous ces éléments étant en place, vous êtes maintenant prêt à créer un flux de travail qui remplacera l'application fictive Apache par l'application Hello World du didacticiel.

## Étape 3 : créer un référentiel d'images Amazon ECR
<a name="deploy-tut-ecs-ecr"></a>

Dans cette section, vous allez créer un référentiel d'images privé dans Amazon Elastic Container Registry (Amazon ECR). Ce dépôt stocke l'image Docker du didacticiel qui remplacera l'image fictive d'Apache que vous avez déployée précédemment. 

Pour plus d'informations sur Amazon ECR, consultez le *guide de l'utilisateur d'Amazon Elastic Container Registry*.

**Pour créer un référentiel d'images dans Amazon ECR**

1. Par `CodeCatalystECSUser` exemple, dans AWS CloudShell, créez un référentiel vide dans Amazon ECR :

   ```
   aws ecr create-repository --repository-name codecatalyst-ecs-image-repo
   ```

1. Affichez les détails du référentiel Amazon ECR :

   ```
   aws ecr describe-repositories \
         --repository-names codecatalyst-ecs-image-repo
   ```

1. Notez la `“repositoryUri”:` valeur, par exemple,`111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo`.

   Vous en aurez besoin ultérieurement lors de l'ajout du référentiel à votre flux de travail. 

## Étape 4 : Création de AWS rôles
<a name="deploy-tut-ecs-build-deploy-roles"></a>

Dans cette section, vous allez créer les rôles AWS IAM dont votre CodeCatalyst flux de travail aura besoin pour fonctionner. Ces rôles sont les suivants :
+ **Rôle de création** : accorde à l'action de CodeCatalyst création (dans le flux de travail) l'autorisation d'accéder à votre AWS compte et d'écrire sur Amazon ECR et Amazon EC2.
+ **Rôle de déploiement** : accorde à l'action CodeCatalyst **Deploy to ECS** (dans le flux de travail) l'autorisation d'accéder à votre AWS compte, à Amazon ECS et à quelques autres AWS services.

Pour plus d'informations sur les rôles IAM, consultez la section Rôles [IAM dans le Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) de l'*Gestion des identités et des accès AWS utilisateur*.

**Note**  
Pour gagner du temps, vous pouvez créer un seul rôle, appelé `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle, au lieu des deux rôles répertoriés précédemment. Pour de plus amples informations, veuillez consulter [Création du **CodeCatalystWorkflowDevelopmentRole-*spaceName***rôle pour votre compte et votre espace](ipa-iam-roles.md#ipa-iam-roles-service-create). Sachez que le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle dispose d'autorisations très étendues, ce qui peut présenter un risque de sécurité. Nous vous recommandons de n'utiliser ce rôle que dans les didacticiels et les scénarios où la sécurité est moins préoccupante. Ce didacticiel part du principe que vous créez les deux rôles répertoriés précédemment.

Pour créer les rôles de génération et de déploiement, vous pouvez utiliser le AWS Management Console ou le AWS CLI.

------
#### [ AWS Management Console ]

Pour créer les rôles de génération et de déploiement, suivez la série de procédures suivante.

**Pour créer un rôle de build**

1. Créez une politique pour le rôle, comme suit :

   1. Connectez-vous à AWS.

   1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Dans le panneau de navigation, choisissez **Politiques**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Choisissez l'onglet **JSON**.

   1. Supprimez le code existant.

   1. Collez le code suivant :

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecr:*",
                      "ec2:*"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------
**Note**  
La première fois que le rôle est utilisé pour exécuter des actions de flux de travail, utilisez le caractère générique dans la déclaration de politique de ressources, puis définissez la stratégie avec le nom de la ressource une fois celle-ci disponible.  

      ```
      "Resource": "*"
      ```

   1. Choisissez **Suivant : Balises**.

   1. Choisissez **Suivant : Vérification**.

   1. Dans **Nom**, entrez :

      ```
      codecatalyst-ecs-build-policy
      ```

   1. Choisissez **Create Policy** (Créer une politique).

      Vous venez de créer une politique d'autorisation.

1. Créez le rôle de build, comme suit :

   1. Dans le volet de navigation, sélectionnez **Rôles**, puis **Créer un rôle**.

   1. Choisissez **Politique de confiance personnalisée**.

   1. Supprimez la politique de confiance personnalisée existante.

   1. Ajoutez la politique de confiance personnalisée suivante :

   1. Choisissez **Suivant**.

   1. Dans **Politiques d'autorisations**`codecatalyst-ecs-build-policy`, recherchez et cochez la case correspondante.

   1. Choisissez **Suivant**.

   1. Dans **Nom du rôle**, entrez :

      ```
      codecatalyst-ecs-build-role
      ```

   1. Pour la **description du rôle**, entrez :

      ```
      CodeCatalyst ECS build role
      ```

   1. Choisissez **Créer un rôle**.

   Vous avez maintenant créé un rôle de build avec une politique d'autorisation et une politique de confiance.

1. Obtenez l'ARN du rôle de build, comme suit :

   1. Dans le panneau de navigation, choisissez **Rôles**.

   1. Dans le champ de recherche, entrez le nom du rôle que vous venez de créer (`codecatalyst-ecs-build-role`).

   1. Choisissez le rôle dans la liste.

      La page **Résumé** du rôle apparaît.

   1. En haut, copiez la valeur **ARN**. Vous en aurez besoin ultérieurement.

**Pour créer un rôle de déploiement**

1. Créez une politique pour le rôle, comme suit :

   1. Connectez-vous à AWS.

   1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Dans le panneau de navigation, choisissez **Politiques**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Choisissez l'onglet **JSON**.

   1. Supprimez le code existant.

   1. Collez le code suivant :

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [{
          "Action":[
            "ecs:DescribeServices",
            "ecs:CreateTaskSet",
            "ecs:DeleteTaskSet",
            "ecs:ListClusters",
            "ecs:RegisterTaskDefinition",
            "ecs:UpdateServicePrimaryTaskSet",
            "ecs:UpdateService",
            "elasticloadbalancing:DescribeTargetGroups",
            "elasticloadbalancing:DescribeListeners",
            "elasticloadbalancing:ModifyListener",
            "elasticloadbalancing:DescribeRules",
            "elasticloadbalancing:ModifyRule",
            "lambda:InvokeFunction",
            "lambda:ListFunctions",
            "cloudwatch:DescribeAlarms",
            "sns:Publish",
            "sns:ListTopics", 
            "s3:GetObject",
            "s3:GetObjectVersion",
            "codedeploy:CreateApplication", 
            "codedeploy:CreateDeployment", 
            "codedeploy:CreateDeploymentGroup", 
            "codedeploy:GetApplication", 
            "codedeploy:GetDeployment", 
            "codedeploy:GetDeploymentGroup", 
            "codedeploy:ListApplications", 
            "codedeploy:ListDeploymentGroups", 
            "codedeploy:ListDeployments", 
            "codedeploy:StopDeployment", 
            "codedeploy:GetDeploymentTarget", 
            "codedeploy:ListDeploymentTargets", 
            "codedeploy:GetDeploymentConfig", 
            "codedeploy:GetApplicationRevision", 
            "codedeploy:RegisterApplicationRevision", 
            "codedeploy:BatchGetApplicationRevisions", 
            "codedeploy:BatchGetDeploymentGroups", 
            "codedeploy:BatchGetDeployments", 
            "codedeploy:BatchGetApplications", 
            "codedeploy:ListApplicationRevisions", 
            "codedeploy:ListDeploymentConfigs", 
            "codedeploy:ContinueDeployment"           
         ],
         "Resource":"*",
         "Effect":"Allow"
      },{"Action":[
            "iam:PassRole"
         ],
         "Effect":"Allow",
         "Resource":"*",
         "Condition":{"StringLike":{"iam:PassedToService":[
                  "ecs-tasks.amazonaws.com",
                  "codedeploy.amazonaws.com"
               ]
            }
         }
      }]
      }
      ```

------
**Note**  
La première fois que le rôle est utilisé pour exécuter des actions de flux de travail, utilisez le caractère générique dans la déclaration de politique de ressources. Vous pouvez ensuite définir la politique avec le nom de la ressource une fois celle-ci disponible.  

      ```
      "Resource": "*"
      ```

   1. Choisissez **Suivant : Balises**.

   1. Choisissez **Suivant : Vérification**.

   1. Dans **Nom**, entrez :

      ```
      codecatalyst-ecs-deploy-policy
      ```

   1. Choisissez **Create Policy** (Créer une politique).

      Vous venez de créer une politique d'autorisation.

1. Créez le rôle de déploiement comme suit :

   1. Dans le volet de navigation, sélectionnez **Rôles**, puis **Créer un rôle**.

   1. Choisissez **Politique de confiance personnalisée**.

   1. Supprimez la politique de confiance personnalisée existante.

   1. Ajoutez la politique de confiance personnalisée suivante :

   1. Choisissez **Suivant**.

   1. Dans **Politiques d'autorisations**`codecatalyst-ecs-deploy-policy`, recherchez et cochez la case correspondante.

   1. Choisissez **Suivant**.

   1. Dans **Nom du rôle**, entrez :

      ```
      codecatalyst-ecs-deploy-role
      ```

   1. Pour la **description du rôle**, entrez :

      ```
      CodeCatalyst ECS deploy role
      ```

   1. Choisissez **Créer un rôle**.

   Vous venez de créer un rôle de déploiement avec une politique de confiance.

1. Obtenez l'ARN du rôle de déploiement, comme suit :

   1. Dans le panneau de navigation, choisissez **Rôles**.

   1. Dans le champ de recherche, entrez le nom du rôle que vous venez de créer (`codecatalyst-ecs-deploy-role`).

   1. Choisissez le rôle dans la liste.

      La page **Résumé** du rôle apparaît.

   1. En haut, copiez la valeur **ARN**. Vous en aurez besoin ultérieurement.

------
#### [ AWS CLI ]

Pour créer les rôles de génération et de déploiement, suivez la série de procédures suivante.

**Pour créer une politique de confiance pour les deux rôles**

Comme dans `CodeCatalystECSUser` AWS CloudShell, créez un fichier de politique de confiance :

1. Créez le fichier :

   ```
   cat > codecatalyst-ecs-trust-policy.json
   ```

1. À l'invite du terminal, collez le code suivant :

1. Placez votre curseur après le dernier crochet (`}`).

1. Appuyez sur **Enter** puis **Ctrl\$1d** pour enregistrer le fichier et quitter cat.

**Pour créer la politique de construction et le rôle de construction**

1. Créez la politique de construction :

   1. Comme dans `CodeCatalystECSUser` AWS CloudShell, créez un fichier de politique de construction :

      ```
      cat > codecatalyst-ecs-build-policy.json
      ```

   1. À l'invite, entrez le code suivant :

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecr:*",
                      "ec2:*"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. Placez votre curseur après le dernier crochet (`}`).

   1. Appuyez sur **Enter** puis **Ctrl\$1d** pour enregistrer le fichier et quitter cat.

1. Ajoutez la politique de construction à AWS :

   ```
   aws iam create-policy \
       --policy-name codecatalyst-ecs-build-policy \
       --policy-document file://codecatalyst-ecs-build-policy.json
   ```

1. Dans la sortie de commande, notez la `"arn":` valeur, par exemple,`arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy`. Vous aurez besoin de cet ARN ultérieurement.

1. Créez le rôle de build et associez-y la politique de confiance :

   ```
   aws iam create-role \
         --role-name codecatalyst-ecs-build-role \
         --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
   ```

1. Associez la politique de build au rôle de build :

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-ecs-build-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy
   ```

   Where *arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy* est remplacé par l'ARN de la politique de construction que vous avez mentionnée précédemment.

1. Affichez les détails du rôle de build :

   ```
   aws iam get-role \
         --role-name codecatalyst-ecs-build-role
   ```

1. Notez la `"Arn":` valeur du rôle, par exemple`arn:aws:iam::111122223333:role/codecatalyst-ecs-build-role`. Vous aurez besoin de cet ARN ultérieurement.

**Pour créer la politique de déploiement et le rôle de déploiement**

1. Créez une politique de déploiement :

   1. Dans AWS CloudShell, créez un fichier de politique de déploiement :

      ```
      cat > codecatalyst-ecs-deploy-policy.json
      ```

   1. À l'invite, entrez le code suivant :

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [{
          "Action":[
            "ecs:DescribeServices",
            "ecs:CreateTaskSet",
            "ecs:DeleteTaskSet",
            "ecs:ListClusters",
            "ecs:RegisterTaskDefinition",
            "ecs:UpdateServicePrimaryTaskSet",
            "ecs:UpdateService",
            "elasticloadbalancing:DescribeTargetGroups",
            "elasticloadbalancing:DescribeListeners",
            "elasticloadbalancing:ModifyListener",
            "elasticloadbalancing:DescribeRules",
            "elasticloadbalancing:ModifyRule",
            "lambda:InvokeFunction",
            "lambda:ListFunctions",
            "cloudwatch:DescribeAlarms",
            "sns:Publish",
            "sns:ListTopics", 
            "s3:GetObject",
            "s3:GetObjectVersion",
            "codedeploy:CreateApplication", 
            "codedeploy:CreateDeployment", 
            "codedeploy:CreateDeploymentGroup", 
            "codedeploy:GetApplication", 
            "codedeploy:GetDeployment", 
            "codedeploy:GetDeploymentGroup", 
            "codedeploy:ListApplications", 
            "codedeploy:ListDeploymentGroups", 
            "codedeploy:ListDeployments", 
            "codedeploy:StopDeployment", 
            "codedeploy:GetDeploymentTarget", 
            "codedeploy:ListDeploymentTargets", 
            "codedeploy:GetDeploymentConfig", 
            "codedeploy:GetApplicationRevision", 
            "codedeploy:RegisterApplicationRevision", 
            "codedeploy:BatchGetApplicationRevisions", 
            "codedeploy:BatchGetDeploymentGroups", 
            "codedeploy:BatchGetDeployments", 
            "codedeploy:BatchGetApplications", 
            "codedeploy:ListApplicationRevisions", 
            "codedeploy:ListDeploymentConfigs", 
            "codedeploy:ContinueDeployment"           
         ],
         "Resource":"*",
         "Effect":"Allow"
      },{"Action":[
            "iam:PassRole"
         ],
         "Effect":"Allow",
         "Resource":"*",
         "Condition":{"StringLike":{"iam:PassedToService":[
                  "ecs-tasks.amazonaws.com",
                  "codedeploy.amazonaws.com"
               ]
            }
         }
      }]
      }
      ```

------
**Note**  
La première fois que le rôle est utilisé pour exécuter des actions de flux de travail, utilisez le caractère générique dans la déclaration de politique de ressources, puis définissez la stratégie avec le nom de la ressource une fois celle-ci disponible.  

      ```
      "Resource": "*"
      ```

   1. Placez votre curseur après le dernier crochet (`}`).

   1. Appuyez sur **Enter** puis **Ctrl\$1d** pour enregistrer le fichier et quitter cat.

1. Ajoutez la politique de déploiement à AWS :

   ```
   aws iam create-policy \
       --policy-name codecatalyst-ecs-deploy-policy \
       --policy-document file://codecatalyst-ecs-deploy-policy.json
   ```

1. Dans le résultat de la commande, notez la `"arn":` valeur de la politique de déploiement, par exemple,`arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy`. Vous aurez besoin de cet ARN ultérieurement.

1. Créez le rôle de déploiement et associez-y la politique de confiance :

   ```
   aws iam create-role \
         --role-name codecatalyst-ecs-deploy-role \
         --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
   ```

1. Attachez la politique de déploiement au rôle de déploiement, qui *arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy* est remplacé par l'ARN de la stratégie de déploiement que vous avez mentionnée précédemment.

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-ecs-deploy-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy
   ```

1. Affichez les détails du rôle de déploiement :

   ```
   aws iam get-role \
         --role-name codecatalyst-ecs-deploy-role
   ```

1. Notez la `"Arn":` valeur du rôle, par exemple`arn:aws:iam::111122223333:role/codecatalyst-ecs-deploy-role`. Vous aurez besoin de cet ARN ultérieurement.

------

## Étape 5 : Ajouter AWS des rôles à CodeCatalyst
<a name="deploy-tut-ecs-import-roles"></a>

Au cours de cette étape, vous ajoutez le rôle de création (`codecatalyst-ecs-build-role`) et le rôle de déploiement (`codecatalyst-ecs-deploy-role`) à la connexion au CodeCatalyst compte dans votre espace.

**Pour ajouter des rôles de création et de déploiement à votre compte, connectez-vous**

1. Dans CodeCatalyst, naviguez jusqu'à votre espace.

1. Choisissez **AWS des comptes**. La liste des connexions au compte s'affiche.

1. Choisissez la connexion au compte qui représente le AWS compte sur lequel vous avez créé vos rôles de création et de déploiement.

1. Choisissez **Gérer les rôles depuis AWS la console de gestion**.

   La page **Ajouter un rôle IAM à Amazon CodeCatalyst Space** s'affiche. Vous devrez peut-être vous connecter pour accéder à la page.

1. Sélectionnez **Ajouter un rôle existant que vous avez créé dans IAM**.

   Une liste déroulante apparaît. La liste affiche tous les rôles IAM dotés d'une politique de confiance qui inclut les principaux de `codecatalyst.amazonaws.com` service `codecatalyst-runner.amazonaws.com` et.

1. Dans la liste déroulante, sélectionnez`codecatalyst-ecs-build-role`, puis choisissez **Ajouter un rôle**.
**Note**  
Si vous le voyez`The security token included in the request is invalid`, c'est peut-être parce que vous ne disposez pas des autorisations appropriées. Pour résoudre ce problème, déconnectez-vous et reconnectez-vous avec le AWS compte que vous avez utilisé lors de la création de votre CodeCatalyst espace. AWS 

1. Choisissez **Ajouter un rôle IAM**, choisissez **Ajouter un rôle existant que vous avez créé dans IAM**, puis dans la liste déroulante, sélectionnez. `codecatalyst-ecs-deploy-role` Choisissez **Ajouter un rôle**.

   Vous avez maintenant ajouté les rôles de création et de déploiement à votre espace.

1. Copiez la valeur du **nom CodeCatalyst d'affichage Amazon**. Vous aurez besoin de cette valeur ultérieurement, lors de la création de votre flux de travail.

## Étape 6 : Création d'un référentiel source
<a name="deploy-tut-ecs-source-repo"></a>

Au cours de cette étape, vous créez un référentiel source dans CodeCatalyst. Ce référentiel stocke les fichiers source du didacticiel, tels que le fichier de définition des tâches.

Pour plus d'informations sur les référentiels sources, consultez[Création d'un référentiel source](source-repositories-create.md).

**Pour créer un référentiel source**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Accédez à votre projet,`codecatalyst-ecs-project`.

1. Dans le volet de navigation, choisissez **Code**, puis sélectionnez **Référentiels sources**. 

1. Choisissez **Ajouter un référentiel**, puis sélectionnez **Créer un référentiel**.

1. Dans **Nom du référentiel**, entrez :

   ```
   codecatalyst-ecs-source-repository
   ```

1. Choisissez **Créer**.

## Étape 7 : Ajouter des fichiers source
<a name="deploy-tut-ecs-source-files"></a>

Dans cette section, vous allez ajouter les fichiers source de Hello World à votre CodeCatalyst dépôt,`codecatalyst-ecs-source-repository`. Ils sont composés de :
+ Un `index.html` fichier — Affiche un message Hello World dans le navigateur. 
+ Un Dockerfile — Décrit l'image de base à utiliser pour votre image Docker et les commandes Docker à appliquer à celle-ci. 
+ Un `taskdef.json` fichier : définit l'image Docker à utiliser lors du lancement de tâches dans votre cluster.

La structure des dossiers est la suivante :

```
.
|— public-html
|  |— index.html
|— Dockerfile
|— taskdef.json
```

**Note**  
Les instructions suivantes vous montrent comment ajouter les fichiers à l'aide de la CodeCatalyst console, mais vous pouvez utiliser Git si vous préférez. Pour en savoir plus, consultez [Clonage d’un référentiel source](source-repositories-clone.md). 

**Topics**
+ [index.html](#deploy-tut-ecs-source-files-index)
+ [Dockerfile](#deploy-tut-ecs-source-files-dockerfile)
+ [taskdef.json](#deploy-tut-ecs-source-files-taskdef)

### index.html
<a name="deploy-tut-ecs-source-files-index"></a>

Le `index.html` fichier affiche un message Hello World dans le navigateur. 

**Pour ajouter le fichier index.html**

1. Dans la CodeCatalyst console, accédez à votre référentiel source,`codecatalyst-ecs-source-repository`.

1. Dans **Fichiers**, choisissez **Créer un fichier**.

1. Dans le **champ Nom du fichier**, entrez :

   ```
   public-html/index.html
   ```
**Important**  
Assurez-vous d'inclure le `public-html/` préfixe pour créer un dossier du même nom. Le devrait `index.html` se trouver dans ce dossier.

1. Dans la zone de texte, entrez le code suivant :

   ```
   <html>
     <head>
       <title>Hello World</title>
       <style>
         body {
         background-color: black;
         text-align: center;
         color: white;
         font-family: Arial, Helvetica, sans-serif;
         }  
       </style>
     </head>
     <body>
       <h1>Hello World</h1>
     </body>
   </html>
   ```

1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

   Le `index.html` est ajouté à votre dépôt dans un `public-html` dossier. 

### Dockerfile
<a name="deploy-tut-ecs-source-files-dockerfile"></a>

Le Dockerfile décrit l'image Docker de base à utiliser et les commandes Docker à lui appliquer. Pour plus d'informations sur le Dockerfile, consultez le [Dockerfile](https://docs.docker.com/engine/reference/builder/) Reference.

Le Dockerfile spécifié ici indique d'utiliser l'image de base d'Apache 2.4 ()`httpd`. Il inclut également des instructions pour copier un fichier source appelé `index.html` dans un dossier du serveur Apache qui sert aux pages Web. L'`EXPOSE`instruction du Dockerfile indique à Docker que le conteneur écoute sur le port 80.

**Pour ajouter le Dockerfile**

1. Dans votre référentiel source, choisissez **Créer un fichier**.

1. Dans le **champ Nom du fichier**, entrez :

   ```
   Dockerfile
   ```

   N'incluez pas d'extension de fichier.
**Important**  
Le Dockerfile doit résider dans le dossier racine de votre dépôt. La `Docker build` commande du flux de travail s'attend à ce qu'il soit présent.

1. Dans la zone de texte, entrez le code suivant :

   ```
   FROM httpd:2.4
   COPY ./public-html/index.html /usr/local/apache2/htdocs/index.html
   EXPOSE 80
   ```

1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

   Le Dockerfile est ajouté à votre dépôt. 

### taskdef.json
<a name="deploy-tut-ecs-source-files-taskdef"></a>

Le `taskdef.json` fichier que vous ajoutez à cette étape est le même que celui que vous avez déjà spécifié [Étape 2 : Déployer une application fictive dans Amazon ECS](#deploy-tut-ecs-placeholder) avec la différence suivante :

Au lieu de spécifier un nom d'image Docker codé en dur dans le `image:` champ (`httpd:2.4`), la définition de la tâche utilise ici quelques variables pour désigner l'image : et. `$REPOSITORY_URI` `$IMAGE_TAG` Ces variables seront remplacées par des valeurs réelles générées par l'action de création du flux de travail lorsque vous exécuterez le flux de travail lors d'une étape ultérieure.

Pour plus de détails sur les paramètres de définition des tâches, consultez la section [Paramètres de définition des tâches](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) dans le manuel *Amazon Elastic Container Service Developer Guide*.

**Pour ajouter le fichier taskdef.json**

1. Dans votre référentiel source, choisissez **Créer un fichier**.

1. Dans le **champ Nom du fichier**, entrez :

   ```
   taskdef.json
   ```

1. Dans la zone de texte, entrez le code suivant :

   ```
   {
       "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role",
       "containerDefinitions": [
           {
               "name": "codecatalyst-ecs-container",
               # The $REPOSITORY_URI and $IMAGE_TAG variables will be replaced 
               # by the workflow at build time (see the build action in the 
               # workflow)
               "image": $REPOSITORY_URI:$IMAGE_TAG,
               "essential": true,
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ]
           }
       ],
       "requiresCompatibilities": [
           "FARGATE"
       ],
       "networkMode": "awsvpc",
       "cpu": "256",
       "memory": "512",
       "family": "codecatalyst-ecs-task-def"
   }
   ```

   Dans le code précédent, remplacez

   *arn:aws:iam::account\$1ID:role/codecatalyst-ecs-task-execution-role*

   avec l'ARN du rôle d'exécution de tâche que vous avez noté dans[Pour créer le rôle d'exécution des tâches](#deploy-tut-ecs-create-task-execution-role).

1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

   Le `taskdef.json` fichier est ajouté à votre dépôt. 

## Étape 8 : créer et exécuter un flux de travail
<a name="deploy-tut-ecs-workflow"></a>

Au cours de cette étape, vous créez un flux de travail qui prend vos fichiers source, les intègre dans une image Docker, puis déploie l'image sur votre cluster Amazon ECS. Ce déploiement remplace l'application fictive Apache existante.

Le flux de travail comprend les éléments de base suivants qui s'exécutent de manière séquentielle :
+ Un déclencheur : ce déclencheur lance automatiquement l'exécution du flux de travail lorsque vous apportez une modification à votre référentiel source. Pour plus d'informations sur les déclencheurs, consultez [Démarrage d'un flux de travail exécuté automatiquement à l'aide de déclencheurs](workflows-add-trigger.md).
+ Une action de génération (`BuildBackend`) — Au déclenchement, l'action crée l'image Docker à l'aide du Dockerfile et envoie l'image vers Amazon ECR. L'action de génération met également à jour le `taskdef.json` avec la valeur de `image` champ correcte, puis crée un artefact de sortie de ce fichier. Cet artefact est utilisé comme entrée pour l'action de déploiement, qui est la suivante.

  Pour plus d'informations sur l'action de génération, consultez[Construire avec des flux de travail](build-workflow-actions.md).
+ Une action de déploiement (`DeployToECS`) : une fois l'action de création terminée, l'action de déploiement recherche l'artefact de sortie généré par l'action de génération (`TaskDefArtifact`), en trouve l'`taskdef.json`intérieur et l'enregistre auprès de votre service Amazon ECS. Le service suit ensuite les instructions du `taskdef.json` fichier pour exécuter trois tâches Amazon ECS et les conteneurs Hello World Docker associés au sein de votre cluster Amazon ECS. 

**Pour créer un flux de travail**

1. **Dans le volet de navigation de la CodeCatalyst console, choisissez **CI/CD**, puis Workflows.**

1. Choisissez **Créer un flux de travail**.

1. Pour **Référentiel source**, choisissez`codecatalyst-ecs-source-repository`.

1. Pour **Branch**, choisissez`main`.

1. Choisissez **Créer**.

1. Supprimez l'exemple de code YAML.

1. Ajoutez le code YAML suivant :
**Note**  
Dans le code YAML qui suit, vous pouvez omettre les `Connections:` sections si vous le souhaitez. Si vous omettez ces sections, vous devez vous assurer que le rôle spécifié dans le champ **Rôle IAM par défaut** de votre environnement inclut les autorisations et les politiques de confiance des deux rôles décrits dans. [Étape 5 : Ajouter AWS des rôles à CodeCatalyst](#deploy-tut-ecs-import-roles) Pour plus d'informations sur la configuration d'un environnement doté d'un rôle IAM par défaut, consultez[Création d'un environnement](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-ecs-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     BuildBackend:
       Identifier: aws/build@v1
       Environment:
         Name: codecatalyst-ecs-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-ecs-build-role
       Inputs:
         Sources:
           - WorkflowSource
         Variables:
           - Name: REPOSITORY_URI
             Value: 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo
           - Name: IMAGE_TAG
             Value: ${WorkflowSource.CommitId}
       Configuration:
         Steps:
           #pre_build:
           - Run: echo Logging in to Amazon ECR...
           - Run: aws --version
           - Run: aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-2.amazonaws.com
           #build:
           - Run: echo Build started on `date`
           - Run: echo Building the Docker image...
           - Run: docker build -t $REPOSITORY_URI:latest .
           - Run: docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
           #post_build:
           - Run: echo Build completed on `date`
           - Run: echo Pushing the Docker images...
           - Run: docker push $REPOSITORY_URI:latest
           - Run: docker push $REPOSITORY_URI:$IMAGE_TAG
           # Replace the variables in taskdef.json
           - Run: find taskdef.json -type f | xargs sed -i "s|\$REPOSITORY_URI|$REPOSITORY_URI|g"
           - Run: find taskdef.json -type f | xargs sed -i "s|\$IMAGE_TAG|$IMAGE_TAG|g"
           - Run: cat taskdef.json
           # The output artifact will be a zip file that contains a task definition file.
       Outputs:
         Artifacts:
           - Name: TaskDefArtifact
             Files: 
               - taskdef.json
     DeployToECS:
       DependsOn: 
         - BuildBackend
       Identifier: aws/ecs-deploy@v1
       Environment:
         Name: codecatalyst-ecs-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-ecs-deploy-role
       Inputs:
         Sources: []
         Artifacts:
           - TaskDefArtifact
       Configuration:
         region: us-west-2
         cluster: codecatalyst-ecs-cluster
         service: codecatalyst-ecs-service
         task-definition: taskdef.json
   ```

   Dans le code précédent, remplacez :
   + Les deux instances portent *codecatalyst-ecs-environment* le nom de l'environnement dans lequel vous l'avez créé[Conditions préalables](#deploy-tut-ecs-prereqs).
   + Dans les deux cas, *codecatalyst-account-connection* avec le nom d'affichage de la connexion à votre compte. Le nom d'affichage peut être un chiffre. Pour de plus amples informations, veuillez consulter [Étape 5 : Ajouter AWS des rôles à CodeCatalyst](#deploy-tut-ecs-import-roles).
   + *codecatalyst-ecs-build-role*avec le nom du rôle de build que vous avez créé dans[Étape 4 : Création de AWS rôles](#deploy-tut-ecs-build-deploy-roles).
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo*(dans la `Value:` propriété) avec l'URI du référentiel Amazon ECR dans [Étape 3 : créer un référentiel d'images Amazon ECR](#deploy-tut-ecs-ecr) lequel vous l'avez créé.
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com*(dans la `Run: aws ecr` commande) avec l'URI du référentiel Amazon ECR sans le suffixe d'image ()`/codecatalyst-ecs-image-repo`.
   + *codecatalyst-ecs-deploy-role*avec le nom du rôle de déploiement que vous avez créé dans[Étape 4 : Création de AWS rôles](#deploy-tut-ecs-build-deploy-roles).
   + Dans les deux cas, *us-west-2* avec votre code de AWS région. Pour obtenir la liste des codes de région, consultez la section [Points de terminaison régionaux](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) dans le *Références générales AWS*.
**Note**  
Si vous avez décidé de ne pas créer de rôles de création et de déploiement, remplacez *codecatalyst-ecs-build-role* et *codecatalyst-ecs-deploy-role* par le nom du `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle. Pour plus d’informations sur ce rôle, consultez [Étape 4 : Création de AWS rôles](#deploy-tut-ecs-build-deploy-roles).
**Astuce**  
Au lieu d'utiliser les `sed` commandes `find` et indiquées dans le code de flux de travail précédent pour mettre à jour le référentiel et le nom de l'image, vous pouvez utiliser l'action de **définition de tâche Render Amazon ECS** à cette fin. Pour de plus amples informations, veuillez consulter [Modification d'une définition de tâche Amazon ECS](render-ecs-action.md).

1. (Facultatif) Choisissez **Valider** pour vous assurer que le code YAML est valide avant de valider.

1. Choisissez **Commit (Valider)**.

1. Dans la boîte de dialogue du **flux de travail de validation**, entrez les informations suivantes :

   1. Pour le **message de validation**, supprimez le texte et entrez :

      ```
      Add first workflow
      ```

   1. Pour **Repository**, choisissez`codecatalyst-ecs-source-repository`.

   1. Pour **Nom de la branche**, choisissez main.

   1. Choisissez **Commit (Valider)**.

   Vous venez de créer un flux de travail. L'exécution d'un flux de travail démarre automatiquement en raison du déclencheur défini en haut du flux de travail. Plus précisément, lorsque vous avez validé (et transféré) le `workflow.yaml` fichier dans votre référentiel source, le déclencheur a lancé l'exécution du flux de travail.

**Pour consulter la progression de l'exécution du flux de travail**

1. **Dans le volet de navigation de la CodeCatalyst console, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le flux de travail que vous venez de créer,`codecatalyst-ecs-workflow`.

1. Choisissez **BuildBackend**de voir la progression de la construction.

1. Choisissez **DeployToECS** pour voir la progression du déploiement.

   Pour plus d'informations sur l'affichage des détails des exécutions, consultez[Afficher le statut et les détails de l'exécution du flux de travail](workflows-view-run.md).

**Pour vérifier le déploiement**

1. Ouvrez la console Amazon ECS Classic à l'adresse [https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/).

1. Choisissez votre cluster,`codecatalyst-ecs-cluster`.

1. Choisissez l'onglet **Tasks.** 

1. Choisissez l'une des trois tâches.

1. Dans le champ **IP publique**, choisissez une **adresse ouverte**.

   Une page « Hello World » apparaît dans le navigateur, indiquant que le service Amazon ECS a correctement déployé votre application.

## Étape 9 : Apportez une modification à vos fichiers source
<a name="deploy-tut-ecs-change"></a>

Dans cette section, vous allez modifier le `index.html` fichier dans votre référentiel source. Cette modification oblige le flux de travail à créer une nouvelle image Docker, à l'étiqueter avec un ID de validation, à la transmettre à Amazon ECR et à la déployer sur Amazon ECS. 

**Pour modifier le fichier index.html**

1. Dans la CodeCatalyst console, dans le volet de navigation, choisissez **Code**, puis **Référentiels sources**, puis choisissez votre référentiel,`codecatalyst-ecs-source-repository`.

1. Choisissez `public-html` et `index.html`.

   Le contenu de `index.html` apparaît.

1. Choisissez **Modifier**. 

1. À la ligne 14, remplacez le `Hello World` texte par`Tutorial complete!`.

1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

   La validation entraîne le démarrage d'un nouveau flux de travail. 

1. (Facultatif) Accédez à la page principale de votre dépôt source, choisissez **Afficher les validations**, puis notez l'ID de validation associé à la `index.html` modification.

1. Suivez la progression du déploiement :

   1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

   1. Choisissez `codecatalyst-ecs-workflow` d'afficher la dernière édition.

   1. Choisissez **BuildBackend**, et **DeployToECS** pour voir la progression de l'exécution du flux de travail.

1. Vérifiez que votre application a été mise à jour, comme suit :

   1. Ouvrez la console Amazon ECS Classic à l'adresse [https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/).

   1. Choisissez votre cluster,`codecatalyst-ecs-cluster`.

   1. Choisissez l'onglet **Tasks.** 

   1. Choisissez l'une des trois tâches.

   1. Dans le champ **IP publique**, choisissez une **adresse ouverte**.

      Une `Tutorial complete!` page apparaît.

1. (Facultatif) Dans AWS, passez à la console Amazon ECR et vérifiez que la nouvelle image Docker a été étiquetée avec l'ID de validation indiqué à l'étape 6.

## Nettoyage
<a name="deploy-tut-ecs-cleanup"></a>

Nettoyez les fichiers et les services utilisés dans ce didacticiel pour éviter de vous les faire facturer.

Dans le AWS Management Console, nettoyez dans cet ordre :

1. Dans Amazon ECS, procédez comme suit :

   1. Supprimer`codecatalyst-ecs-service`.

   1. Supprimer`codecatalyst-ecs-cluster`.

   1. Désenregistrer`codecatalyst-ecs-task-definition`.

1. Dans Amazon ECR, supprimez`codecatalyst-ecs-image-repo`.

1. Dans Amazon EC2, supprimez. `codecatalyst-ecs-security-group`

1. Dans IAM Identity Center, supprimez :

   1. `CodeCatalystECSUser`

   1. `CodeCatalystECSPermissionSet`

Dans la CodeCatalyst console, nettoyez comme suit :

1. Supprimer`codecatalyst-ecs-workflow`.

1. Supprimer`codecatalyst-ecs-environment`.

1. Supprimer`codecatalyst-ecs-source-repository`.

1. Supprimer`codecatalyst-ecs-project`.

Dans ce didacticiel, vous avez appris à déployer une application sur un service Amazon ECS à l'aide d'un CodeCatalyst flux de travail et d'une action **Deploy to Amazon ECS**.

# Ajout de l'action « Déployer sur Amazon ECS »
<a name="deploy-action-ecs-adding"></a>

Suivez les instructions suivantes pour ajouter l'action **Deploy to Amazon ECS** à votre flux de travail. 

------
#### [ Visual ]

**Pour ajouter l'action « Déployer sur Amazon ECS » à l'aide de l'éditeur visuel**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **Visual**.

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action **Deploy to Amazon ECS**, puis effectuez l'une des opérations suivantes :
   + Choisissez le signe plus (**\$1**) pour ajouter l'action au diagramme de flux de travail et ouvrir son volet de configuration.

     Or
   + Choisissez **Deploy to Amazon ECS**. La boîte de dialogue des détails de l'action apparaît. Dans cette boîte de dialogue :
     + (Facultatif) Choisissez **Télécharger** pour [afficher le code source de l'action](workflows-view-source.md#workflows-view-source.title).
     + Choisissez **Ajouter au flux de travail** pour ajouter l'action au diagramme du flux de travail et ouvrir son volet de configuration.

1. Dans les onglets **Entrées** et **Configuration**, complétez les champs en fonction de vos besoins. Pour obtenir une description de chaque champ, consultez le[Action YAML « Déployer sur Amazon ECS »](deploy-action-ref-ecs.md). Cette référence fournit des informations détaillées sur chaque champ (et la valeur de propriété YAML correspondante) tel qu'il apparaît dans les éditeurs YAML et visuels.

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------
#### [ YAML ]

**Pour ajouter l'action « Déployer sur Amazon ECS » à l'aide de l'éditeur YAML**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action **Deploy to Amazon ECS**, puis effectuez l'une des opérations suivantes :
   + Choisissez le signe plus (**\$1**) pour ajouter l'action au diagramme de flux de travail et ouvrir son volet de configuration.

     Or
   + Choisissez **Deploy to Amazon ECS**. La boîte de dialogue des détails de l'action apparaît. Dans cette boîte de dialogue :
     + (Facultatif) Choisissez **Télécharger** pour [afficher le code source de l'action](workflows-view-source.md#workflows-view-source.title).
     + Choisissez **Ajouter au flux de travail** pour ajouter l'action au diagramme du flux de travail et ouvrir son volet de configuration.

1. Modifiez les propriétés du code YAML en fonction de vos besoins. Une explication de chaque propriété disponible est fournie dans le[Action YAML « Déployer sur Amazon ECS »](deploy-action-ref-ecs.md).

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------

# Variables « Déployer sur Amazon ECS »
<a name="deploy-action-ecs-variables"></a>

L'action **Deploy to Amazon ECS** produit et définit les variables suivantes au moment de l'exécution. Ces variables sont connues sous le nom de *variables prédéfinies*.

Pour plus d'informations sur le référencement de ces variables dans un flux de travail, consultez[Utilisation de variables prédéfinies](workflows-using-predefined-variables.md).


| Clé | Valeur | 
| --- | --- | 
|  cluster  |  Nom du cluster Amazon ECS sur lequel le flux de travail a été déployé lors de l'exécution du flux de travail. Exemple : `codecatalyst-ecs-cluster`  | 
|  plate-forme-de-déploiement  |  Nom de la plateforme de déploiement. Codé en dur pour. `AWS:ECS`  | 
|  web  |  Nom du service Amazon ECS qui a été déployé lors de l'exécution du flux de travail. Exemple : `codecatalyst-ecs-service`  | 
|  task-definition-arn  |  Le nom de ressource Amazon (ARN) de la définition de tâche enregistrée lors de l'exécution du flux de travail. Exemple : `arn:aws:ecs:us-west-2:111122223333:task-definition/codecatalyst-task-def:8`L'`:8`exemple précédent indique la révision qui a été enregistrée.  | 
|  URL de déploiement  |  Lien vers l'onglet **Events** de la console Amazon ECS, où vous pouvez consulter les détails du déploiement Amazon ECS associé au flux de travail exécuté. Exemple : `https://console.aws.amazon.com/ecs/home?region=us-west-2#/clusters/codecatalyst-ecs-cluster/services/codecatalyst-ecs-service/events`  | 
|  region  |  Le code de région du Région AWS qui a été déployé lors de l'exécution du flux de travail. Exemple : `us-west-2`  | 

# Action YAML « Déployer sur Amazon ECS »
<a name="deploy-action-ref-ecs"></a>

Voici la définition YAML de l'action **Deploy to Amazon ECS**. Pour savoir comment utiliser cette action, consultez[Déploiement sur Amazon ECS à l'aide d'un flux de travail](deploy-action-ecs.md).

Cette définition d'action existe sous la forme d'une section au sein d'un fichier de définition de flux de travail plus large. Pour plus d’informations sur ce fichier, consultez [Définition du flux de travail YAML](workflow-reference.md).

**Note**  
La plupart des propriétés YAML suivantes ont des éléments d'interface utilisateur correspondants dans l'éditeur visuel. Pour rechercher un élément de l'interface utilisateur, utilisez **Ctrl\$1F**. L'élément sera répertorié avec sa propriété YAML associée.

```
# The workflow definition starts here.
# See Propriétés de haut niveau for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  ECSDeployAction\$1nn: 
    Identifier: aws/ecs-deploy@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - task-definition-artifact
    Configuration: 
      region: us-east-1 
      cluster: ecs-cluster
      service: ecs-service
      task-definition: task-definition-path
      force-new-deployment: false|true
      codedeploy-appspec: app-spec-file-path
      codedeploy-application: application-name
      codedeploy-deployment-group: deployment-group-name
      codedeploy-deployment-description: deployment-description
```

## ECSDeployAction
<a name="deploy.action.ecs.name"></a>

(Obligatoire)

Spécifiez le nom de l'action. Tous les noms d'action doivent être uniques dans le flux de travail. Les noms d'action sont limités aux caractères alphanumériques (a-z, A-Z, 0-9), aux tirets (-) et aux traits de soulignement (\$1). Les espaces ne sont pas autorisés. Vous ne pouvez pas utiliser de guillemets pour activer les caractères spéciaux et les espaces dans les noms d'action.

Valeur par défaut : `ECSDeployAction_nn`.

Interface utilisateur correspondante : onglet Configuration/nom **d'affichage de l'action**

## Identifier
<a name="deploy.action.ecs.identifier"></a>

(*ECSDeployAction*/**Identifier**)

(Obligatoire)

Identifie l'action. Ne modifiez pas cette propriété, sauf si vous souhaitez modifier la version. Pour de plus amples informations, veuillez consulter [Spécification de la version de l'action à utiliser](workflows-action-versions.md).

Valeur par défaut : `aws/ecs-deploy@v1`.

**Interface utilisateur correspondante : diagramme de flux de ECSDeploy travail/Action\$1NN/ aws/ecs-deploy @v1 label**

## DependsOn
<a name="deploy.action.ecs.dependson"></a>

(*ECSDeployAction*/**DependsOn**)

(Facultatif)

Spécifiez une action, un groupe d'actions ou une porte qui doit s'exécuter correctement pour que cette action soit exécutée.

Pour plus d'informations sur la fonctionnalité « dépend », consultez. [Actions de séquençage](workflows-depends-on.md)

Interface utilisateur correspondante : onglet **Entrées/dépend de - facultatif**

## Compute
<a name="deploy.action.ecs.computename"></a>

(*ECSDeployAction*/**Compute**)

(Facultatif)

Le moteur informatique utilisé pour exécuter les actions de votre flux de travail. Vous pouvez spécifier le calcul au niveau du flux de travail ou au niveau de l'action, mais pas les deux. Lorsqu'elle est spécifiée au niveau du flux de travail, la configuration de calcul s'applique à toutes les actions définies dans le flux de travail. Au niveau du flux de travail, vous pouvez également exécuter plusieurs actions sur la même instance. Pour de plus amples informations, veuillez consulter [Partage du calcul entre les actions](compute-sharing.md).

Interface utilisateur correspondante : *aucune*

## Type
<a name="deploy.action.ecs.computetype"></a>

(*ECSDeployAction*/Compute/**Type**)

(Obligatoire s'[Compute](#deploy.action.ecs.computename)il est inclus)

Type de moteur de calcul. Vous pouvez utiliser l'une des valeurs suivantes :
+ **EC2** (éditeur visuel) ou `EC2` (éditeur YAML)

  Optimisé pour la flexibilité lors des courses d'action.
+ **Lambda** (éditeur visuel) ou `Lambda` (éditeur YAML)

  Vitesses de démarrage des actions optimisées.

Pour plus d’informations sur les types de calcul, consultez [Types de calcul](workflows-working-compute.md#compute.types).

**Interface utilisateur correspondante : Configuration tab/Advanced - optionnel/ Type de calcul**

## Fleet
<a name="deploy.action.ecs.computefleet"></a>

(*ECSDeployAction*/Compute/**Fleet**)

(Facultatif)

Spécifiez la machine ou le parc qui exécutera votre flux de travail ou vos actions de flux de travail. Dans le cas des flottes à la demande, lorsqu'une action démarre, le flux de travail fournit les ressources dont il a besoin et les machines sont détruites à la fin de l'action. Exemples de flottes à la demande :`Linux.x86-64.Large`,`Linux.x86-64.XLarge`. Pour plus d'informations sur les flottes à la demande, consultez[Propriétés de la flotte à la demande](workflows-working-compute.md#compute.on-demand).

Avec les flottes provisionnées, vous configurez un ensemble de machines dédiées pour exécuter les actions de votre flux de travail. Ces machines restent inactives, prêtes à exécuter des actions immédiatement. Pour plus d'informations sur les flottes provisionnées, consultez. [Propriétés de la flotte de véhicules provisionnée](workflows-working-compute.md#compute.provisioned-fleets)

S'il `Fleet` est omis, la valeur par défaut est`Linux.x86-64.Large`.

**Interface utilisateur correspondante : Configuration tab/Advanced - optionnel/ Parc de calcul**

## Timeout
<a name="deploy.action.ecs.timeout"></a>

(*ECSDeployAction*/**Timeout**)

(Facultatif)

Spécifiez la durée en minutes (éditeur YAML) ou en heures et minutes (éditeur visuel) pendant laquelle l'action peut être exécutée avant la CodeCatalyst fin de l'action. Le minimum est de 5 minutes et le maximum est décrit dans[Quotas pour les flux de travail dans CodeCatalyst](workflows-quotas.md). Le délai d'expiration par défaut est le même que le délai d'expiration maximal.

Interface utilisateur correspondante : onglet **Configuration/Délai d'expiration - facultatif**

## Environment
<a name="deploy.action.ecs.environment"></a>

(*ECSDeployAction*/**Environment**)

(Obligatoire)

Spécifiez l' CodeCatalyst environnement à utiliser avec l'action. L'action se connecte au Compte AWS VPC Amazon facultatif spécifié dans l'environnement choisi. L'action utilise le rôle IAM par défaut spécifié dans l'environnement pour se connecter au Compte AWS, et utilise le rôle IAM spécifié dans la [connexion Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) pour se connecter à Amazon VPC.

**Note**  
Si le rôle IAM par défaut ne dispose pas des autorisations requises par l'action, vous pouvez configurer l'action pour utiliser un autre rôle. Pour de plus amples informations, veuillez consulter [Modifier le rôle IAM d'une action](deploy-environments-switch-role.md).

Pour plus d'informations sur les environnements, reportez-vous [Déploiement dans Comptes AWS et VPCs](deploy-environments.md) aux sections et[Création d'un environnement](deploy-environments-creating-environment.md).

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Name
<a name="deploy.action.ecs.environment.name"></a>

(*ECSDeployAction*/Environment/**Name**)

(Obligatoire s'[Environment](#deploy.action.ecs.environment)il est inclus)

Spécifiez le nom de l'environnement existant que vous souhaitez associer à l'action.

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Connections
<a name="deploy.action.ecs.environment.connections"></a>

(*ECSDeployAction*/Environment/**Connections**)

(Facultatif dans les nouvelles versions de l'action ; obligatoire dans les anciennes versions)

Spécifiez la connexion au compte à associer à l'action. Vous pouvez spécifier un maximum d'une connexion à un compte sous`Environment`.

Si vous ne spécifiez pas de connexion au compte :
+ L'action utilise la Compte AWS connexion et le rôle IAM par défaut spécifiés dans l'environnement de la CodeCatalyst console. Pour plus d'informations sur l'ajout d'une connexion à un compte et d'un rôle IAM par défaut dans l'environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).
+ Le rôle IAM par défaut doit inclure les politiques et les autorisations requises par l'action. Pour déterminer quelles sont ces politiques et autorisations, consultez la description de la propriété **Role** dans la documentation de définition YAML de l'action.

Pour plus d'informations sur les connexions aux comptes, consultez[Permettre l'accès aux AWS ressources avec Connected Comptes AWS](ipa-connect-account.md). Pour plus d'informations sur l'ajout d'une connexion de compte à un environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Name
<a name="deploy.action.ecs.environment.connections.name"></a>

(*ECSDeployAction*/Environment/Connections/**Name**)

(Obligatoire s'[Connections](#deploy.action.ecs.environment.connections)il est inclus)

Spécifiez le nom de la connexion au compte.

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Role
<a name="deploy.action.ecs.environment.connections.role"></a>

(*ECSDeployAction*/Environment/Connections/**Role**)

(Obligatoire s'[Connections](#deploy.action.ecs.environment.connections)il est inclus)

Spécifiez le nom du rôle IAM auquel l'action **Deploy to Amazon ECS** permet d'accéder AWS. Assurez-vous que vous avez [ajouté le rôle à votre CodeCatalyst espace](ipa-connect-account-addroles.md) et qu'il inclut les politiques suivantes.

Si vous ne spécifiez aucun rôle IAM, l'action utilise le rôle IAM par défaut répertorié dans l'[environnement](deploy-environments.md) de la console. CodeCatalyst Si vous utilisez le rôle par défaut dans l'environnement, assurez-vous qu'il est conforme aux politiques suivantes.
+ La politique d'autorisation suivante :
**Avertissement**  
Limitez les autorisations à celles indiquées dans la politique suivante. L'utilisation d'un rôle doté d'autorisations plus étendues peut présenter un risque de sécurité.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
      "Action":[
        "ecs:DescribeServices",
        "ecs:CreateTaskSet",
        "ecs:DeleteTaskSet",
        "ecs:ListClusters",
        "ecs:RegisterTaskDefinition",
        "ecs:UpdateServicePrimaryTaskSet",
        "ecs:UpdateService",
        "elasticloadbalancing:DescribeTargetGroups",
        "elasticloadbalancing:DescribeListeners",
        "elasticloadbalancing:ModifyListener",
        "elasticloadbalancing:DescribeRules",
        "elasticloadbalancing:ModifyRule",
        "lambda:InvokeFunction",
        "lambda:ListFunctions",
        "cloudwatch:DescribeAlarms",
        "sns:Publish",
        "sns:ListTopics", 
        "s3:GetObject",
        "s3:GetObjectVersion",
        "codedeploy:CreateApplication", 
        "codedeploy:CreateDeployment", 
        "codedeploy:CreateDeploymentGroup", 
        "codedeploy:GetApplication", 
        "codedeploy:GetDeployment", 
        "codedeploy:GetDeploymentGroup", 
        "codedeploy:ListApplications", 
        "codedeploy:ListDeploymentGroups", 
        "codedeploy:ListDeployments", 
        "codedeploy:StopDeployment", 
        "codedeploy:GetDeploymentTarget", 
        "codedeploy:ListDeploymentTargets", 
        "codedeploy:GetDeploymentConfig", 
        "codedeploy:GetApplicationRevision", 
        "codedeploy:RegisterApplicationRevision", 
        "codedeploy:BatchGetApplicationRevisions", 
        "codedeploy:BatchGetDeploymentGroups", 
        "codedeploy:BatchGetDeployments", 
        "codedeploy:BatchGetApplications", 
        "codedeploy:ListApplicationRevisions", 
        "codedeploy:ListDeploymentConfigs", 
        "codedeploy:ContinueDeployment"           
     ],
     "Resource":"*",
     "Effect":"Allow"
  },{"Action":[
        "iam:PassRole"
     ],
     "Effect":"Allow",
     "Resource":"*",
     "Condition":{"StringLike":{"iam:PassedToService":[
              "ecs-tasks.amazonaws.com",
              "codedeploy.amazonaws.com"
           ]
        }
     }
  }]
  }
  ```

------
**Note**  
La première fois que le rôle est utilisé, utilisez le caractère générique suivant dans la déclaration de politique de ressources, puis délimitez la politique avec le nom de la ressource une fois celle-ci disponible.  

  ```
  "Resource": "*"
  ```
+ La politique de confiance personnalisée suivante :

**Note**  
Vous pouvez utiliser le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle avec cette action, si vous le souhaitez. Pour plus d’informations sur ce rôle, consultez [Création du **CodeCatalystWorkflowDevelopmentRole-*spaceName***rôle pour votre compte et votre espace](ipa-iam-roles.md#ipa-iam-roles-service-create). Sachez que le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle dispose d'autorisations d'accès complètes, ce qui peut présenter un risque de sécurité. Nous vous recommandons de n'utiliser ce rôle que dans les didacticiels et les scénarios où la sécurité est moins préoccupante. 

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' '/ Rôle Environment/account/role**

## Inputs
<a name="deploy.action.ecs.inputs"></a>

(*ECSDeployAction*/**Inputs**)

(Facultatif)

La `Inputs` section définit les données dont ils ont `ECSDeployAction` besoin lors de l'exécution d'un flux de travail.

**Note**  
Une seule entrée (source ou artefact) est autorisée par action **Deploy to Amazon ECS**.

Interface utilisateur correspondante : onglet **Entrées**

## Sources
<a name="deploy.action.ecs.inputs.sources"></a>

(*ECSDeployAction*/Inputs/**Sources**)

(Obligatoire si votre fichier de définition de tâche est stocké dans un référentiel source)

Si votre fichier de définition de tâche est stocké dans un référentiel source, spécifiez l'étiquette de ce référentiel source. Actuellement, la seule étiquette prise en charge est`WorkflowSource`.

Si votre fichier de définition de tâche n'est pas contenu dans un référentiel source, il doit résider dans un artefact généré par une autre action.

Pour plus d'informations sur les sources, consultez [Connecter les référentiels sources aux flux de travail](workflows-sources.md).

Interface utilisateur correspondante : onglet **Entrées/Sources - facultatif**

## Artifacts - input
<a name="deploy.action.ecs.inputs.artifacts"></a>

(*ECSDeployAction*/Inputs/**Artifacts**)

(Obligatoire si votre fichier de définition de tâche est stocké dans un [artefact de sortie](workflows-working-artifacts-output.md) d'une action précédente)

Si le fichier de définition de tâche que vous souhaitez déployer est contenu dans un artefact généré par une action précédente, spécifiez cet artefact ici. Si votre fichier de définition de tâche n'est pas contenu dans un artefact, il doit résider dans votre référentiel source.

Pour plus d'informations sur les artefacts, y compris des exemples, consultez[Partage d'artefacts et de fichiers entre les actions](workflows-working-artifacts.md).

Interface utilisateur correspondante : onglet **Configuration/Artefacts - facultatif**

## Configuration
<a name="deploy.action.ecs.configuration"></a>

(*ECSDeployAction*/**Configuration**)

(Obligatoire)

Section dans laquelle vous pouvez définir les propriétés de configuration de l'action.

Interface utilisateur correspondante : onglet **Configuration**

## region
<a name="deploy.action.ecs.region"></a>

(Configuration/**region**)

(Obligatoire)

Spécifiez la AWS région dans laquelle se trouvent votre cluster et votre service Amazon ECS. Pour obtenir la liste des codes de région, consultez la section [Points de terminaison régionaux](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) dans le *Références générales AWS*.

**Interface utilisateur correspondante : onglet Configuration/région**

## cluster
<a name="deploy.action.ecs.cluster"></a>

(*ECSDeployAction*/Configuration/**cluster**)

(Obligatoire)

Spécifiez le nom d'un cluster Amazon ECS existant. L'action **Deploy to Amazon ECS** déploiera votre application conteneurisée en tant que tâche dans ce cluster. Pour plus d'informations sur les clusters Amazon ECS, consultez la section [Clusters](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-clusters) du manuel *Amazon Elastic Container Service Developer Guide*.

**Interface utilisateur correspondante : onglet Configuration/Cluster**

## service
<a name="deploy.action.ecs.service"></a>

(*ECSDeployAction*/Configuration/**service**)

(Obligatoire)

Spécifiez le nom d'un service Amazon ECS existant qui instanciera le fichier de définition de tâche. Ce service doit résider sous le cluster spécifié dans le `cluster` champ. Pour plus d'informations sur les services Amazon ECS, consultez les [services Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) dans le manuel *Amazon Elastic Container Service Developer Guide*.

**Interface utilisateur correspondante : onglet Configuration/Service**

## task-definition
<a name="deploy.action.ecs.task.definition"></a>

(*ECSDeployAction*/Configuration/**task-definition**)

(Obligatoire)

Spécifiez le chemin d'accès à un fichier de définition de tâche existant. Si le fichier se trouve dans votre dépôt source, le chemin est relatif au dossier racine du dépôt source. Si votre fichier réside dans un artefact issu d'une action de flux de travail précédente, le chemin est relatif au dossier racine de l'artefact. Pour plus d'informations sur les fichiers de définition de tâches, consultez la section [Définitions de tâches](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions) dans le manuel *Amazon Elastic Container Service Developer Guide*.

Interface utilisateur correspondante : onglet Configuration/Définition des **tâches**

## force-new-deployment
<a name="deploy.action.ecs.forcenewdeployment"></a>

(*ECSDeployAction*/Configuration/**force-new-deployment**)

(Obligatoire)

S'il est activé, le service Amazon ECS peut démarrer de nouveaux déploiements sans modifier la définition du service. Le déploiement forcé entraîne l'arrêt par le service de toutes les tâches en cours d'exécution et le lancement de nouvelles tâches. Pour plus d'informations sur le forçage de nouveaux déploiements, consultez la section [Mettre à jour un service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-service.html) dans le manuel *Amazon Elastic Container Service Developer Guide*.

Valeur par défaut : `false`

Interface utilisateur correspondante : onglet **Configuration/Forcer un nouveau déploiement du service**

## codedeploy-appspec
<a name="deploy.action.ecs.codedeploy.appspec"></a>

(*ECSDeployAction*/Configuration/**codedeploy-appspec**)

(Obligatoire si vous avez configuré votre service Amazon ECS pour utiliser des blue/green déploiements, sinon, omettez)

Spécifiez le nom et le chemin d'accès à un fichier de spécification CodeDeploy d'application (AppSpec) existant. Ce fichier doit se trouver à la racine de votre dépôt CodeCatalyst source. Pour plus d'informations sur AppSpec les fichiers, consultez les [fichiers de spécification de CodeDeploy l'application (AppSpec)](https://docs.aws.amazon.com/codedeploy/latest/userguide/application-specification-files.html) dans le *guide de AWS CodeDeploy l'utilisateur*.

**Note**  
Ne fournissez CodeDeploy des informations que si vous avez configuré votre service Amazon ECS pour effectuer des blue/green déploiements. Pour les déploiements de mises à jour continues (par défaut), omettez CodeDeploy les informations. Pour plus d'informations sur les déploiements Amazon ECS, consultez les [types de déploiement Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) dans le manuel *Amazon Elastic Container Service Developer Guide*.

**Note**  
Les **CodeDeploy**champs peuvent être masqués dans l'éditeur visuel. Pour les faire apparaître, voir[Pourquoi les CodeDeploy champs sont-ils absents de l'éditeur visuel ?](troubleshooting-workflows.md#troubleshooting-workflows-codedeploy).

Interface utilisateur correspondante : onglet Configuration/ **CodeDeploy AppSpec**

## codedeploy-application
<a name="deploy.action.ecs.codedeploy.application"></a>

(*ECSDeployAction*/Configuration/**codedeploy-application**)

(Obligatoire s'`codedeploy-appspec`il est inclus)

Spécifiez le nom d'une CodeDeploy application existante. Pour plus d'informations sur CodeDeploy les applications, consultez la section [Utilisation des applications CodeDeploy dans](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications.html) le *Guide de AWS CodeDeploy l'utilisateur*.

**Interface utilisateur correspondante : onglet de configuration/application CodeDeploy **

## codedeploy-deployment-group
<a name="deploy.action.ecs.codedeploy.deploymentgroup"></a>

(*ECSDeployAction*/Configuration/**codedeploy-deployment-group**)

(Obligatoire s'`codedeploy-appspec`il est inclus)

Spécifiez le nom d'un groupe CodeDeploy de déploiement existant. Pour plus d'informations sur les groupes de CodeDeploy déploiement, consultez la section [Utilisation des groupes de déploiement CodeDeploy dans](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-groups.html) le *Guide de AWS CodeDeploy l'utilisateur*.

Interface utilisateur correspondante : onglet Configuration/groupe **CodeDeploy de déploiement**

## codedeploy-deployment-description
<a name="deploy.action.ecs.codedeploy.deploymentdescription"></a>

(*ECSDeployAction*/Configuration/**codedeploy-deployment-description**)

(Facultatif)

Spécifiez une description du déploiement que cette action créera. Pour plus d'informations, consultez la section [Utilisation des déploiements CodeDeploy dans](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments.html) le *Guide de l'AWS CodeDeploy utilisateur*.

Interface utilisateur correspondante : onglet Configuration/description **CodeDeploy du déploiement**

# Déploiement sur Amazon EKS à l'aide d'un flux de travail
<a name="deploy-action-eks"></a>

**Astuce**  
Pour un didacticiel expliquant comment utiliser l'action **Deploy to Kubernetes cluster, voir**. [Tutoriel : Déploiement d'une application sur Amazon EKS](deploy-tut-eks.md)

Cette section décrit comment déployer une application conteneurisée dans un cluster Kubernetes à l'aide d'un flux de travail. CodeCatalyst Pour ce faire, vous devez ajouter l'action **Déployer vers le cluster Kubernetes** à votre flux de travail. Cette action déploie votre application sur un cluster Kubernetes que vous avez configuré dans Amazon Elastic Kubernetes Service (EKS) à l'aide d'un ou de plusieurs fichiers manifestes Kubernetes. Pour un exemple de manifeste, voir [deployment.yaml](deploy-tut-eks.md#deploy-tut-eks-source-files-deployment-yml) dans[Tutoriel : Déploiement d'une application sur Amazon EKS](deploy-tut-eks.md).

[Pour plus d'informations sur Kubernetes, consultez la documentation Kubernetes.](https://kubernetes.io/docs/home/)

Pour plus d'informations sur Amazon EKS, consultez [Qu'est-ce qu'Amazon EKS ?](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) dans le *guide de l'utilisateur Amazon EKS*.

**Topics**
+ [Comment fonctionne l'action « Déployer vers un cluster Kubernetes »](#deploy-action-eks-howitworks)
+ [Image d'exécution utilisée par l'action « Déployer sur Amazon EKS »](#deploy-action-eks-runtime)
+ [Tutoriel : Déploiement d'une application sur Amazon EKS](deploy-tut-eks.md)
+ [Ajout de l'action « Déployer vers le cluster Kubernetes »](deploy-action-eks-adding.md)
+ [Variables « Déployer vers un cluster Kubernetes »](deploy-action-eks-variables.md)
+ [Action YAML « Déployer vers un cluster Kubernetes »](deploy-action-ref-eks.md)

## Comment fonctionne l'action « Déployer vers un cluster Kubernetes »
<a name="deploy-action-eks-howitworks"></a>

Le **cluster Deploy to Kubernetes fonctionne comme suit** :

1. Au moment de l'exécution, l'action installe l'`kubectl`utilitaire Kubernetes sur la machine de CodeCatalyst calcul sur laquelle l'action est exécutée. L'action est configurée `kubectl` pour pointer vers le cluster Amazon EKS que vous avez fourni lors de la configuration de l'action. L'`kubectl`utilitaire est nécessaire pour exécuter la `kubectl apply` commande, ensuite.

1. L'action exécute la `kubectl apply -f my-manifest.yaml` commande, qui exécute les instructions *my-manifest.yaml* pour déployer votre application sous la forme d'un ensemble de conteneurs et de pods dans le cluster configuré. Pour plus d'informations sur cette commande, consultez la rubrique [kubectl apply](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) dans la documentation de référence de *Kubernetes*.

## Image d'exécution utilisée par l'action « Déployer sur Amazon EKS »
<a name="deploy-action-eks-runtime"></a>

L'action **Deploy to Amazon EKS** s'exécute sur une [image de novembre 2022](build-images.md#build.previous-image). Pour de plus amples informations, veuillez consulter [Images actives](build-images.md#build-curated-images).

# Tutoriel : Déploiement d'une application sur Amazon EKS
<a name="deploy-tut-eks"></a>

Dans ce didacticiel, vous apprendrez à déployer une application conteneurisée dans Amazon Elastic Kubernetes Service à l'aide d'un flux de travail Amazon, CodeCatalyst d'Amazon EKS et de quelques autres services. AWS L'application déployée est une simple application « Hello, World \$1 » site Web construit sur une image Docker d'un serveur Web Apache. Le didacticiel explique les tâches de préparation requises, telles que la configuration d'une machine de développement et d'un cluster Amazon EKS, puis décrit comment créer un flux de travail pour créer l'application et la déployer dans le cluster.

Une fois le déploiement initial terminé, le didacticiel vous demande de modifier la source de votre application. Cette modification entraîne la création d'une nouvelle image Docker et son transfert vers votre référentiel d'images Docker avec de nouvelles informations de révision. La nouvelle version de l'image Docker est ensuite déployée dans Amazon EKS.

**Astuce**  
Au lieu de suivre ce didacticiel, vous pouvez utiliser un plan qui effectue une configuration complète d'Amazon EKS pour vous. Vous devez utiliser le plan de **déploiement de l'application EKS**. Pour de plus amples informations, veuillez consulter [Création d'un projet à l'aide d'un plan](projects-create.md#projects-create-console-template).

**Topics**
+ [Conditions préalables](#deploy-tut-eks-prereqs)
+ [Étape 1 : Configuration de votre machine de développement](#deploy-tut-eks-dev-env-create)
+ [Étape 2 : créer un cluster Amazon EKS](#deploy-tut-eks-cluster)
+ [Étape 3 : Création d'un référentiel d'images Amazon ECR](#deploy-tut-eks-ecr)
+ [Étape 4 : Ajouter des fichiers source](#deploy-tut-eks-source-files)
+ [Étape 5 : Création de AWS rôles](#deploy-tut-eks-roles)
+ [Étape 6 : Ajouter AWS des rôles à CodeCatalyst](#deploy-tut-eks-import-roles)
+ [Étape 7 : mettez à jour le ConfigMap](#deploy-tut-eks-configmap)
+ [Étape 8 : créer et exécuter un flux de travail](#deploy-tut-eks-workflow)
+ [Étape 9 : Apportez une modification à vos fichiers source](#deploy-tut-eks-change)
+ [Nettoyage](#deploy-tut-eks-cleanup)

## Conditions préalables
<a name="deploy-tut-eks-prereqs"></a>

Avant de commencer ce didacticiel :
+ Vous avez besoin d'un CodeCatalyst **espace** Amazon avec un AWS compte connecté. Pour de plus amples informations, veuillez consulter [Création d’un espace](spaces-create.md).
+ Dans votre espace, vous avez besoin d'un projet vide appelé :

  ```
  codecatalyst-eks-project
  ```

  Utilisez l'option **Partir de zéro** pour créer ce projet.

  Pour de plus amples informations, veuillez consulter [Création d'un projet vide dans Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ Dans votre projet, vous avez besoin d'un **dépôt CodeCatalyst source** vide appelé :

  ```
  codecatalyst-eks-source-repository
  ```

  Pour de plus amples informations, veuillez consulter [Stockez du code et collaborez sur celui-ci avec des référentiels de sources dans CodeCatalystStockez du code et collaborez sur celui-ci avec des référentiels de sources](source.md).
+ Dans votre projet, vous avez besoin d'un environnement CodeCatalyst CI/CD (et non d'un **environnement** de développement) appelé :

  ```
  codecatalyst-eks-environment
  ```

  Configurez cet environnement comme suit :
  + Choisissez n'importe quel type, tel que **Non-production**.
  +  AWS Connectez-y votre compte. 
  + Pour le **rôle IAM par défaut**, choisissez n'importe quel rôle. Vous spécifierez un autre rôle ultérieurement.

  Pour de plus amples informations, veuillez consulter [Déploiement dans Comptes AWS et VPCs](deploy-environments.md).

## Étape 1 : Configuration de votre machine de développement
<a name="deploy-tut-eks-dev-env-create"></a>

La première étape de ce didacticiel consiste à configurer une machine de développement avec quelques outils que vous utiliserez tout au long de ce didacticiel. Ces outils sont les suivants :
+ l'`eksctl`utilitaire — pour la création de clusters
+ l'`kubectl`utilité — une condition préalable à `eksctl`
+ le AWS CLI — également une condition préalable pour `eksctl`

Vous pouvez installer ces outils sur votre machine de développement existante si vous en avez une, ou vous pouvez utiliser un CodeCatalyst environnement de développement basé sur le cloud. L'avantage d'un environnement CodeCatalyst de développement est qu'il est facile à installer et à démonter, et qu'il est intégré à d'autres CodeCatalyst services, ce qui vous permet de suivre ce didacticiel en moins d'étapes.

Ce didacticiel part du principe que vous utiliserez un CodeCatalyst environnement de développement.

Les instructions suivantes décrivent un moyen rapide de lancer un environnement de CodeCatalyst développement et de le configurer avec les outils requis, mais si vous souhaitez obtenir des instructions détaillées, consultez :
+ [Création d’un environnement de développement](devenvironment-create.md) dans ce guide.
+ [Installation de kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) dans le guide de l'**utilisateur Amazon EKS**.
+ [Installation ou mise à niveau d'eksctl](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html) dans le guide de **l'utilisateur Amazon EKS**.
+ [Installation ou mise à jour de la dernière version du AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dans le *guide de AWS Command Line Interface l'utilisateur*.

**Pour lancer un environnement de développement**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Accédez à votre projet,`codecatalyst-eks-project`.

1. Dans le volet de navigation, choisissez **Code**, puis sélectionnez **Référentiels sources**. 

1. Choisissez le nom de votre dépôt source,`codecatalyst-eks-source-repository`.

1. En haut, choisissez **Create Dev Environment**, puis choisissez **AWS Cloud9 (dans le navigateur)**.

1. Assurez-vous que les options **Travailler dans la branche et la branche **principale** existantes** sont sélectionnées, puis choisissez **Créer**.

   Votre environnement de développement s'ouvre dans un nouvel onglet du navigateur, et votre dépôt (`codecatalyst-eks-source-repository`) y est cloné.

**Pour installer et configurer kubectl**

1. Dans le terminal Dev Environment, entrez :

   ```
   curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/linux/amd64/kubectl
   ```

1. Entrez :

   ```
   chmod +x ./kubectl
   ```

1. Entrez :

   ```
   mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
   ```

1. Entrez :

   ```
   echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
   ```

1. Entrez :

   ```
   kubectl version --short --client
   ```

1. Vérifiez qu'une version apparaît.

   Vous êtes maintenant installé`kubectl`.

**Pour installer et configurer eksctl**
**Note**  
`eksctl`n'est pas strictement obligatoire car vous pouvez utiliser à la `kubectl` place. Cependant, il `eksctl` présente l'avantage d'automatiser une grande partie de la configuration du cluster, et c'est donc l'outil recommandé pour ce didacticiel.

1. Dans le terminal Dev Environment, entrez :

   ```
   curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
   ```

1. Entrez :

   ```
   sudo cp /tmp/eksctl /usr/bin
   ```

1. Entrez :

   ```
   eksctl version
   ```

1. Vérifiez qu'une version apparaît.

   Vous êtes maintenant installé`eksctl`.

**Pour vérifier AWS CLI que le**

1. Dans le terminal Dev Environment, entrez :

   ```
   aws --version
   ```

1. Vérifiez qu'une version apparaît pour vérifier qu'elle AWS CLI est installée.

   Effectuez les procédures restantes pour configurer le AWS CLI avec les autorisations d'accès nécessaires AWS.

**Pour configurer le AWS CLI**

Vous devez le configurer AWS CLI avec des clés d'accès et un jeton de session pour lui donner accès aux AWS services. Les instructions suivantes fournissent un moyen rapide de configurer les clés et le jeton, mais si vous souhaitez obtenir des instructions détaillées, reportez-vous AWS CLIà [la section Configuration du](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) *guide de l'AWS Command Line Interface utilisateur*.

1. Créez un utilisateur IAM Identity Center, comme suit :

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

      (Vous devrez peut-être choisir **Activer** si vous ne vous êtes jamais connecté à IAM Identity Center auparavant.)
**Note**  
Assurez-vous de vous connecter à l'aide de Compte AWS celui qui est connecté à votre CodeCatalyst espace. Vous pouvez vérifier quel compte est connecté en accédant à votre espace et en choisissant l'onglet **Comptes AWS**. Pour de plus amples informations, veuillez consulter [Création d’un espace](spaces-create.md).

   1. Dans le panneau de navigation, choisissez **Users (Utilisateurs)**, puis **Add user (Ajouter un utilisateur)**.

   1. Dans **Nom d'utilisateur**, entrez :

      ```
      codecatalyst-eks-user
      ```

   1. Sous **Mot de passe**, choisissez **Générer un mot de passe à usage unique que vous pouvez partager avec cet utilisateur**.

   1. Dans **Adresse e-mail** et **Confirmer l'adresse e-mail**, entrez une adresse e-mail qui n'existe pas encore dans IAM Identity Center.

   1. Dans le **champ Prénom**, entrez :

      ```
      codecatalyst-eks-user
      ```

   1. Dans **Nom de famille**, entrez :

      ```
      codecatalyst-eks-user
      ```

   1. Dans **Nom d'affichage**, conservez :

      ```
      codecatalyst-eks-user codecatalyst-eks-user
      ```

   1. Choisissez **Suivant**.

   1. Sur la page **Ajouter un utilisateur aux groupes**, choisissez **Next**.

   1. Sur la page **Vérifier et ajouter un utilisateur**, passez en revue les informations et choisissez **Ajouter un utilisateur**.

      Une boîte **de dialogue de mot de passe à usage unique** s'affiche.

   1. Choisissez **Copier**, puis collez les informations de connexion dans un fichier texte. Les informations de connexion comprennent l'URL du portail d' AWS accès, un nom d'utilisateur et un mot de passe à usage unique.

   1. Choisissez **Fermer**.

1. Créez un ensemble d'autorisations, comme suit :

   1. Dans le volet de navigation, choisissez **Ensembles d'autorisations**, puis choisissez **Créer un ensemble d'autorisations**.

   1. Choisissez **Ensemble d'autorisations prédéfini**, puis sélectionnez **AdministratorAccess**. Cette politique fournit des autorisations complètes à tous Services AWS. 

   1. Choisissez **Suivant**.

   1. Dans **Nom du jeu d'autorisations**, supprimez `AdministratorAccess` et entrez :

      ```
      codecatalyst-eks-permission-set
      ```

   1. Choisissez **Suivant**.

   1. Sur la page **Réviser et créer**, passez en revue les informations et choisissez **Créer**.

1. Attribuez l'ensemble d'autorisations à`codecatalyst-eks-user`, comme suit :

   1. Dans le volet de navigation, choisissez **Comptes AWS**, puis cochez la case à côté de Compte AWS celle à laquelle vous êtes actuellement connecté.

   1. Choisissez **Attribuer des utilisateurs ou des groupes**.

   1. Sélectionnez l’onglet **Utilisateurs**.

   1. Cochez la case située à côté de`codecatalyst-eks-user`.

   1. Choisissez **Suivant**.

   1. Cochez la case située à côté de`codecatalyst-eks-permission-set`.

   1. Choisissez **Suivant**.

   1. Vérifiez les informations et choisissez **Soumettre**.

      Vous les avez maintenant assignés `codecatalyst-eks-user` et `codecatalyst-eks-permission-set` à votre Compte AWS, en les liant ensemble.

1. Les clés `codecatalyst-eks-user` d'accès et le jeton de session d'Obtain, comme suit :

   1. Assurez-vous de disposer de l'URL du portail AWS d'accès, du nom d'utilisateur et du mot de passe à usage unique pour`codecatalyst-eks-user`. Vous devriez avoir copié ces informations dans un éditeur de texte plus tôt.
**Note**  
Si vous ne disposez pas de ces informations, rendez-vous sur la page de `codecatalyst-eks-user` détails dans IAM Identity Center, choisissez **Réinitialiser le mot de passe**, **Générer un mot de passe à usage unique [...]** , et **Réinitialisez à nouveau le mot** de passe pour afficher les informations à l'écran.

   1. Déconnectez-vous de AWS.

   1. Collez l'URL du portail d' AWS accès dans la barre d'adresse de votre navigateur.

   1. Connectez-vous avec :
      + **Nom d'utilisateur** :

        ```
        codecatalyst-eks-user
        ```
      + **Mot de passe** :

        *one-time-password*

   1. Dans **Définir un nouveau mot de passe**, entrez un nouveau mot de passe et choisissez **Définir un nouveau mot de passe**.

      Une **Compte AWS**boîte apparaît à l'écran.

   1. Choisissez **Compte AWS**, puis choisissez le nom de l'utilisateur Compte AWS auquel vous avez attribué l'`codecatalyst-eks-user`utilisateur et le jeu d'autorisations.

   1. À côté de`codecatalyst-eks-permission-set`, choisissez **Ligne de commande ou accès par programmation**.

   1. Copiez les commandes au milieu de la page. Ils ressemblent à ce qui suit :

      ```
      export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" 
      export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" 
      export AWS_SESSION_TOKEN="session-token"
      ```

      ... où se *session-token* trouve une longue chaîne aléatoire.

1. Ajoutez les clés d'accès et le jeton de session au AWS CLI, comme suit :

   1. Retournez à votre CodeCatalyst environnement de développement.

   1. À l'invite du terminal, collez les commandes que vous avez copiées. Appuyez sur Entrée.

      Vous avez maintenant configuré le AWS CLI avec des clés d'accès et un jeton de session. Vous pouvez désormais utiliser AWS CLI pour effectuer les tâches requises par ce didacticiel.
**Important**  
Si, à tout moment au cours de ce didacticiel, vous voyez des messages similaires aux suivants :  
`Unable to locate credentials. You can configure credentials by running "aws configure".`  
Ou:  
`ExpiredToken: The security token included in the request is expired`  
... c'est parce que votre AWS CLI session a expiré. Dans ce cas, n'exécutez *pas* la `aws configure` commande. Utilisez plutôt les instructions de l'étape 4 de cette procédure qui commence par `Obtain codecatalyst-eks-user's access key and session token` pour actualiser votre session.

## Étape 2 : créer un cluster Amazon EKS
<a name="deploy-tut-eks-cluster"></a>

Dans cette section, vous allez créer un cluster dans Amazon EKS. Les instructions ci-dessous décrivent un moyen rapide de créer le cluster à l'aide de`eksctl`, mais si vous souhaitez obtenir des instructions détaillées, consultez :
+ [Commencer à utiliser eksctl dans le guide](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html) de l'utilisateur **Amazon EKS**

  or
+ [Démarrage avec la console et AWS CLI](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html) dans le **guide de l'utilisateur Amazon EKS** (cette rubrique fournit des `kubectl` instructions pour créer le cluster) 

**Note**  
Les [clusters privés](https://docs.aws.amazon.com/eks/latest/userguide/private-clusters.html) ne sont pas pris en charge par l' CodeCatalyst intégration avec Amazon EKS.

**Avant de commencer**

Assurez-vous d'avoir effectué les tâches suivantes sur votre machine de développement :
+ L'`eksctl`utilitaire a été installé.
+ L'`kubectl`utilitaire a été installé.
+ Vous l'avez installé AWS CLI et configuré avec des clés d'accès et un jeton de session.

Pour plus d'informations sur la façon d'effectuer ces tâches, consultez[Étape 1 : Configuration de votre machine de développement](#deploy-tut-eks-dev-env-create).

**Pour créer un cluster**
**Important**  
N'utilisez pas l'interface utilisateur du service Amazon EKS pour créer le cluster car celui-ci ne sera pas configuré correctement. Utilisez l'`eksctl`utilitaire, comme décrit dans les étapes suivantes.

1. Accédez à votre environnement de développement.

1. Créez un cluster et des nœuds :

   ```
   eksctl create cluster --name codecatalyst-eks-cluster --region us-west-2
   ```

   Où :
   + *codecatalyst-eks-cluster*est remplacé par le nom que vous souhaitez donner à votre cluster.
   + *us-west-2*est remplacé par votre région.

   Après 10 à 20 minutes, un message semblable au suivant apparaît : 

   `EKS cluster "codecatalyst-eks-cluster" in "us-west-2" region is ready`
**Note**  
Vous verrez plusieurs `waiting for CloudFormation stack` messages lors de la AWS création de votre cluster. Ceci est normal.

1. Vérifiez que votre cluster a été créé avec succès :

   ```
   kubectl cluster-info
   ```

   Vous verrez un message similaire au suivant, indiquant une création de cluster réussie :

   ```
   Kubernetes master is running at https://long-string.gr7.us-west-2.eks.amazonaws.com
   CoreDNS is running at https://long-string.gr7.us-west-2.eks.amazonaws.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
   ```

## Étape 3 : Création d'un référentiel d'images Amazon ECR
<a name="deploy-tut-eks-ecr"></a>

Dans cette section, vous allez créer un référentiel d'images privé dans Amazon Elastic Container Registry (Amazon ECR). Ce référentiel stocke l'image Docker pour le didacticiel.

Pour plus d'informations sur Amazon ECR, consultez le *guide de l'utilisateur d'Amazon Elastic Container Registry*.

**Pour créer un référentiel d'images dans Amazon ECR**

1. Accédez à votre environnement de développement.

1. Créez un référentiel vide dans Amazon ECR :

   ```
   aws ecr create-repository --repository-name codecatalyst-eks-image-repo
   ```

   *codecatalyst-eks-image-repo*Remplacez-le par le nom que vous souhaitez attribuer au référentiel Amazon ECR.

   Ce didacticiel part du principe que vous avez donné un nom à votre dépôt`codecatalyst-eks-image-repo`.

1. Affichez les détails du référentiel Amazon ECR :

   ```
   aws ecr describe-repositories \
         --repository-names codecatalyst-eks-image-repo
   ```

1. Notez la `“repositoryUri”:` valeur, par exemple,`111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-eks-image-repo`.

   Vous en aurez besoin ultérieurement lors de l'ajout du référentiel à votre flux de travail. 

## Étape 4 : Ajouter des fichiers source
<a name="deploy-tut-eks-source-files"></a>

Dans cette section, vous allez ajouter les fichiers source de l'application à votre référentiel source (`codecatalyst-eks-source-repository`). Ils sont composés de :
+ Un `index.html` fichier — Affiche un message « Bonjour tout le monde \$1 » message dans le navigateur.
+ Un Dockerfile — Décrit l'image de base à utiliser pour votre image Docker et les commandes Docker à appliquer à celle-ci.
+ Un `deployment.yaml` fichier : le manifeste Kubernetes qui définit le service et le déploiement de Kubernetes. 

La structure des dossiers est la suivante :

```
|— codecatalyst-eks-source-repository
   |— Kubernetes
      |— deployment.yaml
   |— public-html
   |  |— index.html
   |— Dockerfile
```

**Topics**
+ [index.html](#deploy-tut-eks-source-files-index)
+ [Dockerfile](#deploy-tut-eks-source-files-dockerfile)
+ [deployment.yaml](#deploy-tut-eks-source-files-deployment-yml)

### index.html
<a name="deploy-tut-eks-source-files-index"></a>

Le `index.html` fichier affiche un message « Bonjour tout le monde \$1 » message dans le navigateur. 

**Pour ajouter le fichier index.html**

1. Accédez à votre environnement de développement.

1. Dans`codecatalyst-eks-source-repository`, créez un dossier appelé`public-html`.

1. Dans`/public-html`, créez un fichier appelé `index.html` avec le contenu suivant :

   ```
   <html>
     <head>
       <title>Hello World</title>
       <style>
         body {
         background-color: black;
         text-align: center;
         color: white;
         font-family: Arial, Helvetica, sans-serif;
         }  
       </style>
     </head>
     <body>
       <h1>Hello, World!</h1>
     </body>
   </html>
   ```

1. À l'invite du terminal, entrez :

   ```
   cd /projects/codecatalyst-eks-source-repository
   ```

1. Ajoutez, validez et envoyez :

   ```
   git add .
   git commit -m "add public-html/index.html"
   git push
   ```

   Le `index.html` est ajouté à votre dépôt dans un `public-html` dossier. 

### Dockerfile
<a name="deploy-tut-eks-source-files-dockerfile"></a>

Le Dockerfile décrit l'image Docker de base à utiliser et les commandes Docker à lui appliquer. Pour plus d'informations sur le Dockerfile, consultez le [Dockerfile](https://docs.docker.com/engine/reference/builder/) Reference.

Le Dockerfile spécifié ici indique d'utiliser l'image de base d'Apache 2.4 ()`httpd`. Il inclut également des instructions pour copier un fichier source appelé `index.html` dans un dossier du serveur Apache qui sert aux pages Web. L'`EXPOSE`instruction du Dockerfile indique à Docker que le conteneur écoute sur le port 80.

**Pour ajouter le Dockerfile**

1. Dans`codecatalyst-eks-source-repository`, créez un fichier appelé `Dockerfile` avec le contenu suivant :

   ```
   FROM httpd:2.4
   COPY ./public-html/index.html /usr/local/apache2/htdocs/index.html
   EXPOSE 80
   ```

   N'incluez pas d'extension de fichier.
**Important**  
Le Dockerfile doit résider dans le dossier racine de votre dépôt. La `Docker build` commande du flux de travail s'attend à ce qu'il soit présent.

1. Ajoutez, validez et envoyez :

   ```
   git add .
   git commit -m "add Dockerfile"
   git push
   ```

   Le Dockerfile est ajouté à votre dépôt.

### deployment.yaml
<a name="deploy-tut-eks-source-files-deployment-yml"></a>

Dans cette section, vous allez ajouter un `deployment.yaml` fichier à votre dépôt. Le `deployment.yaml` fichier est un manifeste Kubernetes qui définit deux types ou *types* de ressources Kubernetes à exécuter : un « service » et un « déploiement ».
+ Le « service » déploie un équilibreur de charge dans Amazon EC2. L'équilibreur de charge vous fournit une URL publique connectée à Internet et un port standard (port 80) que vous pouvez utiliser pour accéder à « Hello, World \$1 » application. 
+ Le « déploiement » déploie trois pods, et chaque pod contiendra un conteneur Docker avec le message « Hello, World \$1 » application. Les trois pods sont déployés sur les nœuds créés lorsque vous avez créé le cluster.

Le manifeste présenté dans ce didacticiel est court ; toutefois, un manifeste peut inclure un certain nombre de types de ressources Kubernetes, tels que des pods, des jobs, des entrées et des politiques réseau. En outre, vous pouvez utiliser plusieurs fichiers manifestes si votre déploiement est complexe.

**Pour ajouter un fichier de déploiement .yaml**

1. Dans`codecatalyst-eks-source-repository`, créez un dossier appelé`Kubernetes`.

1. Dans`/Kubernetes`, créez un fichier appelé `deployment.yaml` avec le contenu suivant :

   ```
   apiVersion: v1
   kind: Service
   metadata:
     name: my-service
     labels:
       app: my-app
   spec:
     type: LoadBalancer
     selector:
       app: my-app
     ports:
       - protocol: TCP
         port: 80
         targetPort: 80
   ---
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     name: my-deployment
     labels:
       app: my-app
   spec:
     replicas: 3
     selector:
       matchLabels:
         app: my-app
     template:
       metadata:
         labels:
           app: my-app
       spec:
         containers:
         - name: codecatalyst-eks-container
           # The $REPOSITORY_URI and $IMAGE_TAG placeholders will be replaced by actual values supplied by the build action in your workflow
           image: $REPOSITORY_URI:$IMAGE_TAG
           ports:
           - containerPort: 80
   ```

1. Ajoutez, validez et envoyez :

   ```
   git add .
   git commit -m "add Kubernetes/deployment.yaml"
   git push
   ```

   Le `deployment.yaml` fichier est ajouté à votre dépôt dans un dossier appelé`Kubernetes`. 

Vous avez maintenant ajouté tous vos fichiers sources.

Prenez le temps de vérifier votre travail et de vous assurer que vous avez placé tous les fichiers dans les bons dossiers. La structure des dossiers est la suivante :

```
|— codecatalyst-eks-source-repository
   |— Kubernetes
      |— deployment.yaml
   |— public-html
   |  |— index.html
   |— Dockerfile
```

## Étape 5 : Création de AWS rôles
<a name="deploy-tut-eks-roles"></a>

Dans cette section, vous allez créer les rôles AWS IAM dont votre CodeCatalyst flux de travail aura besoin pour fonctionner. Ces rôles sont les suivants :
+ **Rôle de création** : accorde à l'action de CodeCatalyst création (dans le flux de travail) l'autorisation d'accéder à votre AWS compte et d'écrire sur Amazon ECR et Amazon EC2.
+ **Rôle de déploiement** : accorde à l'action CodeCatalyst **Deploy to Kubernetes cluster** (dans le flux de travail) l'autorisation d'accéder à votre compte AWS et à Amazon EKS.

Pour plus d'informations sur les rôles IAM, consultez la section Rôles [IAM dans le Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) de l'*Gestion des identités et des accès AWS utilisateur*.

**Note**  
Pour gagner du temps, vous pouvez créer un seul rôle, appelé `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle, au lieu des deux rôles répertoriés précédemment. Pour de plus amples informations, veuillez consulter [Création du **CodeCatalystWorkflowDevelopmentRole-*spaceName***rôle pour votre compte et votre espace](ipa-iam-roles.md#ipa-iam-roles-service-create). Sachez que le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle dispose d'autorisations très étendues, ce qui peut présenter un risque de sécurité. Nous vous recommandons de n'utiliser ce rôle que dans les didacticiels et les scénarios où la sécurité est moins préoccupante. Ce didacticiel part du principe que vous créez les deux rôles répertoriés précédemment.

Pour créer les rôles de génération et de déploiement, suivez la série de procédures suivante.

**1. Pour créer une politique de confiance pour les deux rôles**

1. Accédez à votre environnement de développement.

1. Dans le `Cloud9-long-string` répertoire, créez un fichier appelé `codecatalyst-eks-trust-policy.json` avec le contenu suivant :

**2. Pour créer la politique de build pour le rôle de build**
+ Dans le `Cloud9-long-string` répertoire, créez un fichier appelé `codecatalyst-eks-build-policy.json` avec le contenu suivant :

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "ecr:*",
                  "ec2:*"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
**Note**  
La première fois que le rôle est utilisé pour exécuter des actions de flux de travail, utilisez le caractère générique dans la déclaration de politique de ressources, puis définissez la stratégie avec le nom de la ressource une fois celle-ci disponible.  

  ```
  "Resource": "*"
  ```

**3. Pour créer la politique de déploiement pour le rôle de déploiement**
+ Dans le `Cloud9-long-string` répertoire, créez un fichier appelé `codecatalyst-eks-deploy-policy.json` avec le contenu suivant :

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "eks:DescribeCluster",
                  "eks:ListClusters"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
**Note**  
La première fois que le rôle est utilisé pour exécuter des actions de flux de travail, utilisez le caractère générique dans la déclaration de politique de ressources, puis définissez la stratégie avec le nom de la ressource une fois celle-ci disponible.  

  ```
  "Resource": "*"
  ```

Vous avez maintenant ajouté trois documents de politique à votre environnement de développement. La structure de votre répertoire ressemble maintenant à ceci :

```
|— Cloud9-long-string
   |— .c9
   |— codecatalyst-eks-source-repository
      |— Kubernetes
      |— public-html
      |— Dockerfile
   codecatalyst-eks-build-policy.json
   codecatalyst-eks-deploy-policy.json
   codecatalyst-eks-trust-policy.json
```

**4. Pour ajouter la politique de construction à AWS**

1. Dans le terminal Dev Environment, entrez :

   ```
   cd /projects
   ```

1. Entrez :

   ```
   aws iam create-policy \
       --policy-name codecatalyst-eks-build-policy \
       --policy-document file://codecatalyst-eks-build-policy.json
   ```

1. Appuyez sur **Entrée**.

1. Dans la sortie de commande, notez la `"arn":` valeur, par exemple,`arn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy`. Vous aurez besoin de cet ARN ultérieurement.

**5. Pour ajouter la politique de déploiement à AWS**

1. Entrez :

   ```
   aws iam create-policy \
       --policy-name codecatalyst-eks-deploy-policy \
       --policy-document file://codecatalyst-eks-deploy-policy.json
   ```

1. Appuyez sur **Entrée**.

1. Dans le résultat de la commande, notez la `"arn":` valeur de la politique de déploiement, par exemple,`arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy`. Vous aurez besoin de cet ARN ultérieurement.

**6. Pour créer le rôle de build**

1. Entrez : 

   ```
   aws iam create-role \
         --role-name codecatalyst-eks-build-role \
         --assume-role-policy-document file://codecatalyst-eks-trust-policy.json
   ```

1. Appuyez sur **Entrée**.

1. Entrez :

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-eks-build-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy
   ```

   Where *arn:aws:iam::111122223333:policy/codecatalyst-eks-build-policy* est remplacé par l'ARN de la politique de construction que vous avez mentionnée précédemment.

1. Appuyez sur **Entrée**.

1. À l'invite du terminal, entrez :

   ```
   aws iam get-role \
         --role-name codecatalyst-eks-build-role
   ```

1. Appuyez sur **Entrée**.

1. Notez la `"Arn":` valeur du rôle, par exemple`arn:aws:iam::111122223333:role/codecatalyst-eks-build-role`. Vous aurez besoin de cet ARN ultérieurement.

**7. Pour créer le rôle de déploiement**

1. Entrez :

   ```
   aws iam create-role \
         --role-name codecatalyst-eks-deploy-role \
         --assume-role-policy-document file://codecatalyst-eks-trust-policy.json
   ```

1. Appuyez sur **Entrée**.

1. Entrez :

   ```
   aws iam attach-role-policy \
         --role-name codecatalyst-eks-deploy-role \
         --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy
   ```

   Where *arn:aws:iam::111122223333:policy/codecatalyst-eks-deploy-policy* est remplacé par l'ARN de la politique de déploiement que vous avez mentionnée précédemment.

1. Appuyez sur **Entrée**.

1. Entrez :

   ```
   aws iam get-role \
         --role-name codecatalyst-eks-deploy-role
   ```

1. Appuyez sur **Entrée**.

1. Notez la `"Arn":` valeur du rôle, par exemple`arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role`. Vous aurez besoin de cet ARN ultérieurement.

Vous avez maintenant créé des rôles de construction et de déploiement et les avez notés ARNs.

## Étape 6 : Ajouter AWS des rôles à CodeCatalyst
<a name="deploy-tut-eks-import-roles"></a>

Au cours de cette étape, vous ajoutez le rôle de construction (`codecatalyst-eks-build-role`) et le rôle de déploiement (`codecatalyst-eks-deploy-role`) au rôle Compte AWS que vous avez connecté à votre espace. Les rôles peuvent ainsi être utilisés dans votre flux de travail.

**Pour ajouter des rôles de création et de déploiement à votre Compte AWS**

1. Dans la CodeCatalyst console, accédez à votre espace.

1. En haut, choisissez **Réglages**.

1. Dans le volet de navigation, sélectionnez **AWS Accounts**. La liste des comptes s'affiche.

1. Dans la colonne du **nom CodeCatalyst d'affichage d'Amazon**, copiez le nom d'affichage de l' Compte AWS endroit où vous avez créé vos rôles de création et de déploiement. (Il peut s'agir d'un chiffre.) Vous aurez besoin de cette valeur ultérieurement, lors de la création de votre flux de travail.

1. Choisissez le nom d'affichage.

1. Choisissez **Gérer les rôles depuis AWS la console de gestion**.

   La page **Ajouter un rôle IAM à Amazon CodeCatalyst Space** s'affiche. Il se peut que vous deviez vous connecter pour accéder à la page.

1. Sélectionnez **Ajouter un rôle existant que vous avez créé dans IAM**.

   Une liste déroulante apparaît. La liste affiche les rôles de création et de déploiement, ainsi que tous les autres rôles IAM dotés d'une politique de confiance incluant les principes `codecatalyst-runner.amazonaws.com` et les principaux `codecatalyst.amazonaws.com` de service.

1. Dans la liste déroulante, ajoutez :
   + `codecatalyst-eks-build-role`
   + `codecatalyst-eks-deploy-role`
**Note**  
Si vous le voyez`The security token included in the request is invalid`, c'est peut-être parce que vous ne disposez pas des autorisations appropriées. Pour résoudre ce problème, déconnectez-vous et reconnectez-vous avec le AWS compte que vous avez utilisé lors de la création de votre CodeCatalyst espace. AWS 

1. Retournez à la CodeCatalyst console et actualisez la page.

   Les rôles de création et de déploiement devraient désormais apparaître sous les **rôles IAM**.

   Ces rôles peuvent désormais être utilisés dans les CodeCatalyst flux de travail.

## Étape 7 : mettez à jour le ConfigMap
<a name="deploy-tut-eks-configmap"></a>

Vous devez ajouter le rôle de déploiement que vous avez créé dans le `ConfigMap` fichier Kubernetes [Étape 5 : Création de AWS rôles](#deploy-tut-eks-roles) pour permettre à l'action **Deploy to Kubernetes cluster** (dans votre flux de travail) d'accéder à votre cluster et d'interagir avec celui-ci. Vous pouvez utiliser `eksctl` ou `kubectl` pour exécuter cette tâche.

**Pour configurer le fichier Kubernetes ConfigMap à l'aide de eksctl**
+ Dans le terminal Dev Environment, entrez : 

  ```
  eksctl create iamidentitymapping --cluster codecatalyst-eks-cluster --arn arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role --group system:masters --username codecatalyst-eks-deploy-role --region us-west-2
  ```

  Où :
  + *codecatalyst-eks-cluster*est remplacé par le nom du cluster Amazon EKS.
  +  *arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role*est remplacé par l'ARN du rôle de déploiement que vous avez créé dans[Étape 5 : Création de AWS rôles](#deploy-tut-eks-roles).
  +  *codecatalyst-eks-deploy-role*(à côté de`--username`) est remplacé par le nom du rôle de déploiement que vous avez créé dans[Étape 5 : Création de AWS rôles](#deploy-tut-eks-roles).
**Note**  
Si vous avez décidé de ne pas créer de rôle de déploiement, *codecatalyst-eks-deploy-role* remplacez-le par le nom du `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle. Pour plus d’informations sur ce rôle, consultez [Étape 5 : Création de AWS rôles](#deploy-tut-eks-roles).
  +  *us-west-2*est remplacé par votre région.

  Pour plus de détails sur cette commande, voir [Gérer les utilisateurs et les rôles IAM](https://eksctl.io/usage/iam-identity-mappings/).

  Un message similaire au suivant s'affiche :

  ```
  2023-06-09 00:58:29 [ℹ]  checking arn arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role against entries in the auth ConfigMap
  2023-06-09 00:58:29 [ℹ]  adding identity "arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role" to auth ConfigMap
  ```

**Pour configurer le fichier Kubernetes ConfigMap à l'aide de kubectl**

1. Dans le terminal Dev Environment, entrez :

   ```
   kubectl edit configmap -n kube-system aws-auth
   ```

   Le ConfigMap fichier apparaît à l'écran.

1. Ajoutez le texte en italique rouge :

   ```
   # Please edit the object below. Lines beginning with a '#' will be ignored,
   # and an empty file will abort the edit. If an error occurs while saving this file will be
   # reopened with the relevant failures.
   #
   apiVersion: v1
   data:
     mapRoles: |
       - groups:
         - system:bootstrappers
         - system:nodes
         rolearn: arn:aws:iam::111122223333:role/eksctl-codecatalyst-eks-cluster-n-NodeInstanceRole-16BC456ME6YR5
         username: system:node:{{EC2PrivateDNSName}}
       - groups:
         - system:masters
         rolearn: arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role
         username: codecatalyst-eks-deploy-role
     mapUsers: |
       []
   kind: ConfigMap
   metadata:
     creationTimestamp: "2023-06-08T19:04:39Z"
     managedFields:
     ...
   ```

   Où :
   +  *arn:aws:iam::111122223333:role/codecatalyst-eks-deploy-role*est remplacé par l'ARN du rôle de déploiement que vous avez créé dans[Étape 5 : Création de AWS rôles](#deploy-tut-eks-roles). 
   +  *codecatalyst-eks-deploy-role*(à côté de`username:`) est remplacé par le nom du rôle de déploiement que vous avez créé dans[Étape 5 : Création de AWS rôles](#deploy-tut-eks-roles).
**Note**  
Si vous avez décidé de ne pas créer de rôle de déploiement, *codecatalyst-eks-deploy-role* remplacez-le par le nom du `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle. Pour plus d’informations sur ce rôle, consultez [Étape 5 : Création de AWS rôles](#deploy-tut-eks-roles).

   Pour plus de détails, consultez la section [Activation de l'accès principal IAM à votre cluster](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) dans le **guide de l'utilisateur Amazon EKS**.

Vous avez maintenant accordé au rôle de déploiement, et par extension à l'action **Deploy to Amazon EKS**, `system:masters` des autorisations sur votre cluster Kubernetes.

## Étape 8 : créer et exécuter un flux de travail
<a name="deploy-tut-eks-workflow"></a>

Au cours de cette étape, vous créez un flux de travail qui prend vos fichiers source, les intègre dans une image Docker, puis déploie l'image dans des capsules d'arbres de votre cluster Amazon EKS.

Le flux de travail comprend les éléments de base suivants qui s'exécutent de manière séquentielle :
+ Un déclencheur : ce déclencheur lance automatiquement l'exécution du flux de travail lorsque vous apportez une modification à votre référentiel source. Pour plus d'informations sur les déclencheurs, consultez [Démarrage d'un flux de travail exécuté automatiquement à l'aide de déclencheurs](workflows-add-trigger.md).
+ Une action de génération (`BuildBackend`) — Au déclenchement, l'action crée l'image Docker à l'aide du Dockerfile et envoie l'image vers Amazon ECR. L'action de génération met également à jour les `$IMAGE_TAG` variables `$REPOSITORY_URI` et du `deployment.yaml` fichier avec les valeurs correctes, puis crée un artefact de sortie de ce fichier et de tous les autres éléments du `Kubernetes` dossier. Dans ce didacticiel, le seul fichier du `Kubernetes` dossier l'est`deployment.yaml`, mais vous pouvez inclure d'autres fichiers. L'artefact est utilisé comme entrée pour l'action de déploiement, qui est la suivante.

  Pour plus d'informations sur l'action de génération, consultez[Construire avec des flux de travail](build-workflow-actions.md).
+ Une action de déploiement (`DeployToEKS`) : une fois l'action de génération terminée, l'action de déploiement recherche l'artefact de sortie généré par l'action de génération (`Manifests`) et trouve le `deployment.yaml` fichier qu'il contient. L'action suit ensuite les instructions du `deployment.yaml` fichier pour exécuter trois pods, chacun contenant un seul « Hello, World \$1 » Conteneur Docker : à l'intérieur de votre cluster Amazon EKS. 

**Pour créer un flux de travail**

1. Accédez à la CodeCatalyst console.

1. Accédez à votre projet (`codecatalyst-eks-project`).

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez **Créer un flux de travail**.

1. Pour **Référentiel source**, choisissez`codecatalyst-eks-source-repository`.

1. Pour **Branch**, choisissez`main`.

1. Choisissez **Créer**.

1. Supprimez l'exemple de code YAML.

1. Ajoutez le code YAML suivant pour créer un nouveau fichier de définition de flux de travail :
**Note**  
Pour plus d'informations sur le fichier de définition du flux de travail, consultez[Définition du flux de travail YAML](workflow-reference.md).
**Note**  
Dans le code YAML qui suit, vous pouvez omettre les `Connections:` sections si vous le souhaitez. Si vous omettez ces sections, vous devez vous assurer que le rôle spécifié dans le champ **Rôle IAM par défaut** de votre environnement inclut les autorisations et les politiques de confiance des deux rôles décrits dans. [Étape 6 : Ajouter AWS des rôles à CodeCatalyst](#deploy-tut-eks-import-roles) Pour plus d'informations sur la configuration d'un environnement doté d'un rôle IAM par défaut, consultez[Création d'un environnement](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-eks-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     BuildBackend:
       Identifier: aws/build@v1
       Environment:
         Name: codecatalyst-eks-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-eks-build-role
       Inputs:
         Sources:
           - WorkflowSource
         Variables:
           - Name: REPOSITORY_URI
             Value: 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-eks-image-repo
           - Name: IMAGE_TAG
             Value: ${WorkflowSource.CommitId}
       Configuration:
         Steps:
           #pre_build:
           - Run: echo Logging in to Amazon ECR...
           - Run: aws --version
           - Run: aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-2.amazonaws.com
           #build:
           - Run: echo Build started on `date`
           - Run: echo Building the Docker image...
           - Run: docker build -t $REPOSITORY_URI:latest .
           - Run: docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
           #post_build:
           - Run: echo Build completed on `date`
           - Run: echo Pushing the Docker images...
           - Run: docker push $REPOSITORY_URI:latest
           - Run: docker push $REPOSITORY_URI:$IMAGE_TAG
           # Replace the variables in deployment.yaml
           - Run: find Kubernetes/ -type f | xargs sed -i "s|\$REPOSITORY_URI|$REPOSITORY_URI|g"
           - Run: find Kubernetes/ -type f | xargs sed -i "s|\$IMAGE_TAG|$IMAGE_TAG|g"
           - Run: cat Kubernetes/*
           # The output artifact will be a zip file that contains Kubernetes manifest files.
       Outputs:
         Artifacts:
           - Name: Manifests
             Files: 
               - "Kubernetes/*"
     DeployToEKS:
       DependsOn: 
         - BuildBackend
       Identifier: aws/kubernetes-deploy@v1
       Environment:
         Name: codecatalyst-eks-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-eks-deploy-role
       Inputs:
         Artifacts:
           - Manifests
       Configuration:
         Namespace: default
         Region: us-west-2
         Cluster: codecatalyst-eks-cluster
         Manifests: Kubernetes/
   ```

   Dans le code précédent, remplacez :
   + Les deux instances portent *codecatalyst-eks-environment* le nom de l'environnement dans lequel vous l'avez créé[Conditions préalables](#deploy-tut-eks-prereqs).
   + Dans les deux cas, *codecatalyst-account-connection* avec le nom d'affichage de la connexion à votre compte. Le nom d'affichage peut être un chiffre. Pour de plus amples informations, veuillez consulter [Étape 6 : Ajouter AWS des rôles à CodeCatalyst](#deploy-tut-eks-import-roles).
   + *codecatalyst-eks-build-role*avec le nom du rôle de build que vous avez créé dans[Étape 5 : Création de AWS rôles](#deploy-tut-eks-roles).
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-eks-image-repo*(dans la `Value:` propriété) avec l'URI du référentiel Amazon ECR dans [Étape 3 : Création d'un référentiel d'images Amazon ECR](#deploy-tut-eks-ecr) lequel vous l'avez créé.
   + *111122223333.dkr.ecr.us-west-2.amazonaws.com*(dans la `Run: aws ecr` commande) avec l'URI du référentiel Amazon ECR sans le suffixe d'image ()`/codecatalyst-eks-image-repo`.
   + *codecatalyst-eks-deploy-role*avec le nom du rôle de déploiement que vous avez créé dans[Étape 5 : Création de AWS rôles](#deploy-tut-eks-roles).
   + Dans les deux cas, *us-west-2* avec votre code de AWS région. Pour obtenir la liste des codes de région, consultez la section [Points de terminaison régionaux](https://docs.aws.amazon.com/general/latest/gr/rande.html) dans le *Références générales AWS*.
**Note**  
Si vous avez décidé de ne pas créer de rôles de création et de déploiement, remplacez *codecatalyst-eks-build-role* et *codecatalyst-eks-deploy-role* par le nom du `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle. Pour plus d’informations sur ce rôle, consultez [Étape 5 : Création de AWS rôles](#deploy-tut-eks-roles).

1. (Facultatif) Choisissez **Valider** pour vous assurer que le code YAML est valide avant de valider.

1. Choisissez **Commit (Valider)**.

1. Dans la boîte de dialogue du **flux de travail de validation**, entrez les informations suivantes :

   1. Pour le **message de validation**, supprimez le texte et entrez :

      ```
      Add first workflow
      ```

   1. Pour **Repository**, choisissez`codecatalyst-eks-source-repository`.

   1. Pour **Nom de la branche**, choisissez main.

   1. Choisissez **Commit (Valider)**.

   Vous venez de créer un flux de travail. L'exécution d'un flux de travail démarre automatiquement en raison du déclencheur défini en haut du flux de travail. Plus précisément, lorsque vous avez validé (et transféré) le `workflow.yaml` fichier dans votre référentiel source, le déclencheur a lancé l'exécution du flux de travail.

**Pour consulter la progression de l'exécution du flux de travail**

1. **Dans le volet de navigation de la CodeCatalyst console, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le flux de travail que vous venez de créer,`codecatalyst-eks-workflow`.

1. Choisissez **BuildBackend**de voir la progression de la construction.

1. Choisissez **DeployToEKS** pour voir la progression du déploiement.

   Pour plus d'informations sur l'affichage des détails des exécutions, consultez[Afficher le statut et les détails de l'exécution du flux de travail](workflows-view-run.md).

**Pour vérifier le déploiement**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Sur la gauche, vers le bas, choisissez **Load Balancers**.

1. Sélectionnez l'équilibreur de charge créé dans le cadre de votre déploiement Kubernetes. Si vous ne savez pas quel équilibreur de charge choisir, recherchez les balises suivantes sous l'onglet **Tags :**
   + `kubernetes.io/service-name`
   + `kubernetes.io/cluster/ekstutorialcluster`

1. Une fois le bon équilibreur de charge sélectionné, cliquez sur l'onglet **Description**.

1. Copiez et collez la valeur **du nom DNS** dans la barre d'adresse de votre navigateur.

   Le « Hello, World \$1 » Une page Web apparaît dans votre navigateur, indiquant que vous avez correctement déployé votre application.

## Étape 9 : Apportez une modification à vos fichiers source
<a name="deploy-tut-eks-change"></a>

Dans cette section, vous allez apporter une modification au `index.html` fichier dans votre dépôt source. Cette modification oblige le flux de travail à créer une nouvelle image Docker, à l'étiqueter avec un ID de validation, à la transmettre à Amazon ECR et à la déployer sur Amazon ECS. 

**Pour modifier le fichier index.html**

1. Accédez à votre environnement de développement.

1. À l'invite du terminal, accédez à votre référentiel source :

   ```
   cd /projects/codecatalyst-eks-source-repository
   ```

1.  Importez les dernières modifications apportées au flux de travail :

   ```
   git pull
   ```

1. Ouvrir `codecatalyst-eks-source-repository/public-html/index.html`.

1. À la ligne 14, remplacez le `Hello, World!` texte par`Tutorial complete!`.

1. Ajoutez, validez et envoyez :

   ```
   git add .
   git commit -m "update index.html title"
   git push
   ```

   L'exécution d'un flux de travail démarre automatiquement.

1. (Facultatif) Entrez :

   ```
   git show HEAD
   ```

   Notez l'ID de validation associé à la `index.html` modification. Cet ID de validation sera associé à l'image Docker qui sera déployée par le flux de travail que vous venez de démarrer.

1. Suivez la progression du déploiement :

   1. **Dans le volet de navigation de la CodeCatalyst console, choisissez **CI/CD**, puis Workflows.**

   1. Choisissez `codecatalyst-eks-workflow` d'afficher la dernière édition.

   1. Choisissez **BuildBackend**, et **DeployToEKS** pour voir la progression de l'exécution du flux de travail.

1. Vérifiez que votre application a été mise à jour, comme suit :

   1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

   1. Sur la gauche, vers le bas, choisissez **Load Balancers**.

   1. Sélectionnez l'équilibreur de charge créé dans le cadre de votre déploiement Kubernetes.

   1. Copiez et collez la valeur **du nom DNS** dans la barre d'adresse de votre navigateur.

      Le « Tutoriel terminé \$1 » Une page Web apparaît dans votre navigateur, indiquant que vous avez déployé avec succès une nouvelle version de votre application.

1. (Facultatif) Dans AWS, passez à la console Amazon ECR et vérifiez que la nouvelle image Docker a été étiquetée avec l'ID de validation indiqué à l'étape 7 de cette procédure.

## Nettoyage
<a name="deploy-tut-eks-cleanup"></a>

Vous devez nettoyer votre environnement afin de ne pas être facturé inutilement pour les ressources de stockage et de calcul utilisées dans ce didacticiel.

**Pour nettoyer**

1. Supprimez votre cluster :

   1. Dans le terminal Dev Environment, entrez :

     ```
     eksctl delete cluster --region=us-west-2 --name=codecatalyst-eks-cluster
     ```

     Où :
     + *us-west-2*est remplacé par votre région.
     + *codecatalyst-eks-cluster*est remplacé par le nom du cluster que vous avez créé.

     Après 5 à 10 minutes, le cluster et les ressources associées sont supprimés, notamment les CloudFormation piles, les groupes de nœuds (dans Amazon EC2) et les équilibreurs de charge.
**Important**  
Si la `eksctl delete cluster` commande ne fonctionne pas, vous devrez peut-être actualiser vos AWS informations d'identification ou vos `kubectl` informations d'identification. Si vous n'êtes pas sûr des informations d'identification à actualiser, AWS actualisez-les d'abord. Pour actualiser vos AWS informations d'identification, consultez[Comment corriger les erreurs « Impossible de localiser les informations d'identification » et ExpiredToken « » ?](troubleshooting-workflows.md#troubleshooting-workflows-auth-errors-eks). Pour actualiser vos `kubectl` informations d'identification, consultez[Comment corriger les erreurs « Impossible de se connecter au serveur » ?](troubleshooting-workflows.md#troubleshooting-workflows-unable-connect-eks).

1. Dans la AWS console, nettoyez comme suit :

   1. Dans Amazon ECR, supprimez`codecatalyst-eks-image-repo`.

   1. Dans IAM Identity Center, supprimez :

      1. `codecatalyst-eks-user`

      1. `codecatalyst-eks-permission-set`

   1. Dans IAM, supprimez :
      + `codecatalyst-eks-build-role`
      + `codecatalyst-eks-deploy-role`
      + `codecatalyst-eks-build-policy`
      + `codecatalyst-eks-deploy-policy`

1. Dans la CodeCatalyst console, nettoyez comme suit :

   1. Supprimer`codecatalyst-eks-workflow`.

   1. Supprimer`codecatalyst-eks-environment`.

   1. Supprimer`codecatalyst-eks-source-repository`.

   1. Supprimez votre environnement de développement.

   1. Supprimer`codecatalyst-eks-project`.

Dans ce didacticiel, vous avez appris à déployer une application sur un service Amazon EKS à l'aide d'un CodeCatalyst flux de travail et d'une action de cluster **Deploy to Kubernetes.**

# Ajout de l'action « Déployer vers le cluster Kubernetes »
<a name="deploy-action-eks-adding"></a>

Suivez les instructions suivantes pour ajouter l'action **Déployer vers le cluster Kubernetes** à votre flux de travail. 

**Avant de commencer**

Avant d'ajouter l'action **Déployer vers le cluster Kubernetes** à votre flux de travail, vous devez préparer les éléments suivants :

**Astuce**  
Pour configurer rapidement ces prérequis, suivez les instructions figurant dans[Tutoriel : Déploiement d'une application sur Amazon EKS](deploy-tut-eks.md).
+ Un cluster Kubernetes dans Amazon EKS. Pour plus d'informations sur les clusters, consultez la section [relative aux clusters Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/clusters.html) dans le **guide de l'utilisateur Amazon EKS**.
+ Au moins un Dockerfile qui décrit comment assembler votre application dans une image Docker. Pour plus d'informations sur Dockerfiles, consultez la référence [Dockerfile](https://docs.docker.com/engine/reference/builder/).
+ Au moins un fichier manifeste Kubernetes, appelé fichier de configuration ou **configuration* dans la documentation* Kubernetes. Pour plus d'informations, consultez [la section Gestion des ressources](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/) dans la documentation de Kubernetes.
+ Rôle IAM qui permet à l'action **Deploy to Kubernetes cluster** d'accéder à votre cluster Amazon EKS et d'interagir avec celui-ci. Pour plus d'informations, consultez la rubrique [Role](deploy-action-ref-eks.md#deploy.action.eks.environment.connections.role) dans le manuel [Action YAML « Déployer vers un cluster Kubernetes »](deploy-action-ref-eks.md).

  Après avoir créé ce rôle, vous devez l'ajouter à :
  + Votre fichier Kubernetes ConfigMap . Pour savoir comment ajouter un rôle à un ConfigMap fichier, consultez la section [Activation de l'accès principal IAM à votre cluster](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) dans le **guide de l'utilisateur Amazon EKS**.
  + CodeCatalyst. Pour savoir comment ajouter un rôle IAM à CodeCatalyst, consultez[Ajout de rôles IAM à des connexions de compte](ipa-connect-account-addroles.md).
+ Un CodeCatalyst espace, un projet et un environnement. L'espace et l'environnement doivent tous deux être connectés au AWS compte sur lequel vous allez déployer votre application. Pour plus d’informations, consultez [Création d’un espace](spaces-create.md), [Création d'un projet vide dans Amazon CodeCatalyst](projects-create.md#projects-create-empty) et [Déploiement dans Comptes AWS et VPCs](deploy-environments.md).
+ Un référentiel source pris en charge par CodeCatalyst. Le référentiel stocke les fichiers source de votre application, les Dockerfiles et les manifestes Kubernetes. Pour de plus amples informations, veuillez consulter [Stockez du code et collaborez sur celui-ci avec des référentiels de sources dans CodeCatalystStockez du code et collaborez sur celui-ci avec des référentiels de sources](source.md).

------
#### [ Visual ]

**Pour ajouter l'action « Déployer vers le cluster Kubernetes » à l'aide de l'éditeur visuel**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **Visual**.

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action **Déployer vers le cluster Kubernetes**, puis effectuez l'une des opérations suivantes :
   + Choisissez le signe plus (**\$1**) pour ajouter l'action au diagramme de flux de travail et ouvrir son volet de configuration.

     Or
   + Choisissez **Déployer vers un cluster Kubernetes**. La boîte de dialogue des détails de l'action apparaît. Dans cette boîte de dialogue :
     + (Facultatif) Choisissez **Télécharger** pour [afficher le code source de l'action](workflows-view-source.md#workflows-view-source.title).
     + Choisissez **Ajouter au flux de travail** pour ajouter l'action au diagramme du flux de travail et ouvrir son volet de configuration.

1. Dans les onglets **Entrées** et **Configuration**, complétez les champs en fonction de vos besoins. Pour une description de chaque champ, consultez le[Action YAML « Déployer vers un cluster Kubernetes »](deploy-action-ref-eks.md). Cette référence fournit des informations détaillées sur chaque champ (et la valeur de propriété YAML correspondante) tel qu'il apparaît dans les éditeurs YAML et visuels.

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------
#### [ YAML ]

**Pour ajouter l'action « Déployer vers le cluster Kubernetes » à l'aide de l'éditeur YAML**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action **Déployer vers le cluster Kubernetes**, puis effectuez l'une des opérations suivantes :
   + Choisissez le signe plus (**\$1**) pour ajouter l'action au diagramme de flux de travail et ouvrir son volet de configuration.

     Or
   + Choisissez **Déployer vers un cluster Kubernetes**. La boîte de dialogue des détails de l'action apparaît. Dans cette boîte de dialogue :
     + (Facultatif) Choisissez **Télécharger** pour [afficher le code source de l'action](workflows-view-source.md#workflows-view-source.title).
     + Choisissez **Ajouter au flux de travail** pour ajouter l'action au diagramme du flux de travail et ouvrir son volet de configuration.

1. Modifiez les propriétés du code YAML en fonction de vos besoins. Une explication de chaque propriété disponible est fournie dans le[Action YAML « Déployer vers un cluster Kubernetes »](deploy-action-ref-eks.md).

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------

# Variables « Déployer vers un cluster Kubernetes »
<a name="deploy-action-eks-variables"></a>

L'action **Déployer vers le cluster Kubernetes** produit et définit les variables suivantes au moment de l'exécution. Ces variables sont connues sous le nom de *variables prédéfinies*.

Pour plus d'informations sur le référencement de ces variables dans un flux de travail, consultez[Utilisation de variables prédéfinies](workflows-using-predefined-variables.md).


| Clé | Valeur | 
| --- | --- | 
|  cluster  |  Le nom de ressource Amazon.com (ARN) du cluster Amazon EKS sur lequel a été déployé lors de l'exécution du flux de travail. Exemple : `arn:aws:eks:us-west-2:111122223333:cluster/codecatalyst-eks-cluster`  | 
|  plate-forme de déploiement  |  Nom de la plateforme de déploiement. Codé en dur pour. `AWS:EKS`  | 
|  metadata  |  Instances réservées. Métadonnées au format JSON relatives au cluster déployé lors de l'exécution du flux de travail.  | 
|  espace de nom  |  L'espace de noms Kubernetes dans lequel le cluster a été déployé. Exemple : `default`  | 
|  resources  |  Instances réservées. Métadonnées au format JSON relatives aux ressources déployées lors de l'exécution du flux de travail.  | 
|  serveur  |  Nom du point de terminaison du serveur d'API que vous pouvez utiliser pour communiquer avec votre cluster à l'aide d'outils de gestion tels que`kubectl`. Pour plus d'informations sur le point de terminaison du service API, consultez le [contrôle d'accès des points de terminaison du cluster Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) dans le **guide de l'utilisateur Amazon EKS**. Exemple : `https://random-string.gr7.us-west-2.eks.amazonaws.com`  | 

# Action YAML « Déployer vers un cluster Kubernetes »
<a name="deploy-action-ref-eks"></a>

Voici la définition YAML de l'action **Deploy to Kubernetes** cluster. Pour savoir comment utiliser cette action, consultez[Déploiement sur Amazon EKS à l'aide d'un flux de travail](deploy-action-eks.md).

Cette définition d'action existe sous forme de section au sein d'un fichier de définition de flux de travail plus large. Pour plus d’informations sur ce fichier, consultez [Définition du flux de travail YAML](workflow-reference.md).

**Note**  
La plupart des propriétés YAML suivantes ont des éléments d'interface utilisateur correspondants dans l'éditeur visuel. Pour rechercher un élément de l'interface utilisateur, utilisez **Ctrl\$1F**. L'élément sera répertorié avec sa propriété YAML associée.

```
# The workflow definition starts here.
# See Propriétés de haut niveau for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  DeployToKubernetesCluster\$1nn: 
    Identifier: aws/kubernetes-deploy@v1
    DependsOn:
      - build-action
    Compute:  
        - Type: EC2 | Lambda
        - Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: DeployToEKS
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - manifest-artifact
    Configuration:
      Namespace: namespace
      Region: us-east-1 
      Cluster: eks-cluster
      Manifests: manifest-path
```

## DeployToKubernetesCluster
<a name="deploy.action.eks.name"></a>

(Obligatoire)

Spécifiez le nom de l'action. Tous les noms d'action doivent être uniques dans le flux de travail. Les noms d'action sont limités aux caractères alphanumériques (a-z, A-Z, 0-9), aux tirets (-) et aux traits de soulignement (\$1). Les espaces ne sont pas autorisés. Vous ne pouvez pas utiliser de guillemets pour activer les caractères spéciaux et les espaces dans les noms d'action.

Valeur par défaut : `DeployToKubernetesCluster_nn`.

Interface utilisateur correspondante : onglet Configuration/nom **d'affichage de l'action**

## Identifier
<a name="deploy.action.eks.identifier"></a>

(*DeployToKubernetesCluster*/**Identifier**)

(Obligatoire)

Identifie l'action. Ne modifiez pas cette propriété, sauf si vous souhaitez modifier la version. Pour de plus amples informations, veuillez consulter [Spécification de la version de l'action à utiliser](workflows-action-versions.md).

Valeur par défaut : `aws/kubernetes-deploy@v1`.

**Interface utilisateur correspondante : diagramme de flux de travail/ DeployToKubernetesCluster \$1nn/ aws/kubernetes-deploy @v1 label**

## DependsOn
<a name="deploy.action.eks.dependson"></a>

(*DeployToKubernetesCluster*/**DependsOn**)

(Facultatif)

Spécifiez une action, un groupe d'actions ou une porte qui doit s'exécuter correctement pour que cette action soit exécutée.

Pour plus d'informations sur la fonctionnalité « dépend », consultez. [Actions de séquençage](workflows-depends-on.md)

Interface utilisateur correspondante : onglet **Entrées/dépend de - facultatif**

## Compute
<a name="deploy.action.eks.computename"></a>

(*DeployToKubernetesCluster*/**Compute**)

(Facultatif)

Le moteur informatique utilisé pour exécuter les actions de votre flux de travail. Vous pouvez spécifier le calcul au niveau du flux de travail ou au niveau de l'action, mais pas les deux. Lorsqu'elle est spécifiée au niveau du flux de travail, la configuration de calcul s'applique à toutes les actions définies dans le flux de travail. Au niveau du flux de travail, vous pouvez également exécuter plusieurs actions sur la même instance. Pour de plus amples informations, veuillez consulter [Partage du calcul entre les actions](compute-sharing.md).

Interface utilisateur correspondante : *aucune*

## Type
<a name="deploy.action.eks.computetype"></a>

(*DeployToKubernetesCluster*/Compute/**Type**)

(Obligatoire s'[Compute](#deploy.action.eks.computename)il est inclus)

Type de moteur de calcul. Vous pouvez utiliser l'une des valeurs suivantes :
+ **EC2** (éditeur visuel) ou `EC2` (éditeur YAML)

  Optimisé pour la flexibilité lors des courses d'action.
+ **Lambda** (éditeur visuel) ou `Lambda` (éditeur YAML)

  Vitesses de démarrage des actions optimisées.

Pour plus d’informations sur les types de calcul, consultez [Types de calcul](workflows-working-compute.md#compute.types).

**Interface utilisateur correspondante : Configuration tab/Advanced - optionnel/ Type de calcul**

## Fleet
<a name="deploy.action.eks.computefleet"></a>

(*DeployToKubernetesCluster*/Compute/**Fleet**)

(Facultatif)

Spécifiez la machine ou le parc qui exécutera votre flux de travail ou vos actions de flux de travail. Dans le cas des flottes à la demande, lorsqu'une action démarre, le flux de travail fournit les ressources dont il a besoin et les machines sont détruites à la fin de l'action. Exemples de flottes à la demande :`Linux.x86-64.Large`,`Linux.x86-64.XLarge`. Pour plus d'informations sur les flottes à la demande, consultez[Propriétés de la flotte à la demande](workflows-working-compute.md#compute.on-demand).

Avec les flottes provisionnées, vous configurez un ensemble de machines dédiées pour exécuter les actions de votre flux de travail. Ces machines restent inactives, prêtes à exécuter des actions immédiatement. Pour plus d'informations sur les flottes provisionnées, consultez. [Propriétés de la flotte de véhicules provisionnée](workflows-working-compute.md#compute.provisioned-fleets)

S'il `Fleet` est omis, la valeur par défaut est`Linux.x86-64.Large`.

**Interface utilisateur correspondante : Configuration tab/Advanced - facultative/parc de calcul**

## Timeout
<a name="deploy.action.eks.timeout"></a>

(*DeployToKubernetesCluster*/**Timeout**)

(Facultatif)

Spécifiez la durée en minutes (éditeur YAML) ou en heures et minutes (éditeur visuel) pendant laquelle l'action peut être exécutée avant la CodeCatalyst fin de l'action. Le minimum est de 5 minutes et le maximum est décrit dans[Quotas pour les flux de travail dans CodeCatalyst](workflows-quotas.md). Le délai d'expiration par défaut est le même que le délai d'expiration maximal.

Interface utilisateur correspondante : onglet **Configuration/Délai d'expiration - facultatif**

## Environment
<a name="deploy.action.eks.environment"></a>

(*DeployToKubernetesCluster*/**Environment**)

(Obligatoire)

Spécifiez l' CodeCatalyst environnement à utiliser avec l'action. L'action se connecte au Compte AWS VPC Amazon facultatif spécifié dans l'environnement choisi. L'action utilise le rôle IAM par défaut spécifié dans l'environnement pour se connecter au Compte AWS, et utilise le rôle IAM spécifié dans la [connexion Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) pour se connecter à Amazon VPC.

**Note**  
Si le rôle IAM par défaut ne dispose pas des autorisations requises par l'action, vous pouvez configurer l'action pour utiliser un autre rôle. Pour de plus amples informations, veuillez consulter [Modifier le rôle IAM d'une action](deploy-environments-switch-role.md).

Pour plus d'informations sur les environnements, reportez-vous [Déploiement dans Comptes AWS et VPCs](deploy-environments.md) aux sections et[Création d'un environnement](deploy-environments-creating-environment.md).

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Name
<a name="deploy.action.eks.environment.name"></a>

(*DeployToKubernetesCluster*/Environment/**Name**)

(Obligatoire s'[Environment](#deploy.action.eks.environment)il est inclus)

Spécifiez le nom de l'environnement existant que vous souhaitez associer à l'action.

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Connections
<a name="deploy.action.eks.environment.connections"></a>

(*DeployToKubernetesCluster*/Environment/**Connections**)

(Facultatif dans les nouvelles versions de l'action ; obligatoire dans les anciennes versions)

Spécifiez la connexion au compte à associer à l'action. Vous pouvez spécifier un maximum d'une connexion à un compte sous`Environment`.

Si vous ne spécifiez pas de connexion au compte :
+ L'action utilise la Compte AWS connexion et le rôle IAM par défaut spécifiés dans l'environnement de la CodeCatalyst console. Pour plus d'informations sur l'ajout d'une connexion à un compte et d'un rôle IAM par défaut dans l'environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).
+ Le rôle IAM par défaut doit inclure les politiques et les autorisations requises par l'action. Pour déterminer quelles sont ces politiques et autorisations, consultez la description de la propriété **Role** dans la documentation de définition YAML de l'action.

Pour plus d'informations sur les connexions aux comptes, consultez[Permettre l'accès aux AWS ressources avec Connected Comptes AWS](ipa-connect-account.md). Pour plus d'informations sur l'ajout d'une connexion de compte à un environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Name
<a name="deploy.action.eks.environment.connections.name"></a>

(*DeployToKubernetesCluster*/Environment/Connections/**Name**)

(Facultatif)

Spécifiez le nom de la connexion au compte.

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Role
<a name="deploy.action.eks.environment.connections.role"></a>

(*DeployToKubernetesCluster*/Environment/Connections/**Role**)

(Obligatoire s'[Connections](#deploy.action.eks.environment.connections)il est inclus)

Spécifiez le nom du rôle IAM auquel l'action de **cluster Deploy to Kubernetes utilise** pour accéder. AWS Assurez-vous que vous avez [ajouté le rôle à votre CodeCatalyst espace](ipa-connect-account-addroles.md) et qu'il inclut les politiques suivantes.

Si vous ne spécifiez aucun rôle IAM, l'action utilise le rôle IAM par défaut répertorié dans l'[environnement](deploy-environments.md) de la console. CodeCatalyst Si vous utilisez le rôle par défaut dans l'environnement, assurez-vous qu'il est conforme aux politiques suivantes.
+ La politique d'autorisation suivante :
**Avertissement**  
Limitez les autorisations à celles indiquées dans la politique suivante. L'utilisation d'un rôle doté d'autorisations plus étendues peut présenter un risque de sécurité.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "eks:DescribeCluster",
                  "eks:ListClusters"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
**Note**  
La première fois que le rôle est utilisé, utilisez le caractère générique suivant dans la déclaration de politique de ressources, puis délimitez la politique avec le nom de la ressource une fois celle-ci disponible.  

  ```
  "Resource": "*"
  ```
+ La politique de confiance personnalisée suivante :

Assurez-vous que ce rôle est ajouté à :
+ Connexion à votre compte. Pour en savoir plus sur l'ajout d'un rôle IAM à une connexion à un compte, consultez[Ajout de rôles IAM à des connexions de compte](ipa-connect-account-addroles.md).
+ Vos Kubernetes ConfigMap. Pour en savoir plus sur l'ajout d'un rôle IAM à un ConfigMap, consultez la section [Gérer les utilisateurs et les rôles IAM](https://eksctl.io/usage/iam-identity-mappings/) dans la `eksctl` documentation.

**Astuce**  
Consultez également [Tutoriel : Déploiement d'une application sur Amazon EKS](deploy-tut-eks.md) les instructions relatives à l'ajout d'un rôle IAM à une connexion à un compte et ConfigMap.

**Note**  
Vous pouvez utiliser le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle avec cette action, si vous le souhaitez. Pour plus d’informations sur ce rôle, consultez [Création du **CodeCatalystWorkflowDevelopmentRole-*spaceName***rôle pour votre compte et votre espace](ipa-iam-roles.md#ipa-iam-roles-service-create). Sachez que le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle dispose d'autorisations d'accès complètes, ce qui peut présenter un risque de sécurité. Nous vous recommandons de n'utiliser ce rôle que dans les didacticiels et les scénarios où la sécurité est moins préoccupante. 

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' '/ Rôle Environment/account/role**

## Inputs
<a name="deploy.action.eks.inputs"></a>

(*DeployToKubernetesCluster*/**Inputs**)

(Obligatoire s'[Connections](#deploy.action.eks.environment.connections)il est inclus)

La `Inputs` section définit les données dont ils ont `DeployToKubernetesCluster` besoin lors de l'exécution d'un flux de travail.

**Note**  
Une seule entrée (source ou artefact) est autorisée par action **Deploy to Amazon EKS**.

Interface utilisateur correspondante : onglet **Entrées**

## Sources
<a name="deploy.action.eks.inputs.sources"></a>

(*DeployToKubernetesCluster*/Inputs/**Sources**)

(Obligatoire si votre fichier manifeste est stocké dans un référentiel source)

Si votre ou vos fichiers manifestes Kubernetes sont stockés dans un référentiel source, spécifiez l'étiquette de ce référentiel source. Actuellement, la seule étiquette prise en charge est`WorkflowSource`.

Si vos fichiers manifestes ne sont pas contenus dans un référentiel source, ils doivent résider dans un artefact généré par une autre action.

Pour plus d'informations sur les sources, consultez [Connecter les référentiels sources aux flux de travail](workflows-sources.md).

Interface utilisateur correspondante : onglet **Entrées/Sources - facultatif**

## Artifacts - input
<a name="deploy.action.eks.inputs.artifacts"></a>

(*DeployToKubernetesCluster*/Inputs/**Artifacts**)

(Obligatoire si votre fichier manifeste est stocké dans un [artefact de sortie](workflows-working-artifacts-output.md) d'une action précédente)

Si le ou les fichiers manifestes Kubernetes sont contenus dans un artefact généré par une action précédente, spécifiez cet artefact ici. Si vos fichiers manifestes ne sont pas contenus dans un artefact, ils doivent résider dans votre référentiel source.

Pour plus d'informations sur les artefacts, y compris des exemples, consultez[Partage d'artefacts et de fichiers entre les actions](workflows-working-artifacts.md).

Interface utilisateur correspondante : onglet **Configuration/Artefacts - facultatif**

## Configuration
<a name="deploy.action.eks.configuration"></a>

(*DeployToKubernetesCluster*/**Configuration**)

(Obligatoire)

Section dans laquelle vous pouvez définir les propriétés de configuration de l'action.

Interface utilisateur correspondante : onglet **Configuration**

## Namespace
<a name="deploy.action.eks.namespace"></a>

(*DeployToKubernetesCluster*/Configuration/**Namespace**)

(Facultatif)

Spécifiez l'espace de noms Kubernetes dans lequel votre application Kubernetes sera déployée. À utiliser `default` si vous n'utilisez pas d'espaces de noms avec votre cluster. Pour plus d'informations sur les espaces de noms, consultez la section [Subdivision de votre cluster à l'aide des espaces de noms Kubernetes dans la documentation de Kubernetes.](https://kubernetes.io/docs/tasks/administer-cluster/namespaces/#subdividing-your-cluster-using-kubernetes-namespaces)

Si vous omettez l'espace de noms, une valeur de `default` est utilisée.

**Interface utilisateur correspondante : onglet Configuration/espace de noms**

## Region
<a name="deploy.action.eks.region"></a>

(*DeployToKubernetesCluster*/Configuration/**Region**)

(Obligatoire)

Spécifiez la AWS région dans laquelle se trouvent votre cluster et votre service Amazon EKS. Pour obtenir la liste des codes de région, consultez la section [Points de terminaison régionaux](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes) dans le *Références générales AWS*.

**Interface utilisateur correspondante : onglet Configuration/région**

## Cluster
<a name="deploy.action.eks.cluster"></a>

(*DeployToKubernetesCluster*/Configuration/**Cluster**)

(Obligatoire)

Spécifiez le nom d'un cluster Amazon EKS existant. L'action **Déployer vers le cluster Kubernetes** déploiera votre application conteneurisée dans ce cluster. Pour plus d'informations sur les clusters Amazon EKS, consultez la section [Clusters](https://docs.aws.amazon.com/eks/latest/userguide/clusters.html) du **guide de l'utilisateur Amazon EKS**.

**Interface utilisateur correspondante : onglet Configuration/Cluster**

## Manifests
<a name="deploy.action.eks.manifest"></a>

(*DeployToKubernetesCluster*/Configuration/**Manifests**)

(Obligatoire)

*Spécifiez le chemin d'accès à vos fichiers manifestes Kubernetes au format YAML, appelés fichiers de configuration, *fichiers de configuration* ou simplement configurations dans la *documentation* de Kubernetes.*

Si vous utilisez plusieurs fichiers manifestes, placez-les dans un seul dossier et référencez ce dossier. Les fichiers manifestes sont traités de manière alphanumérique par Kubernetes. Veillez donc à préfixer les noms de fichiers par des chiffres ou des lettres croissants pour contrôler l'ordre de traitement. Par exemple :

`00-namespace.yaml`

`01-deployment.yaml`

Si vos fichiers manifestes se trouvent dans votre dépôt source, le chemin est relatif au dossier racine du dépôt source. Si les fichiers se trouvent dans un artefact issu d'une action de flux de travail précédente, le chemin est relatif au dossier racine de l'artefact. 

Exemples :

`Manifests/`

`deployment.yaml`

`my-deployment.yml`

N'utilisez pas de caractères génériques (`*`).

**Note**  
[Les diagrammes Helm](https://helm.sh/docs/topics/charts/) et les [fichiers de personnalisation](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/) ne sont pas pris en charge.

Pour plus d'informations sur les fichiers manifestes, consultez la section [Organisation des configurations de ressources](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#organizing-resource-configurations) dans la documentation de Kubernetes.

**Interface utilisateur correspondante : onglet Configuration/Manifestes**

# Déploiement d'une CloudFormation pile
<a name="deploy-action-cfn"></a>

Cette section décrit comment déployer une AWS CloudFormation pile à l'aide d'un CodeCatalyst flux de travail. Pour ce faire, vous devez ajouter l'action **Deploy CloudFormation stack** à votre flux de travail. L'action déploie une CloudFormation pile de ressources sur la AWS base d'un modèle que vous fournissez. Le modèle peut être :
+ CloudFormation modèle — Pour plus d'informations, consultez la section [Utilisation des CloudFormation modèles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html).
+ AWS SAM modèle — Pour plus d'informations, voir la [spécification AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html).
**Note**  
Pour utiliser un AWS SAM modèle, vous devez d'abord empaqueter votre AWS SAM application à l'aide de l'`[sam package](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-package.html)`opération. Pour un didacticiel expliquant comment créer automatiquement cet emballage dans le cadre d'un CodeCatalyst flux de travail Amazon, consultez[Tutoriel : Déployer une application sans serveur](deploy-tut-lambda.md).

Si la pile existe déjà, l'action exécute l' CloudFormation `[CreateChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html)`opération, puis l'`[ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html)`opération. L'action attend ensuite que les modifications soient déployées et se marque comme réussie ou comme ayant échoué, en fonction des résultats.

Utilisez l'action **Deploy CloudFormation stack** si vous possédez déjà un AWS SAM modèle CloudFormation OR contenant des ressources que vous souhaitez déployer, ou si vous prévoyez d'en générer une automatiquement dans le cadre d'une [action de création de flux de travail à l'aide d'](build-add-action.md)outils tels que AWS SAM et [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html).

Il n'existe aucune restriction quant au modèle que vous pouvez utiliser, quel que soit le modèle que vous pouvez créer CloudFormation ou que AWS SAM vous pouvez utiliser avec l'action **Deploy CloudFormation stack**.

**Astuce**  
Pour consulter un didacticiel expliquant comment déployer une application sans serveur à l'aide de l'action **Deploy CloudFormation stack**, consultez[Tutoriel : Déployer une application sans serveur](deploy-tut-lambda.md).

**Topics**
+ [Image d'exécution utilisée par l'action « Deploy CloudFormation stack »](#deploy-action-cfn-runtime)
+ [Tutoriel : Déployer une application sans serveur](deploy-tut-lambda.md)
+ [Ajout de l'action « Déployer la CloudFormation pile »](deploy-action-cfn-adding.md)
+ [Configuration des annulations](deploy-consumption-enable-alarms.md)
+ [Variables « Déployer la CloudFormation pile »](deploy-action-cfn-variables.md)
+ [Action « Déployer une CloudFormation pile » YAML](deploy-action-ref-cfn.md)

## Image d'exécution utilisée par l'action « Deploy CloudFormation stack »
<a name="deploy-action-cfn-runtime"></a>

L'action **Deploy CloudFormation stack** s'exécute sur une [image de novembre 2022](build-images.md#build.previous-image). Pour de plus amples informations, veuillez consulter [Images actives](build-images.md#build-curated-images).

# Tutoriel : Déployer une application sans serveur
<a name="deploy-tut-lambda"></a>

Dans ce didacticiel, vous apprendrez à créer, tester et déployer une application sans serveur sous forme de CloudFormation pile à l'aide d'un flux de travail.

L'application présentée dans ce didacticiel est une simple application Web qui produit un message « Hello World ». Il se compose d'une AWS Lambda fonction et d'un Amazon API Gateway, et vous le créez à l'aide de [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html), qui est une extension de [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

**Topics**
+ [Conditions préalables](#deploy-tut-lambda-cfn-prereqs)
+ [Étape 1 : Création d'un référentiel source](#deploy-tut-lambda-cfn-source)
+ [Étape 2 : créer des AWS rôles](#deploy-tut-lambda-cfn-roles)
+ [Étape 3 : ajouter AWS des rôles à CodeCatalyst](#deploy-tut-lambda-cfn-roles-add)
+ [Étape 4 : Création d'un compartiment Amazon S3](#deploy-tut-lambda-cfn-s3)
+ [Étape 5 : Ajouter des fichiers source](#deploy-tut-lambda-cfn-files)
+ [Étape 6 : créer et exécuter un flux de travail](#deploy-tut-lambda-cfn-workflow)
+ [Étape 7 : Apporter une modification](#deploy-tut-lambda-cfn-change)
+ [Nettoyage](#deploy-tut-lambda-cfn-clean-up)

## Conditions préalables
<a name="deploy-tut-lambda-cfn-prereqs"></a>

Avant de commencer :
+ Vous avez besoin d'un CodeCatalyst **espace** avec un AWS compte connecté. Pour de plus amples informations, veuillez consulter [Création d’un espace](spaces-create.md).
+ Dans votre espace, vous avez besoin d'un projet vide appelé :

  ```
  codecatalyst-cfn-project
  ```

  Utilisez l'option **Partir de zéro** pour créer ce projet.

  Pour de plus amples informations, veuillez consulter [Création d'un projet vide dans Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ Dans votre projet, vous avez besoin d'un CodeCatalyst **environnement** appelé :

  ```
  codecatalyst-cfn-environment
  ```

  Configurez cet environnement comme suit :
  + Choisissez n'importe quel type, tel que **Non-production**.
  +  AWS Connectez-y votre compte.
  + Pour le **rôle IAM par défaut**, choisissez n'importe quel rôle. Vous spécifierez un autre rôle ultérieurement.

  Pour de plus amples informations, veuillez consulter [Déploiement dans Comptes AWS et VPCs](deploy-environments.md).

## Étape 1 : Création d'un référentiel source
<a name="deploy-tut-lambda-cfn-source"></a>

Au cours de cette étape, vous créez un référentiel source dans CodeCatalyst. Ce référentiel est utilisé pour stocker les fichiers sources du didacticiel, tels que le fichier de fonction Lambda. 

Pour plus d'informations sur les référentiels sources, consultez[Création d'un référentiel source](source-repositories-create.md).

**Pour créer un référentiel source**

1. Dans CodeCatalyst le volet de navigation, sélectionnez **Code**, puis sélectionnez **Référentiels sources**. 

1. Choisissez **Ajouter un référentiel**, puis sélectionnez **Créer un référentiel**.

1. Dans **Nom du référentiel**, entrez :

   ```
   codecatalyst-cfn-source-repository
   ```

1. Choisissez **Créer**.

Vous venez de créer un dépôt appelé`codecatalyst-cfn-source-repository`.

## Étape 2 : créer des AWS rôles
<a name="deploy-tut-lambda-cfn-roles"></a>

Au cours de cette étape, vous allez créer les rôles AWS IAM suivants :
+ **Rôle de déploiement** : accorde à l'action CodeCatalyst **Deploy CloudFormation Stack** l'autorisation d'accéder à votre AWS compte et au CloudFormation service sur lesquels vous déploierez votre application sans serveur. L'action **Deploy CloudFormation stack** fait partie de votre flux de travail.
+ **Rôle de création** : accorde à l'action de CodeCatalyst création l'autorisation d'accéder à votre AWS compte et d'écrire sur Amazon S3 où votre package d'application sans serveur sera stocké. L'action de création fait partie de votre flux de travail.
+ **Rôle Stack** : CloudFormation autorise la lecture et la modification des ressources spécifiées dans le AWS SAM modèle que vous fournirez ultérieurement. Accorde également l'autorisation de CloudWatch.

Pour plus d'informations sur les rôles IAM, consultez la section Rôles [IAM dans le Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) de l'*Gestion des identités et des accès AWS utilisateur*.

**Note**  
Pour gagner du temps, vous pouvez créer un seul rôle, appelé `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle, au lieu des trois rôles répertoriés précédemment. Pour de plus amples informations, veuillez consulter [Création du **CodeCatalystWorkflowDevelopmentRole-*spaceName***rôle pour votre compte et votre espace](ipa-iam-roles.md#ipa-iam-roles-service-create). Sachez que le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle dispose d'autorisations très étendues qui peuvent présenter un risque de sécurité. Nous vous recommandons de n'utiliser ce rôle que dans les didacticiels et les scénarios où la sécurité est moins préoccupante. Ce didacticiel part du principe que vous créez les trois rôles répertoriés précédemment.

**Note**  
Un [rôle d'exécution Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) est également requis, mais vous n'avez pas besoin de le créer maintenant car le `sam-template.yml` fichier le crée pour vous lorsque vous exécutez le flux de travail à l'étape 5.



**Pour créer un rôle de déploiement**

1. Créez une politique pour le rôle, comme suit :

   1. Connectez-vous à AWS.

   1. Ouvrez la console IAM à l'adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Dans le panneau de navigation, choisissez **Politiques**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Choisissez l'onglet **JSON**.

   1. Supprimez le code existant.

   1. Collez le code suivant :
**Note**  
La première fois que le rôle est utilisé pour exécuter des actions de flux de travail, utilisez le caractère générique dans la déclaration de politique de ressources, puis définissez la stratégie avec le nom de la ressource une fois celle-ci disponible.  

      ```
      "Resource": "*"
      ```

   1. Choisissez **Suivant : Balises**.

   1. Choisissez **Suivant : Vérification**.

   1. Dans **Nom**, entrez :

      ```
      codecatalyst-deploy-policy
      ```

   1. Choisissez **Create Policy** (Créer une politique).

      Vous venez de créer une politique d'autorisation.

1. Créez le rôle de déploiement comme suit :

   1. Dans le volet de navigation, sélectionnez **Rôles**, puis **Créer un rôle**.

   1. Choisissez une **politique de confiance personnalisée**.

   1. Supprimez la politique de confiance personnalisée existante.

   1. Ajoutez la politique de confiance personnalisée suivante :

   1. Choisissez **Suivant**.

   1. Dans **Politiques d'autorisations**, recherchez `codecatalyst-deploy-policy` et cochez la case correspondante.

   1. Choisissez **Suivant**.

   1. Dans **Nom du rôle**, entrez :

      ```
      codecatalyst-deploy-role
      ```

   1. Dans le **champ Description du rôle**, entrez :

      ```
      CodeCatalyst deploy role
      ```

   1. Choisissez **Créer un rôle**.

   Vous venez de créer un rôle de déploiement avec une politique de confiance et une politique d'autorisations.

1. Obtenez l'ARN du rôle de déploiement, comme suit :

   1. Dans le panneau de navigation, choisissez **Roles** (Rôles).

   1. Dans le champ de recherche, entrez le nom du rôle que vous venez de créer (`codecatalyst-deploy-role`).

   1. Choisissez le rôle dans la liste.

      La page **Résumé** du rôle apparaît.

   1. En haut, copiez la valeur de l'**ARN**.

   Vous avez maintenant créé le rôle de déploiement avec les autorisations appropriées et obtenu son ARN.

**Pour créer un rôle de build**

1. Créez une politique pour le rôle, comme suit :

   1. Connectez-vous à AWS.

   1. Ouvrez la console IAM à l'adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Dans le panneau de navigation, choisissez **Politiques**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Choisissez l'onglet **JSON**.

   1. Supprimez le code existant.

   1. Collez le code suivant :
**Note**  
La première fois que le rôle est utilisé pour exécuter des actions de flux de travail, utilisez le caractère générique dans la déclaration de politique de ressources, puis définissez la stratégie avec le nom de la ressource une fois celle-ci disponible.  

      ```
      "Resource": "*"
      ```

   1. Choisissez **Suivant : Balises**.

   1. Choisissez **Suivant : Vérification**.

   1. Dans **Nom**, entrez :

      ```
      codecatalyst-build-policy
      ```

   1. Choisissez **Create Policy** (Créer une politique).

      Vous venez de créer une politique d'autorisation.

1. Créez le rôle de build, comme suit :

   1. Dans le volet de navigation, sélectionnez **Rôles**, puis **Créer un rôle**.

   1. Choisissez une **politique de confiance personnalisée**.

   1. Supprimez la politique de confiance personnalisée existante.

   1. Ajoutez la politique de confiance personnalisée suivante :

   1. Choisissez **Suivant**.

   1. Dans **Politiques d'autorisations**, recherchez `codecatalyst-build-policy` et cochez la case correspondante.

   1. Choisissez **Suivant**.

   1. Dans **Nom du rôle**, entrez :

      ```
      codecatalyst-build-role
      ```

   1. Dans le **champ Description du rôle**, entrez :

      ```
      CodeCatalyst build role
      ```

   1. Choisissez **Créer un rôle**.

   Vous avez maintenant créé un rôle de build avec une politique de confiance et une politique d'autorisations.

1. Obtenez l'ARN du rôle de build, comme suit :

   1. Dans le panneau de navigation, choisissez **Roles** (Rôles).

   1. Dans le champ de recherche, entrez le nom du rôle que vous venez de créer (`codecatalyst-build-role`).

   1. Choisissez le rôle dans la liste.

      La page **Résumé** du rôle s'affiche.

   1. En haut, copiez la valeur de l'**ARN**.

   Vous avez maintenant créé le rôle de build avec les autorisations appropriées et obtenu son ARN.<a name="deploy-tut-lambda-cfn-roles-stack"></a>

**Pour créer un rôle de pile**

1. Connectez-vous à AWS l'aide du compte sur lequel vous souhaitez déployer votre stack.

1. Ouvrez la console IAM à l'adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Créez le rôle de pile comme suit :

   1. Dans le panneau de navigation, choisissez **Roles** (Rôles).

   1. Sélectionnez **Create role** (Créer un rôle).

   1. Choisissez **Service AWS **.

   1. Dans la section **Cas d'utilisation**, choisissez **CloudFormation**dans la liste déroulante.

   1. Sélectionnez le bouton **CloudFormation**radio.

   1. En bas de la page, choisissez **Next**.

   1. À l'aide de la zone de recherche, recherchez les politiques d'autorisation suivantes, puis cochez leurs cases respectives.
**Note**  
Si vous recherchez une politique et qu'elle n'apparaît pas, assurez-vous de choisir **Effacer les filtres** et réessayez.
      + **CloudWatchFullAccess**
      + **AWS CloudFormationFullAccess**
      + **IAMFullAccès**
      + **AWS Lambda\$1 FullAccess**
      + **APIGatewayAdministrateur Amazon**
      + **Amazon S3 FullAccess**
      + **AmazonEC2ContainerRegistryFullAccess**

      La première politique autorise l'accès CloudWatch pour activer les rollbacks de pile lorsqu'une alarme se produit.

      Les politiques restantes permettent AWS SAM d'accéder aux services et aux ressources de la pile qui seront déployés dans ce didacticiel. Pour plus d'informations, consultez la section [Permissions](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-permissions.html) dans le *guide du AWS Serverless Application Model développeur*.

   1. Choisissez **Suivant**.

   1. Dans **Nom du rôle**, entrez :

      ```
      codecatalyst-stack-role
      ```

   1. Choisissez **Créer un rôle**.

1. Obtenez l'ARN du rôle de pile, comme suit :

   1. Dans le panneau de navigation, choisissez **Roles** (Rôles).

   1. Dans le champ de recherche, entrez le nom du rôle que vous venez de créer (`codecatalyst-stack-role`).

   1. Choisissez le rôle dans la liste.

   1. Dans la section **Résumé**, copiez la valeur de l'**ARN**. Vous en aurez besoin ultérieurement.

   Vous avez maintenant créé le rôle stack avec les autorisations appropriées, et vous avez obtenu son ARN.

## Étape 3 : ajouter AWS des rôles à CodeCatalyst
<a name="deploy-tut-lambda-cfn-roles-add"></a>

Au cours de cette étape, vous ajoutez le rôle de création (`codecatalyst-build-role`) et le rôle de déploiement (`codecatalyst-deploy-role`) à la connexion au CodeCatalyst compte dans votre espace.

**Note**  
Il n'est pas nécessaire d'ajouter le rôle stack (`codecatalyst-stack-role`) à la connexion. Cela est dû au fait que le rôle de pile est utilisé *CloudFormation*(et non CodeCatalyst), une *fois* qu'une connexion est déjà établie entre CodeCatalyst et AWS en utilisant le rôle de déploiement. Comme le rôle stack n'est pas utilisé CodeCatalyst pour accéder à AWS, il n'est pas nécessaire de l'associer à une connexion à un compte.

**Pour ajouter des rôles de création et de déploiement à votre compte, connectez-vous**

1. Dans CodeCatalyst, naviguez jusqu'à votre espace.

1. Choisissez **AWS des comptes**. La liste des connexions au compte s'affiche.

1. Choisissez la connexion au compte qui représente le AWS compte sur lequel vous avez créé vos rôles de création et de déploiement.

1. Choisissez **Gérer les rôles depuis AWS la console de gestion**.

   La page **Ajouter un rôle IAM à Amazon CodeCatalyst Space** s'affiche. Il se peut que vous deviez vous connecter pour accéder à la page.

1. Sélectionnez **Ajouter un rôle existant que vous avez créé dans IAM**.

   Une liste déroulante apparaît. La liste affiche tous les rôles IAM dotés d'une politique de confiance qui inclut les principaux de `codecatalyst.amazonaws.com` service `codecatalyst-runner.amazonaws.com` et.

1. Dans la liste déroulante, sélectionnez`codecatalyst-build-role`, puis choisissez **Ajouter un rôle**.

1. Choisissez **Ajouter un rôle IAM**, choisissez **Ajouter un rôle existant que vous avez créé dans IAM**, puis dans la liste déroulante, sélectionnez. `codecatalyst-deploy-role` Choisissez **Ajouter un rôle**.

   Vous avez maintenant ajouté les rôles de création et de déploiement à votre espace.

1. Copiez la valeur du **nom CodeCatalyst d'affichage Amazon**. Vous aurez besoin de cette valeur ultérieurement, lors de la création de votre flux de travail.

## Étape 4 : Création d'un compartiment Amazon S3
<a name="deploy-tut-lambda-cfn-s3"></a>

Au cours de cette étape, vous créez un compartiment Amazon S3 dans lequel vous stockez le fichier .zip du package de déploiement de votre application sans serveur.

**Pour créer un compartiment Amazon S3**

1. Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le volet principal, choisissez **Create bucket**.

1. Dans le **champ Nom du compartiment**, entrez :

   ```
   codecatalyst-cfn-s3-bucket
   ```

1. Choisissez une région dans **Région AWS **. Ce didacticiel part du principe que vous avez choisi **US West (Oregon) us-west-2**. Pour plus d'informations sur les régions prises en charge par Amazon S3, consultez la section [Points de terminaison et quotas Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) dans le *Références générales AWS*.

1. Au bas de la page, choisissez **Create bucket**.

Vous venez de créer un bucket appelé **codecatalyst-cfn-s3-bucket** dans la région us-west-2 de l'ouest des États-Unis (Oregon).

## Étape 5 : Ajouter des fichiers source
<a name="deploy-tut-lambda-cfn-files"></a>

Au cours de cette étape, vous allez ajouter plusieurs fichiers source de l'application à votre référentiel CodeCatalyst source. Le `hello-world` dossier contient les fichiers d'application que vous allez déployer. Le `tests` dossier contient les tests unitaires. La structure des dossiers est la suivante :

```
.
|— hello-world
|  |— tests
|     |— unit
|        |— test-handler.js
|  |— app.js
|— .npmignore
|— package.json
|— sam-template.yml
|— setup-sam.sh
```

### fichier .npmignore
<a name="deploy-tut-lambda-cfn-files-npmignore"></a>

Le `.npmignore` fichier indique les fichiers et dossiers que npm doit exclure du package de l'application. Dans ce didacticiel, npm exclut le `tests` dossier car il ne fait pas partie de l'application.

**Pour ajouter le fichier .npmignore**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet, `codecatalyst-cfn-project`

1. Dans le volet de navigation, choisissez **Code**, puis sélectionnez **Référentiels sources**.

1. Dans la liste des référentiels sources, choisissez votre référentiel,`codecatalyst-cfn-source-repository`. 

1. Dans **Fichiers**, choisissez **Créer un fichier**.

1. Dans **Nom du fichier**, entrez :

   ```
   .npmignore
   ```

1. Dans la zone de texte, entrez le code suivant :

   ```
   tests/*
   ```

1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

   Vous venez de créer un fichier appelé `.npmignore` à la racine de votre dépôt.

### fichier package.json
<a name="deploy-tut-lambda-cfn-files-package-json"></a>

Le `package.json` fichier contient des métadonnées importantes concernant votre projet Node, telles que le nom du projet, le numéro de version, la description, les dépendances et d'autres détails qui décrivent comment interagir avec votre application et l'exécuter.

`package.json`Dans ce didacticiel, vous trouverez une liste de dépendances et un `test` script. Le script de test effectue les opérations suivantes :
+ À l'aide de [mocha](https://mochajs.org/), le script de test exécute les tests unitaires spécifiés dans `hello-world/tests/unit/` et écrit les résultats dans un `junit.xml` fichier à l'aide du rapporteur [xunit]().
+ À l'aide [d'Istanbul (NYC)](https://istanbul.js.org/), le script de test génère un rapport de couverture de code (`clover.xml`) à l'aide du [Clover](https://openclover.org/doc/manual/4.2.0/general--about-openclover.html) Reporter. Pour plus d'informations, consultez la section [Utilisation de reporters alternatifs](https://istanbul.js.org/docs/advanced/alternative-reporters/#clover) dans la documentation d'Istanbul.

**Pour ajouter le fichier package.json**

1. Dans votre référentiel, dans **Fichiers**, choisissez **Créer un fichier**.

1. Dans le **champ Nom du fichier**, entrez :

   ```
   package.json
   ```

1. Dans la zone de texte, entrez le code suivant :

   ```
   {
     "name": "hello_world",
     "version": "1.0.0",
     "description": "hello world sample for NodeJS",
     "main": "app.js",
     "repository": "https://github.com/awslabs/aws-sam-cli/tree/develop/samcli/local/init/templates/cookiecutter-aws-sam-hello-nodejs",
     "author": "SAM CLI",
     "license": "MIT",
     "dependencies": {
       "axios": "^0.21.1",
       "nyc": "^15.1.0"
     },
     "scripts": {
       "test": "nyc --reporter=clover mocha hello-world/tests/unit/ --reporter xunit --reporter-option output=junit.xml"
     },
     "devDependencies": {
       "aws-sdk": "^2.815.0",
       "chai": "^4.2.0",
       "mocha": "^8.2.1"
     }
   }
   ```

1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

   Vous venez d'ajouter un fichier appelé `package.json` à la racine du dépôt.

### fichier sam-template.yml
<a name="deploy-tut-lambda-cfn-files-sam-template-yml"></a>

Le `sam-template.yml` fichier contient les instructions pour déployer la fonction Lambda et API Gateway et pour les configurer ensemble. Il suit la [spécification du AWS Serverless Application Model modèle](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html), qui étend la spécification du CloudFormation modèle.

Dans ce didacticiel, vous utilisez un AWS SAM modèle au lieu d'un CloudFormation modèle normal car il AWS SAM propose un type de ressource utile [AWS: :Serverless : :Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html). Ce type effectue une grande partie de la behind-the-scenes configuration que vous devez normalement écrire pour utiliser la CloudFormation syntaxe de base. Par exemple, `AWS::Serverless::Function` crée une fonction Lambda, un rôle d'exécution Lambda et des mappages de sources d'événements qui démarrent la fonction. Vous devez coder tout cela si vous voulez l'écrire en utilisant basic CloudFormation.

Bien que ce didacticiel utilise un modèle pré-écrit, vous pouvez en générer un dans le cadre de votre flux de travail à l'aide d'une action de génération. Pour de plus amples informations, veuillez consulter [Déploiement d'une CloudFormation pile](deploy-action-cfn.md).

**Pour ajouter le fichier sam-template.yml**

1. Dans votre référentiel, dans **Fichiers**, choisissez **Créer un fichier**.

1. Dans le **champ Nom du fichier**, entrez :

   ```
   sam-template.yml
   ```

1. Dans la zone de texte, entrez le code suivant :

   ```
   AWSTemplateFormatVersion: '2010-09-09'
   Transform: AWS::Serverless-2016-10-31
   Description: >
     serverless-api
   
     Sample SAM Template for serverless-api
     
   # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
   Globals:
     Function:
       Timeout: 3
   
   Resources:
     HelloWorldFunction:
       Type: AWS::Serverless::Function # For details on this resource type, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
       Properties:
         CodeUri: hello-world/
         Handler: app.lambdaHandler
         Runtime: nodejs12.x
         Events:
           HelloWorld:
             Type: Api # For details on this event source type, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
             Properties:
               Path: /hello
               Method: get
   
   Outputs:
     # ServerlessRestApi is an implicit API created out of the events key under Serverless::Function
     # Find out about other implicit resources you can reference within AWS SAM at
     # https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api
     HelloWorldApi:
       Description: "API Gateway endpoint URL for the Hello World function"
       Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"
     HelloWorldFunction:
       Description: "Hello World Lambda function ARN"
       Value: !GetAtt HelloWorldFunction.Arn
     HelloWorldFunctionIamRole:
       Description: "Implicit Lambda execution role created for the Hello World function"
       Value: !GetAtt HelloWorldFunctionRole.Arn
   ```

1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

   Vous venez d'ajouter un fichier appelé `sam-template.yml` sous le dossier racine de votre dépôt.

### fichier setup-sam.sh
<a name="deploy-tut-lambda-cfn-files-setup-sam"></a>

Le `setup-sam.sh` fichier contient les instructions de téléchargement et d'installation de l'utilitaire AWS SAM CLI. Le flux de travail utilise cet utilitaire pour empaqueter la `hello-world` source.

**Pour ajouter le fichier setup-sam.sh**

1. Dans votre référentiel, dans **Fichiers**, choisissez **Créer un fichier**.

1. Dans le **champ Nom du fichier**, entrez :

   ```
   setup-sam.sh
   ```

1. Dans la zone de texte, entrez le code suivant :

   ```
   #!/usr/bin/env bash
   echo "Setting up sam"
   
   yum install unzip -y
   
   curl -LO https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip
   unzip -qq aws-sam-cli-linux-x86_64.zip -d sam-installation-directory
   
   ./sam-installation-directory/install; export AWS_DEFAULT_REGION=us-west-2
   ```

   Dans le code précédent, remplacez *us-west-2* par votre AWS région.

1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

   Vous venez d'ajouter un fichier appelé `setup-sam.sh` à la racine du dépôt.

### fichier app.js
<a name="deploy-tut-lambda-cfn-files-app-js"></a>

`app.js`Contient le code de la fonction Lambda. Dans ce didacticiel, le code renvoie le texte`hello world`.

**Pour ajouter le fichier app.js**

1. Dans votre référentiel, dans **Fichiers**, choisissez **Créer un fichier**.

1. Dans le **champ Nom du fichier**, entrez :

   ```
   hello-world/app.js
   ```

1. Dans la zone de texte, entrez le code suivant :

   ```
   // const axios = require('axios')
   // const url = 'http://checkip.amazonaws.com/';
   let response;
   
   /**
    *
    * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format
    * @param {Object} event - API Gateway Lambda Proxy Input Format
    *
    * Context doc: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html 
    * @param {Object} context
    *
    * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
    * @returns {Object} object - API Gateway Lambda Proxy Output Format
    * 
    */
   exports.lambdaHandler = async (event, context) => {
       try {
           // const ret = await axios(url);
           response = {
               'statusCode': 200,
               'body': JSON.stringify({
                   message: 'hello world',
                   // location: ret.data.trim()
               })
           }
       } catch (err) {
           console.log(err);
           return err;
       }
   
       return response
   };
   ```

1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

   Vous avez maintenant créé un dossier appelé `hello-world` et un fichier appelé`app.js`.

### fichier test-handler.js
<a name="deploy-tut-lambda-cfn-files-test-handler-js"></a>

Le `test-handler.js` fichier contient des tests unitaires pour la fonction Lambda.

**Pour ajouter le fichier test-handler.js**

1. Dans votre référentiel, dans **Fichiers**, choisissez **Créer un fichier**.

1. Dans le **champ Nom du fichier**, entrez :

   ```
   hello-world/tests/unit/test-handler.js
   ```

1. Dans la zone de texte, entrez le code suivant :

   ```
   'use strict';
   
   const app = require('../../app.js');
   const chai = require('chai');
   const expect = chai.expect;
   var event, context;
   
   describe('Tests index', function () {
       it('verifies successful response', async () => {
           const result = await app.lambdaHandler(event, context)
   
           expect(result).to.be.an('object');
           expect(result.statusCode).to.equal(200);
           expect(result.body).to.be.an('string');
   
           let response = JSON.parse(result.body);
   
           expect(response).to.be.an('object');
           expect(response.message).to.be.equal("hello world");
           // expect(response.location).to.be.an("string");
       });
   });
   ```

1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

   Vous venez d'ajouter un fichier appelé `test-handler.js` sous le `hello-world/tests/unit` dossier.

Vous avez maintenant ajouté tous vos fichiers sources.

Prenez le temps de vérifier votre travail et de vous assurer que vous avez placé tous les fichiers dans les bons dossiers. La structure des dossiers est la suivante :

```
.
|— hello-world
|  |— tests
|     |— unit
|        |— test-handler.js
|  |— app.js
|— .npmignore
|— README.md
|— package.json
|— sam-template.yml
|— setup-sam.sh
```

## Étape 6 : créer et exécuter un flux de travail
<a name="deploy-tut-lambda-cfn-workflow"></a>

Au cours de cette étape, vous créez un flux de travail qui empaquette votre code source Lambda et le déploie. Le flux de travail comprend les éléments de base suivants qui s'exécutent de manière séquentielle :
+ Un déclencheur : ce déclencheur lance automatiquement l'exécution du flux de travail lorsque vous apportez une modification à votre référentiel source. Pour plus d'informations sur les déclencheurs, consultez [Démarrage d'un flux de travail exécuté automatiquement à l'aide de déclencheurs](workflows-add-trigger.md).
+ Une action de test (`Test`) — Au déclenchement, cette action installe le [gestionnaire de packages Node (npm)](https://www.npmjs.com/), puis exécute la `npm run test` commande. Cette commande indique à npm d'exécuter le `test` script défini dans le `package.json` fichier. Le `test` script exécute à son tour les tests unitaires et génère deux rapports : un rapport de test (`junit.xml`) et un rapport de couverture de code (`clover.xml`). Pour de plus amples informations, veuillez consulter [fichier package.json](#deploy-tut-lambda-cfn-files-package-json).

  Ensuite, l'action de test transforme les rapports XML en CodeCatalyst rapports et les affiche dans la CodeCatalyst console, sous l'onglet **Rapports** de l'action de test.

  Pour plus d'informations sur l'action de test, consultez[Tests avec des flux de travailTests avec des flux de travail](test-workflow-actions.md).
+ Une action de construction (`BuildBackend`) : à la fin de l'action de test, l'action de génération télécharge et installe la AWS SAM CLI, empaquète la `hello-world` source et copie le package dans votre compartiment Amazon S3, là où le service Lambda s'attend à ce qu'il se trouve. L'action génère également un nouveau fichier AWS SAM modèle appelé `sam-template-packaged.yml` et le place dans un artefact de sortie appelé`buildArtifact`.

  Pour plus d'informations sur l'action de génération, consultez[Construire avec des flux de travail](build-workflow-actions.md).
+ Une action de déploiement (`DeployCloudFormationStack`) : à la fin de l'action de génération, l'action de déploiement recherche l'artefact de sortie généré par l'action de génération (`buildArtifact`), trouve le AWS SAM modèle à l'intérieur de celui-ci, puis exécute le modèle. Le AWS SAM modèle crée une pile qui déploie l'application sans serveur.

**Pour créer un flux de travail**

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez **Créer un flux de travail**.

1. Pour **Référentiel source**, choisissez`codecatalyst-cfn-source-repository`.

1. Pour **Branch**, choisissez`main`.

1. Choisissez **Créer**.

1. Supprimez l'exemple de code YAML.

1. Ajoutez le code YAML suivant :
**Note**  
Dans le code YAML qui suit, vous pouvez omettre les `Connections:` sections si vous le souhaitez. Si vous omettez ces sections, vous devez vous assurer que le rôle spécifié dans le champ **Rôle IAM par défaut** de votre environnement inclut les autorisations et les politiques de confiance des deux rôles décrits dans. [Étape 2 : créer des AWS rôles](#deploy-tut-lambda-cfn-roles) Pour plus d'informations sur la configuration d'un environnement doté d'un rôle IAM par défaut, consultez[Création d'un environnement](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-cfn-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: PUSH
       Branches:
         - main   
   Actions:
     Test:
       Identifier: aws/managed-test@v1
       Inputs:
         Sources:
           - WorkflowSource
       Outputs:
         Reports:
           CoverageReport:
             Format: CLOVERXML
             IncludePaths:
               - "coverage/*"
           TestReport:
             Format: JUNITXML
             IncludePaths:
               - junit.xml
       Configuration:
         Steps:
           - Run: npm install
           - Run: npm run test  
     BuildBackend:
       Identifier: aws/build@v1
       DependsOn:
         - Test
       Environment:
         Name: codecatalyst-cfn-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-build-role
       Inputs:
         Sources:
           - WorkflowSource
       Configuration: 
         Steps:
           - Run: . ./setup-sam.sh
           - Run: sam package --template-file sam-template.yml --s3-bucket codecatalyst-cfn-s3-bucket --output-template-file sam-template-packaged.yml --region us-west-2
       Outputs:
         Artifacts:
           - Name: buildArtifact
             Files:
               - "**/*"
     DeployCloudFormationStack:
       Identifier: aws/cfn-deploy@v1
       DependsOn: 
         - BuildBackend
       Environment:
         Name: codecatalyst-cfn-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-deploy-role
       Inputs:
         Artifacts:
           - buildArtifact
         Sources: []
       Configuration:
         name: codecatalyst-cfn-stack
         region: us-west-2
         role-arn: arn:aws:iam::111122223333:role/StackRole
         template: ./sam-template-packaged.yml
         capabilities: CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND
   ```

   Dans le code précédent, remplacez :
   + Les deux instances *codecatalyst-cfn-environment* portent le nom de votre environnement.
   + Dans les deux cas, *codecatalyst-account-connection* avec le nom d'affichage de la connexion à votre compte. Le nom d'affichage peut être un chiffre. Pour de plus amples informations, veuillez consulter [Étape 3 : ajouter AWS des rôles à CodeCatalyst](#deploy-tut-lambda-cfn-roles-add).
   + *codecatalyst-build-role*avec le nom du rôle de build que vous avez créé dans[Étape 2 : créer des AWS rôles](#deploy-tut-lambda-cfn-roles).
   + *codecatalyst-cfn-s3-bucket*avec le nom du compartiment Amazon S3 dans lequel vous l'avez créé[Étape 4 : Création d'un compartiment Amazon S3](#deploy-tut-lambda-cfn-s3).
   + Les deux instances *us-west-2* concernent la région dans laquelle se trouve votre compartiment Amazon S3 (première instance) et dans laquelle votre stack sera déployé (deuxième instance). Ces régions peuvent être différentes. Ce didacticiel part du principe que les deux régions sont définies sur`us-west-2`. Pour en savoir plus sur les régions prises en charge par Amazon S3 CloudFormation, consultez la section [Points de terminaison et quotas du service](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) dans le *Références générales AWS*.
   + *codecatalyst-deploy-role*avec le nom du rôle de déploiement que vous avez créé dans[Étape 2 : créer des AWS rôles](#deploy-tut-lambda-cfn-roles).
   + *codecatalyst-cfn-environment*avec le nom de l'environnement dans lequel vous l'avez créé[Conditions préalables](#deploy-tut-lambda-cfn-prereqs).
   + *arn:aws:iam::111122223333:role/StackRole*avec l'Amazon Resource Name (ARN) du rôle de pile que vous avez créé dans[Étape 2 : créer des AWS rôles](#deploy-tut-lambda-cfn-roles).
**Note**  
Si vous avez décidé de ne pas créer de rôles de génération, de déploiement et d'empilement *codecatalyst-build-role**codecatalyst-deploy-role*, remplacez et *arn:aws:iam::111122223333:role/StackRole* par le nom ou l'ARN du `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle. Pour plus d’informations sur ce rôle, consultez [Étape 2 : créer des AWS rôles](#deploy-tut-lambda-cfn-roles).

   Pour plus d'informations sur les propriétés du code présenté précédemment, consultez le[Action « Déployer une CloudFormation pile » YAML](deploy-action-ref-cfn.md).

1. (Facultatif) Choisissez **Valider** pour vous assurer que le code YAML est valide avant de valider.

1. Choisissez **Commit (Valider)**.

1. Dans la boîte de dialogue du **flux de travail de validation**, entrez ce qui suit :

   1. Pour le **nom du fichier de flux** de travail, conservez la valeur par défaut,`codecatalyst-cfn-workflow`.

   1. Pour le **message de validation**, entrez :

      ```
      add initial workflow file
      ```

   1. Pour **Repository**, choisissez **codecatalyst-cfn-source-repository**.

   1. Pour **Nom de la branche**, choisissez **main**.

   1. Choisissez **Commit (Valider)**.

   Vous venez de créer un flux de travail. L'exécution d'un flux de travail démarre automatiquement en raison du déclencheur défini en haut du flux de travail. Plus précisément, lorsque vous avez validé (et transféré) le `codecatalyst-cfn-workflow.yaml` fichier dans votre référentiel source, le déclencheur a lancé l'exécution du flux de travail.

**Pour consulter le flux de travail en cours d'exécution**

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le flux de travail que vous venez de créer :`codecatalyst-cfn-workflow`.

1. Choisissez l'onglet **Runs**.

1. Dans la colonne **Run ID**, choisissez l'Run ID.

1. Choisissez **Test** pour voir la progression des tests.

1. Choisissez **BuildBackend**de voir la progression de la construction.

1. Choisissez **DeployCloudFormationStack**de voir la progression du déploiement.

   Pour plus d'informations sur l'affichage des détails des courses, consultez[Afficher le statut et les détails de l'exécution du flux de travail](workflows-view-run.md).

1. Lorsque l'**DeployCloudFormationStack**action est terminée, procédez comme suit :
   + Si l'exécution du flux de travail a réussi, passez à la procédure suivante.
   + Si l'exécution du flux de travail a échoué lors du **test** ou de **BuildBackend**l'action, choisissez **Logs** pour résoudre le problème.
   + Si l'exécution du flux de travail a échoué lors de l'**DeployCloudFormationStack**action, choisissez l'action de déploiement, puis cliquez sur l'onglet **Résumé**. Accédez à la section **CloudFormation des événements** pour afficher le message d'erreur détaillé. En cas de restauration, supprimez la `codecatalyst-cfn-stack` pile via la CloudFormation console AWS avant de réexécuter le flux de travail.

**Pour vérifier le déploiement**

1. Après un déploiement réussi, choisissez **Variables (7)** dans la barre de menu horizontale située en haut. (Ne choisissez pas **Variables** dans le volet de droite.)

1. Ensuite **HelloWorldApi**, collez l'`https://`URL dans un navigateur.

   Un message JSON « **hello world** » de la fonction Lambda s'affiche, indiquant que le flux de travail a déployé et configuré correctement la fonction Lambda et l'API Gateway.
**Astuce**  
Vous pouvez avoir CodeCatalyst affiché cette URL dans le diagramme de flux de travail avec quelques petites configurations. Pour de plus amples informations, veuillez consulter [Afficher l'URL de l'application dans le diagramme du flux de travail](deploy-app-url.md).

**Pour vérifier les résultats des tests unitaires et la couverture du code**

1. Dans le diagramme du flux de travail, choisissez **Test**, puis **Reports**.

1. Choisissez **TestReport**d'afficher les résultats des tests unitaires ou **CoverageReport**d'afficher les détails de couverture du code des fichiers testés, dans ce cas, `app.js` et`test-handler.js`.

**Pour vérifier les ressources déployées**

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

1. Observez l'**codecatalyst-cfn-stack**API créée par le AWS SAM modèle. Le nom de l'API provient de la `Configuration/name` valeur du fichier de définition du flux de travail (`codecatalyst-cfn-workflow.yaml`).

1. Ouvrez la AWS Lambda console à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Dans le volet de navigation, choisissez **Fonctions**.

1. Choisissez votre fonction Lambda,. `codecatalyst-cfn-stack-HelloWorldFunction-string`

1. Vous pouvez voir comment l'API Gateway est un déclencheur de cette fonction. Cette intégration a été automatiquement configurée en fonction du type de AWS SAM `AWS::Serverless::Function` ressource.

## Étape 7 : Apporter une modification
<a name="deploy-tut-lambda-cfn-change"></a>

Au cours de cette étape, vous apportez une modification à votre code source Lambda et vous le validez. Ce commit lance une nouvelle exécution du flux de travail. Cette exécution déploie la nouvelle fonction Lambda dans un schéma bleu-vert qui utilise la configuration de transfert de trafic par défaut spécifiée dans la console Lambda.

**Pour apporter une modification à votre source Lambda**

1. Dans CodeCatalyst, accédez à votre projet.

1. Dans le volet de navigation, choisissez **Code**, puis sélectionnez **Référentiels sources**.

1. Choisissez votre référentiel source`codecatalyst-cfn-source-repository`.

1. Modifiez le dossier de candidature :

   1. Choisissez le dossier `hello-world`.

   1. Choisissez le `app.js` fichier.

   1. Choisissez **Modifier**.

   1. À la ligne 23, changez `hello world` en**Tutorial complete\$1**.

   1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

      La validation entraîne le démarrage d'un flux de travail. Cette exécution échouera car vous n'avez pas mis à jour les tests unitaires pour refléter le changement de nom.

1. Mettez à jour les tests unitaires :

   1. Sélectionnez `hello-world\tests\unit\test-handler.js`.

   1. Choisissez **Modifier**.

   1. À la ligne 19, changez `hello world` en**Tutorial complete\$1**.

   1. Choisissez **Commit**, puis sélectionnez **Commit** à nouveau.

      La validation entraîne le démarrage d'une autre exécution du flux de travail. Cette course sera couronnée de succès.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez`codecatalyst-cfn-workflow`, puis choisissez **Runs**.

1. Choisissez l'ID d'exécution de la dernière exécution. Il devrait toujours être en cours.

1. Choisissez **Test **BuildBackend****, et **DeployCloudFormationStack**pour voir la progression de l'exécution du flux de travail.

1. Lorsque le flux de travail est terminé, choisissez **Variables (7)** en haut.

1. Ensuite **HelloWorldApi**, collez l'`https://`URL dans un navigateur.

   Un `Tutorial complete!` message s'affiche dans le navigateur, indiquant que votre nouvelle application a été déployée avec succès.

## Nettoyage
<a name="deploy-tut-lambda-cfn-clean-up"></a>

Nettoyez les fichiers et les services utilisés dans ce didacticiel pour éviter de vous les faire facturer.

**Pour nettoyer dans la CodeCatalyst console**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Supprimer`codecatalyst-cfn-workflow`.

1. Supprimer`codecatalyst-cfn-environment`.

1. Supprimer`codecatalyst-cfn-source-repository`.

1. Supprimer`codecatalyst-cfn-project`.

**Pour nettoyer dans le AWS Management Console**

1. Nettoyez en CloudFormation procédant comme suit :

   1. Ouvrez la CloudFormation console à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

   1. Supprimez la `codecatalyst-cfn-stack`.

      La suppression de la pile supprime toutes les ressources du didacticiel des services API Gateway et Lambda.

1. Nettoyez dans Amazon S3, comme suit :

   1. Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. Cliquez sur le bouton `codecatalyst-cfn-s3-bucket`.

   1. Supprimez le contenu du compartiment.

   1. Supprimez le compartiment.

1. Nettoyez dans IAM, comme suit :

   1. Ouvrez la console IAM à l'adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Supprimez la `codecatalyst-deploy-policy`.

   1. Supprimez la `codecatalyst-build-policy`.

   1. Supprimez la `codecatalyst-stack-policy`.

   1. Supprimez la `codecatalyst-deploy-role`.

   1. Supprimez la `codecatalyst-build-role`.

   1. Supprimez la `codecatalyst-stack-role`.

Dans ce didacticiel, vous avez appris à déployer une application sans serveur sous forme de CloudFormation pile à l'aide d'un CodeCatalyst flux de travail et d'une action de **déploiement de CloudFormation pile**.

# Ajout de l'action « Déployer la CloudFormation pile »
<a name="deploy-action-cfn-adding"></a>

Suivez les instructions suivantes pour ajouter l'action **Deploy CloudFormation stack** à votre flux de travail. 

------
#### [ Visual ]

**Pour ajouter l'action « Déployer la CloudFormation pile » à l'aide de l'éditeur visuel**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **Visual**.

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action **Deploy CloudFormation stack** et effectuez l'une des opérations suivantes :
   + Choisissez le signe plus (**\$1**) pour ajouter l'action au diagramme de flux de travail et ouvrir son volet de configuration.

     Or
   + Choisissez **Deploy CloudFormation stack**. La boîte de dialogue des détails de l'action apparaît. Dans cette boîte de dialogue :
     + (Facultatif) Choisissez **Télécharger** pour [afficher le code source de l'action](workflows-view-source.md#workflows-view-source.title).
     + Choisissez **Ajouter au flux de travail** pour ajouter l'action au diagramme du flux de travail et ouvrir son volet de configuration.

1. Dans les onglets **Entrées** et **Configuration**, complétez les champs en fonction de vos besoins. Pour une description de chaque champ, consultez le[Action « Déployer une CloudFormation pile » YAML](deploy-action-ref-cfn.md). Cette référence fournit des informations détaillées sur chaque champ (et la valeur de propriété YAML correspondante) tel qu'il apparaît dans les éditeurs YAML et visuels.

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------
#### [ YAML ]

**Pour ajouter l'action « Deploy CloudFormation stack » à l'aide de l'éditeur YAML**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action **Deploy CloudFormation stack** et effectuez l'une des opérations suivantes :
   + Choisissez le signe plus (**\$1**) pour ajouter l'action au diagramme de flux de travail et ouvrir son volet de configuration.

     Or
   + Choisissez **Deploy CloudFormation stack**. La boîte de dialogue des détails de l'action apparaît. Dans cette boîte de dialogue :
     + (Facultatif) Choisissez **Télécharger** pour [afficher le code source de l'action](workflows-view-source.md#workflows-view-source.title).
     + Choisissez **Ajouter au flux de travail** pour ajouter l'action au diagramme du flux de travail et ouvrir son volet de configuration.

1. Modifiez les propriétés du code YAML en fonction de vos besoins. Une explication de chaque propriété disponible est fournie dans le[Action « Déployer une CloudFormation pile » YAML](deploy-action-ref-cfn.md).

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------

# Configuration des annulations
<a name="deploy-consumption-enable-alarms"></a>

Par défaut, si l'action **Deploy CloudFormation stack** échoue, elle ramènera la pile au dernier état stable connu. CloudFormation Vous pouvez modifier le comportement afin que les annulations se produisent non seulement en cas d'échec de l'action, mais également lorsqu'une CloudWatch alarme Amazon spécifiée se produit. Pour plus d'informations sur les CloudWatch alarmes, consultez la section [Utilisation des CloudWatch alarmes Amazon](https://docs.aws.amazon.com/) dans le *guide de CloudWatch l'utilisateur Amazon*.

Vous pouvez également modifier le comportement par défaut afin de CloudFormation ne pas annuler la pile en cas d'échec de l'action. 

Suivez les instructions ci-dessous pour configurer les annulations.

**Note**  
Vous ne pouvez pas démarrer une restauration manuellement.

------
#### [ Visual ]

**Avant de commencer**

1. Assurez-vous de disposer d'un [flux de travail](workflow.md) qui inclut une action **Deploy CloudFormation stack** fonctionnelle. Pour de plus amples informations, veuillez consulter [Déploiement d'une CloudFormation pile](deploy-action-cfn.md).

1. Dans le rôle spécifié dans le champ **Stack role - facultatif** de l'action **Deploy CloudFormation stack**, assurez-vous d'inclure l'**CloudWatchFullAccess**autorisation. Pour plus d'informations sur la création de ce rôle avec les autorisations appropriées, consultez[Étape 2 : créer des AWS rôles](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles).

**Pour configurer les alarmes d'annulation pour l'action « Déployer CloudFormation une pile »**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **Visual**.

1. Choisissez votre action **Deploy CloudFormation stack**.

1. Dans le volet de détails, sélectionnez **Configuration**.

1. En bas de la page, développez la **section Avancé**.

1. Sous **Surveiller l'alarme ARNs**, choisissez **Ajouter une alarme**.

1. Entrez les informations dans les champs suivants.
   + **ARN de l'alarme**

     Spécifiez le nom de ressource Amazon (ARN) d'une CloudWatch alarme Amazon à utiliser comme déclencheur d'annulation. Par exemple, `arn:aws:cloudwatch::123456789012:alarm/MyAlarm`. Vous pouvez disposer d'un maximum de cinq déclencheurs de restauration.
**Note**  
Si vous spécifiez un ARN CloudWatch d'alarme, vous devez également configurer des autorisations supplémentaires pour permettre à l'action d'y accéder CloudWatch. Pour de plus amples informations, veuillez consulter [Configuration des annulations](#deploy-consumption-enable-alarms).
   + **Temps de surveillance**

     Spécifiez une durée, comprise entre 0 et 180 minutes, pendant laquelle CloudFormation les alarmes spécifiées seront surveillées. La surveillance commence une *fois* que toutes les ressources de la pile ont été déployées. Si l'alarme se produit dans le délai de surveillance spécifié, le déploiement échoue et CloudFormation annule l'ensemble du fonctionnement de la pile.

     Par défaut : 0. CloudFormation surveille uniquement les alarmes pendant le déploiement des ressources de la pile, et non après.

------
#### [ YAML ]

**Pour configurer les déclencheurs d'annulation pour l'action « Déployer CloudFormation une pile »**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom d'un flux de travail qui inclut l'action **Deploy CloudFormation stack**. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. Ajoutez les `monitor-timeout-in-minutes` propriétés `monitor-alarm-arns` et dans le code YAML pour ajouter des déclencheurs de restauration. Pour une explication de chaque propriété, voir[Action « Déployer une CloudFormation pile » YAML](deploy-action-ref-cfn.md).

1. Dans le rôle spécifié dans la `role-arn` propriété de l'action **Deploy CloudFormation stack**, assurez-vous d'inclure l'**CloudWatchFullAccess**autorisation. Pour plus d'informations sur la création de ce rôle avec les autorisations appropriées, consultez[Étape 2 : créer des AWS rôles](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles).

------

------
#### [ Visual ]

**Pour désactiver les annulations pour l'action « Déployer CloudFormation une pile »**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom d'un flux de travail qui inclut l'action **Deploy CloudFormation stack**. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **Visual**.

1. Choisissez votre action **Deploy CloudFormation stack**.

1. Dans le volet de détails, sélectionnez **Configuration**.

1. En bas de la page, développez la **section Avancé**.

1. Activez **Désactiver la restauration.**

------
#### [ YAML ]

**Pour désactiver les annulations pour l'action « Déployer CloudFormation une pile »**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom d'un flux de travail qui inclut l'action **Deploy CloudFormation stack**. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. Ajoutez la `disable-rollback: 1` propriété dans le code YAML pour arrêter les annulations. Pour une explication de cette propriété, voir[Action « Déployer une CloudFormation pile » YAML](deploy-action-ref-cfn.md).

------

# Variables « Déployer la CloudFormation pile »
<a name="deploy-action-cfn-variables"></a>

L'action **Deploy CloudFormation stack** produit et définit les variables suivantes au moment de l'exécution. Ces variables sont connues sous le nom de *variables prédéfinies*.

Pour plus d'informations sur le référencement de ces variables dans un flux de travail, consultez[Utilisation de variables prédéfinies](workflows-using-predefined-variables.md).


| Clé | Valeur | 
| --- | --- | 
|  plate-forme de déploiement  |  Nom de la plateforme de déploiement. Codé en dur pour. `AWS:CloudFormation`  | 
|  region  |  Le code de région du Région AWS qui a été déployé lors de l'exécution du flux de travail. Exemple : `us-west-2`  | 
|  identifiant de pile  |  Le nom de ressource Amazon (ARN) de la pile déployée. Exemple : `arn:aws:cloudformation:us-west-2:111122223333:stack/codecatalyst-cfn-stack/6aad4380-100a-11ec-a10a-03b8a84d40df`  | 

# Action « Déployer une CloudFormation pile » YAML
<a name="deploy-action-ref-cfn"></a>

Voici la définition YAML de l'action **Deploy CloudFormation stack**. Pour savoir comment utiliser cette action, consultez[Déploiement d'une CloudFormation pile](deploy-action-cfn.md).

Cette définition d'action existe sous la forme d'une section au sein d'un fichier de définition de flux de travail plus large. Pour plus d’informations sur ce fichier, consultez [Définition du flux de travail YAML](workflow-reference.md).

**Note**  
La plupart des propriétés YAML suivantes ont des éléments d'interface utilisateur correspondants dans l'éditeur visuel. Pour rechercher un élément de l'interface utilisateur, utilisez **Ctrl\$1F**. L'élément sera répertorié avec sa propriété YAML associée.

```
# The workflow definition starts here.
# See Propriétés de haut niveau for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.    
  DeployCloudFormationStack:  
    Identifier: aws/cfn-deploy@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: DeployRole
    Inputs:
      Sources:
        - source-name-1
      Artifacts:
        - CloudFormation-artifact
    Configuration:
      name: stack-name
      region: us-west-2
      template: template-path
      role-arn: arn:aws:iam::123456789012:role/StackRole        
      capabilities: CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND
      parameter-overrides: KeyOne=ValueOne,KeyTwo=ValueTwo | path-to-JSON-file
      no-execute-changeset: 1|0
      fail-on-empty-changeset: 1|0
      disable-rollback: 1|0
      termination-protection: 1|0
      timeout-in-minutes: minutes
      notification-arns: arn:aws:sns:us-east-1:123456789012:MyTopic,arn:aws:sns:us-east-1:123456789012:MyOtherTopic
      monitor-alarm-arns: arn:aws:cloudwatch::123456789012:alarm/MyAlarm,arn:aws:cloudwatch::123456789012:alarm/MyOtherAlarm
      monitor-timeout-in-minutes: minutes       
      tags: '[{"Key":"MyKey1","Value":"MyValue1"},{"Key":"MyKey2","Value":"MyValue2"}]'
```

## DeployCloudFormationStack
<a name="deploy.action.cfn.deploycloudformationstack"></a>

(Obligatoire)

Spécifiez le nom de l'action. Tous les noms d'action doivent être uniques dans le flux de travail. Les noms d'action sont limités aux caractères alphanumériques (a-z, A-Z, 0-9), aux tirets (-) et aux traits de soulignement (\$1). Les espaces ne sont pas autorisés. Vous ne pouvez pas utiliser de guillemets pour activer les caractères spéciaux et les espaces dans les noms d'action.

Valeur par défaut : `DeployCloudFormationStack_nn`.

Interface utilisateur correspondante : onglet Configuration/nom **d'affichage de l'action**

## Identifier
<a name="deploy.action.cfn.identifier"></a>

(*DeployCloudFormationStack*/**Identifier**)

(Obligatoire)

Identifie l'action. Ne modifiez pas cette propriété, sauf si vous souhaitez modifier la version. Pour de plus amples informations, veuillez consulter [Spécification de la version de l'action à utiliser](workflows-action-versions.md).

Valeur par défaut : `aws/cfn-deploy@v1`.

**Interface utilisateur correspondante : diagramme de flux de travail/ DeployCloudFormationStack \$1nn/ aws/cfn-deploy @v1 label**

## DependsOn
<a name="deploy.action.cfn.dependson"></a>

(*DeployCloudFormationStack*/**DependsOn**)

(Facultatif)

Spécifiez une action, un groupe d'actions ou une porte qui doit s'exécuter correctement pour que cette action soit exécutée.

Pour plus d'informations sur la fonctionnalité « dépend », consultez. [Actions de séquençage](workflows-depends-on.md)

Interface utilisateur correspondante : onglet **Entrées/dépend de - facultatif**

## Compute
<a name="deploy.action.cfn.computename"></a>

(*DeployCloudFormationStack*/**Compute**)

(Facultatif)

Le moteur informatique utilisé pour exécuter les actions de votre flux de travail. Vous pouvez spécifier le calcul au niveau du flux de travail ou au niveau de l'action, mais pas les deux. Lorsqu'elle est spécifiée au niveau du flux de travail, la configuration de calcul s'applique à toutes les actions définies dans le flux de travail. Au niveau du flux de travail, vous pouvez également exécuter plusieurs actions sur la même instance. Pour de plus amples informations, veuillez consulter [Partage du calcul entre les actions](compute-sharing.md).

Interface utilisateur correspondante : *aucune*

## Type
<a name="deploy.action.cfn.computetype"></a>

(*DeployCloudFormationStack*/Compute/**Type**)

(Obligatoire s'[Compute](#deploy.action.cfn.computename)il est inclus)

Type de moteur de calcul. Vous pouvez utiliser l'une des valeurs suivantes :
+ **EC2** (éditeur visuel) ou `EC2` (éditeur YAML)

  Optimisé pour la flexibilité lors des courses d'action.
+ **Lambda** (éditeur visuel) ou `Lambda` (éditeur YAML)

  Vitesses de démarrage des actions optimisées.

Pour plus d’informations sur les types de calcul, consultez [Types de calcul](workflows-working-compute.md#compute.types).

**Interface utilisateur correspondante : Configuration tab/Advanced - optionnel/ Type de calcul**

## Fleet
<a name="deploy.action.cfn.computefleet"></a>

(*DeployCloudFormationStack*/Compute/**Fleet**)

(Facultatif)

Spécifiez la machine ou le parc qui exécutera votre flux de travail ou vos actions de flux de travail. Dans le cas des flottes à la demande, lorsqu'une action démarre, le flux de travail fournit les ressources dont il a besoin et les machines sont détruites à la fin de l'action. Exemples de flottes à la demande :`Linux.x86-64.Large`,`Linux.x86-64.XLarge`. Pour plus d'informations sur les flottes à la demande, consultez[Propriétés de la flotte à la demande](workflows-working-compute.md#compute.on-demand).

Avec les flottes provisionnées, vous configurez un ensemble de machines dédiées pour exécuter les actions de votre flux de travail. Ces machines restent inactives, prêtes à exécuter des actions immédiatement. Pour plus d'informations sur les flottes provisionnées, consultez. [Propriétés de la flotte de véhicules provisionnée](workflows-working-compute.md#compute.provisioned-fleets)

S'il `Fleet` est omis, la valeur par défaut est`Linux.x86-64.Large`.

**Interface utilisateur correspondante : Configuration tab/Advanced - optionnel/ Parc de calcul**

## Timeout
<a name="deploy.action.cfn.timeout"></a>

(*DeployCloudFormationStack*/**Timeout**)

(Facultatif)

Spécifiez la durée en minutes (éditeur YAML) ou en heures et minutes (éditeur visuel) pendant laquelle l'action peut être exécutée avant la CodeCatalyst fin de l'action. Le minimum est de 5 minutes et le maximum est décrit dans[Quotas pour les flux de travail dans CodeCatalyst](workflows-quotas.md). Le délai d'expiration par défaut est le même que le délai d'expiration maximal.

Interface utilisateur correspondante : onglet **Configuration/Délai d'expiration en minutes - facultatif**

## Environment
<a name="deploy.action.cfn.environment"></a>

(*DeployCloudFormationStack*/**Environment**)

(Obligatoire)

Spécifiez l' CodeCatalyst environnement à utiliser avec l'action. L'action se connecte au Compte AWS VPC Amazon facultatif spécifié dans l'environnement choisi. L'action utilise le rôle IAM par défaut spécifié dans l'environnement pour se connecter au Compte AWS, et utilise le rôle IAM spécifié dans la [connexion Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) pour se connecter à Amazon VPC.

**Note**  
Si le rôle IAM par défaut ne dispose pas des autorisations requises par l'action, vous pouvez configurer l'action pour utiliser un autre rôle. Pour de plus amples informations, veuillez consulter [Modifier le rôle IAM d'une action](deploy-environments-switch-role.md).

Pour plus d'informations sur les environnements, reportez-vous [Déploiement dans Comptes AWS et VPCs](deploy-environments.md) aux sections et[Création d'un environnement](deploy-environments-creating-environment.md).

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Name
<a name="deploy.action.cfn.environment.name"></a>

(*DeployCloudFormationStack*/Environment/**Name**)

(Obligatoire s'[Environment](#deploy.action.cfn.environment)il est inclus)

Spécifiez le nom de l'environnement existant que vous souhaitez associer à l'action.

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Connections
<a name="deploy.action.cfn.environment.connections"></a>

(*DeployCloudFormationStack*/Environment/**Connections**)

(Facultatif dans les nouvelles versions de l'action ; obligatoire dans les anciennes versions)

Spécifiez la connexion au compte à associer à l'action. Vous pouvez spécifier un maximum d'une connexion à un compte sous`Environment`.

Si vous ne spécifiez pas de connexion au compte :
+ L'action utilise la Compte AWS connexion et le rôle IAM par défaut spécifiés dans l'environnement de la CodeCatalyst console. Pour plus d'informations sur l'ajout d'une connexion à un compte et d'un rôle IAM par défaut dans l'environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).
+ Le rôle IAM par défaut doit inclure les politiques et les autorisations requises par l'action. Pour déterminer quelles sont ces politiques et autorisations, consultez la description de la propriété **Role** dans la documentation de définition YAML de l'action.

Pour plus d'informations sur les connexions aux comptes, consultez[Permettre l'accès aux AWS ressources avec Connected Comptes AWS](ipa-connect-account.md). Pour plus d'informations sur l'ajout d'une connexion de compte à un environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Name
<a name="deploy.action.cfn.environment.connections.name"></a>

(*DeployCloudFormationStack*/Environment/Connections/**Name**)

(Obligatoire s'[Connections](#deploy.action.cfn.environment.connections)il est inclus)

Spécifiez le nom de la connexion au compte.

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Role
<a name="deploy.action.cfn.environment.connections.role"></a>

(*DeployCloudFormationStack*/Environment/Connections/**Role**)

(Obligatoire s'[Connections](#deploy.action.cfn.environment.connections)il est inclus)

Spécifiez le nom du rôle IAM que l'action **Deploy CloudFormation stack** utilise pour accéder au CloudFormation service AWS et à celui-ci. Assurez-vous que vous avez [ajouté le rôle à votre CodeCatalyst espace](ipa-connect-account-addroles.md) et qu'il inclut les politiques suivantes.

Si vous ne spécifiez aucun rôle IAM, l'action utilise le rôle IAM par défaut répertorié dans l'[environnement](deploy-environments.md) de la console. CodeCatalyst Si vous utilisez le rôle par défaut dans l'environnement, assurez-vous qu'il est conforme aux politiques suivantes.
+ La politique d'autorisation suivante :
**Avertissement**  
Limitez les autorisations à celles indiquées dans la politique suivante. L'utilisation d'un rôle doté d'autorisations plus étendues peut présenter un risque de sécurité.
**Note**  
La première fois que le rôle est utilisé, utilisez le caractère générique suivant dans la déclaration de politique de ressources, puis délimitez la politique avec le nom de la ressource une fois celle-ci disponible.  

  ```
  "Resource": "*"
  ```
+ La politique de confiance personnalisée suivante :

**Note**  
Vous pouvez utiliser le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle avec cette action, si vous le souhaitez. Pour plus d’informations sur ce rôle, consultez [Création du **CodeCatalystWorkflowDevelopmentRole-*spaceName***rôle pour votre compte et votre espace](ipa-iam-roles.md#ipa-iam-roles-service-create). Sachez que le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle dispose d'autorisations d'accès complètes, ce qui peut présenter un risque de sécurité. Nous vous recommandons de n'utiliser ce rôle que dans les didacticiels et les scénarios où la sécurité est moins préoccupante. 

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' '/ Rôle Environment/account/role**

## Inputs
<a name="deploy.action.cfn.inputs"></a>

(*DeployCloudFormationStack*/**Inputs**)

(Facultatif)

La `Inputs` section définit les données dont ils ont `DeployCloudFormationStack` besoin lors de l'exécution d'un flux de travail.

**Note**  
Un maximum de quatre entrées (une source et trois artefacts) sont autorisées par action de ** CloudFormation stack Deploy**.

Si vous devez faire référence à des fichiers résidant dans différentes entrées (par exemple, une source et un artefact), l'entrée source est l'entrée principale et l'artefact est l'entrée secondaire. Les références aux fichiers dans les entrées secondaires utilisent un préfixe spécial pour les distinguer du fichier principal. Pour en savoir plus, consultez [Exemple : Référencement de fichiers dans plusieurs artefacts](workflows-working-artifacts-ex.md#workflows-working-artifacts-ex-ref-file).

Interface utilisateur correspondante : onglet **Entrées**

## Sources
<a name="deploy.action.cfn.inputs.sources"></a>

(*DeployCloudFormationStack*/Inputs/**Sources**)

(Obligatoire si votre AWS SAM modèle CloudFormation ou votre modèle est stocké dans un référentiel source)

Si votre AWS SAM modèle CloudFormation ou votre modèle est stocké dans un référentiel source, spécifiez l'étiquette de ce référentiel source. Actuellement, la seule étiquette prise en charge est`WorkflowSource`.

Si votre AWS SAM modèle CloudFormation ou votre modèle ne figure pas dans un référentiel source, il doit résider dans un artefact généré par une autre action ou dans un compartiment Amazon S3.

Pour plus d'informations sur les sources, consultez [Connecter les référentiels sources aux flux de travail](workflows-sources.md).

Interface utilisateur correspondante : onglet **Entrées/Sources - facultatif**

## Artifacts - input
<a name="deploy.action.cfn.inputs.artifacts"></a>

(*DeployCloudFormationStack*/Inputs/**Artifacts**)

(Obligatoire si votre AWS SAM modèle CloudFormation ou votre modèle est stocké dans un [artefact de sortie](workflows-working-artifacts-output.md) d'une action précédente)

Si le AWS SAM modèle CloudFormation ou que vous souhaitez déployer est contenu dans un artefact généré par une action précédente, spécifiez cet artefact ici. Si votre CloudFormation modèle n'est pas contenu dans un artefact, il doit résider dans votre référentiel source ou dans un compartiment Amazon S3.

Pour plus d'informations sur les artefacts, y compris des exemples, consultez[Partage d'artefacts et de fichiers entre les actions](workflows-working-artifacts.md).

Interface utilisateur correspondante : onglet **Configuration/Artefacts - facultatif**

## Configuration
<a name="deploy.action.cfn.configuration"></a>

(*DeployCloudFormationStack*/**Configuration**)

(Obligatoire)

Section dans laquelle vous pouvez définir les propriétés de configuration de l'action.

Interface utilisateur correspondante : onglet **Configuration**

## name
<a name="deploy.action.cfn.stackname"></a>

(*DeployCloudFormationStack*/Configuration/**name**)

(Obligatoire)

Spécifiez le nom de la CloudFormation pile que l'action **Deploy CloudFormation stack** crée ou met à jour.

Interface utilisateur correspondante : onglet Configuration/nom de la **pile**

## region
<a name="deploy.action.cfn.stackregion"></a>

(*DeployCloudFormationStack*/Configuration/**region**)

(Obligatoire)

Spécifiez le Région AWS lieu dans lequel la pile sera déployée. Pour obtenir la liste des codes de région, consultez la section [Points de terminaison régionaux](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes).

Interface utilisateur correspondante : onglet Configuration/région de **pile**

## template
<a name="deploy.action.cfn.templatepath"></a>

(*DeployCloudFormationStack*/Configuration/**template**)

(Obligatoire)

Spécifiez le nom et le chemin d'accès à votre fichier CloudFormation ou à votre fichier AWS SAM modèle. Le modèle peut être au format JSON ou YAML et peut résider dans un référentiel source, un artefact issu d'une action précédente ou un compartiment Amazon S3. Si le fichier modèle se trouve dans un référentiel source ou un artefact, le chemin est relatif à la source ou à la racine de l'artefact. Si le modèle se trouve dans un compartiment Amazon S3, le chemin est la valeur de l'**URL de l'objet** du modèle.

Exemples :

`./MyFolder/MyTemplate.json`

`MyFolder/MyTemplate.yml`

`https://MyBucket.s3.us-west-2.amazonaws.com/MyTemplate.yml`

**Note**  
Vous devrez peut-être ajouter un préfixe au chemin du fichier du modèle pour indiquer dans quel artefact ou dans quelle source le trouver. Pour plus d’informations, consultez [Référencement des fichiers du référentiel source](workflows-sources-reference-files.md) et [Référencement de fichiers dans un artefact](workflows-working-artifacts-refer-files.md).

**Interface utilisateur correspondante : onglet/modèle de configuration**

## role-arn
<a name="deploy.action.cfn.stackrolearn"></a>

(*DeployCloudFormationStack*/Configuration/**role-arn**)

(Obligatoire)

Spécifiez le nom de ressource Amazon (ARN) du rôle de pile. CloudFormation utilise ce rôle pour accéder aux ressources de votre stack et les modifier. Par exemple : `arn:aws:iam::123456789012:role/StackRole`.

Assurez-vous que le rôle de pile inclut :
+ Une ou plusieurs politiques d'autorisation. Les politiques dépendent des ressources dont vous disposez dans votre pile. Par exemple, si votre pile inclut une AWS Lambda fonction, vous devez ajouter des autorisations qui accordent l'accès à Lambda. Si vous avez suivi le didacticiel décrit dans[Tutoriel : Déployer une application sans serveur](deploy-tut-lambda.md), il inclut une procédure intitulée, [Pour créer un rôle de pile](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles-stack) qui répertorie les autorisations dont le rôle de pile a besoin si vous déployez une pile d'applications sans serveur typique.
**Avertissement**  
Limitez les autorisations à celles requises par le CloudFormation service pour accéder aux ressources de votre pile. L'utilisation d'un rôle doté d'autorisations plus étendues peut présenter un risque de sécurité.
+ La politique de confiance suivante :

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

****  

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

------

Associez éventuellement ce rôle à la connexion de votre compte. Pour en savoir plus sur l'association d'un rôle IAM à une connexion à un compte, consultez[Ajout de rôles IAM à des connexions de compte](ipa-connect-account-addroles.md). Si vous n'associez pas le rôle de pile à la connexion au compte, le rôle de pile n'apparaîtra pas dans la liste déroulante des **rôles de pile** de l'éditeur visuel ; toutefois, l'ARN du rôle peut toujours être spécifié dans le `role-arn` champ à l'aide de l'éditeur YAML.

**Note**  
Vous pouvez utiliser le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle avec cette action, si vous le souhaitez. Pour plus d’informations sur ce rôle, consultez [Création du **CodeCatalystWorkflowDevelopmentRole-*spaceName***rôle pour votre compte et votre espace](ipa-iam-roles.md#ipa-iam-roles-service-create). Sachez que le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle dispose d'autorisations d'accès complètes, ce qui peut présenter un risque de sécurité. Nous vous recommandons de n'utiliser ce rôle que dans les didacticiels et les scénarios où la sécurité est moins préoccupante. 

Interface utilisateur correspondante : onglet **Configuration/rôle Stack - facultatif**

## capabilities
<a name="deploy.action.cfn.capabilities"></a>

(*DeployCloudFormationStack*/Configuration/**capabilities**)

(Obligatoire)

Spécifiez une liste des fonctionnalités IAM requises pour autoriser la création CloudFormation de certaines piles. Dans la plupart des cas, vous pouvez repartir `capabilities` avec la valeur par défaut de`CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND`.

Si vous voyez `##[error] requires capabilities: [capability-name]` dans les journaux des actions de votre ** CloudFormation stack Deploy**, consultez [Comment corriger les erreurs liées aux fonctionnalités IAM ?](troubleshooting-workflows.md#troubleshooting-workflows-capabilities) pour plus d'informations sur la manière de résoudre le problème.

Pour plus d'informations sur les fonctionnalités IAM, consultez la section [Reconnaissance des ressources IAM dans les CloudFormation modèles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities) du Guide de l'utilisateur *IAM*.

**Interface utilisateur correspondante : onglet Configuration/Avancé/Capacités**

## parameter-overrides
<a name="deploy.action.cfn.parameter.overrides"></a>

(*DeployCloudFormationStack*/Configuration/**parameter-overrides**)

(Facultatif)

Spécifiez dans votre AWS SAM modèle CloudFormation ou dans votre modèle des paramètres qui n'ont pas de valeurs par défaut ou pour lesquels vous souhaitez spécifier des valeurs autres que celles par défaut. Pour plus d'informations sur les paramètres, consultez la section [Paramètres](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) du *guide de AWS CloudFormation l'utilisateur*.

L'`parameter-overrides`établissement accepte :
+ Un fichier JSON contenant les paramètres et les valeurs.
+ Liste de paramètres et de valeurs séparée par des virgules.

**Pour spécifier un fichier JSON**

1. Assurez-vous que le fichier JSON utilise l'une des syntaxes suivantes :

   ```
   {
     "Parameters": {
       "Param1": "Value1",
       "Param2": "Value2",
       ...
     }
   }
   ```

   Ou...

   ```
   [
     {
        "ParameterKey": "Param1",
        "ParameterValue": "Value1"
     },
     ...
   ]
   ```

   (Il existe d'autres syntaxes, mais elles ne sont pas prises en charge CodeCatalyst au moment de la rédaction.) Pour plus d'informations sur la spécification de CloudFormation paramètres dans un fichier JSON, consultez la section [Syntaxe JSON prise en charge](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/deploy/index.html#supported-json-syntax) dans le manuel de *référence des AWS CLI commandes*.

1. Spécifiez le chemin d'accès au fichier JSON en utilisant l'un des formats suivants :
   + Si votre fichier JSON réside dans un artefact de sortie d'une action précédente, utilisez :

     `file:///artifacts/current-action-name/output-artifact-name/path-to-json-file`

     Voir l'**exemple 1** pour plus de détails.
   + Si votre fichier JSON se trouve dans votre référentiel source, utilisez :

     `file:///sources/WorkflowSource/path-to-json-file`

     Voir l'**exemple 2** pour plus de détails.

     **Exemple 1** — Le fichier JSON réside dans un artefact de sortie

     ```
     ##My workflow YAML
     ...
     Actions:
       MyBuildAction:
         Identifier: aws/build@v1
         Outputs:
           Artifacts:
             - Name: ParamArtifact
               Files:
                 - params.json
         Configuration:
         ...
       MyDeployCFNStackAction:
         Identifier: aws/cfn-deploy@v1
         Configuration:
           parameter-overrides: file:///artifacts/MyDeployCFNStackAction/ParamArtifact/params.json
     ```

     **Exemple 2** — Le fichier JSON se trouve dans votre référentiel source, dans un dossier appelé `my/folder`

     ```
     ##My workflow YAML
     ...
     Actions:
       MyDeployCloudFormationStack:
         Identifier: aws/cfn-deploy@v1
         Inputs:
           Sources:
             - WorkflowSource
         Configuration:
           parameter-overrides: file:///sources/WorkflowSource/my/folder/params.json
     ```

**Pour utiliser une liste de paramètres séparée par des virgules**
+ Ajoutez des paires nom-valeur de paramètre dans la `parameter-overrides` propriété en utilisant le format suivant :

  `param-1=value-1,param-2=value-2`

  Par exemple, en supposant le CloudFormation modèle suivant :

  ```
  ##My CloudFormation template
  
  Description: My CloudFormation template
  
  Parameters:
    InstanceType:
      Description: Defines the Amazon EC2 compute for the production server.
      Type: String
      Default: t2.micro
      AllowedValues:
        - t2.micro
        - t2.small
        - t3.medium
      
  Resources:
  ...
  ```

  ... vous pouvez définir la `parameter-overrides` propriété comme suit :

  ```
  ##My workflow YAML
  ...
  Actions:
  ...
    DeployCloudFormationStack:
      Identifier: aws/cfn-deploy@v1
      Configuration:
        parameter-overrides: InstanceType=t3.medium,UseVPC=true
  ```
**Note**  
Vous pouvez spécifier un nom de paramètre sans valeur correspondante en l'utilisant `undefined` comme valeur. Par exemple :  
`parameter-overrides: MyParameter=undefined`  
 L'effet est que lors d'une mise à jour de pile, CloudFormation utilise la valeur de paramètre existante pour le nom de paramètre donné.

Interface utilisateur correspondante :
+ **Onglet Configuration/Avancé/ Remplacements de paramètres**
+ Remplacements de tab/Advanced/Parameter **configuration/Spécifier les remplacements à l'aide d'un** fichier
+ Remplacements de tab/Advanced/Parameter **configuration/Spécifier les remplacements** à l'aide d'un ensemble de valeurs

## no-execute-changeset
<a name="deploy.action.cfn.noexecutechangeset"></a>

(*DeployCloudFormationStack*/Configuration/**no-execute-changeset**)

(Facultatif)

Spécifiez si vous souhaitez CodeCatalyst créer l'ensemble de CloudFormation modifications, puis arrêtez-le avant de l'exécuter. Cela vous donne la possibilité de passer en revue les modifications définies dans la CloudFormation console. Si vous estimez que l'ensemble de modifications semble correct, désactivez cette option, puis réexécutez le flux de travail afin de CodeCatalyst pouvoir créer et exécuter l'ensemble de modifications sans vous arrêter. Par défaut, l'ensemble de modifications est créé et exécuté sans arrêt. Pour plus d'informations, consultez le paramètre de CloudFormation [déploiement](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) dans la *référence des AWS CLI commandes*. Pour plus d'informations sur l'affichage d'un ensemble de modifications, consultez la section [Affichage d'un ensemble de modifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets-view.html) dans le *Guide de AWS CloudFormation l'utilisateur*.

**Interface utilisateur correspondante : onglet Configuration/Avancé/Aucune exécution définie**

## fail-on-empty-changeset
<a name="deploy.action.cfn.failonemptychangeset"></a>

(*DeployCloudFormationStack*/Configuration/**fail-on-empty-changeset**)

(Facultatif)

Spécifiez si vous souhaitez échouer CodeCatalyst à l'action **Deploy CloudFormation stack** si l'ensemble de CloudFormation modifications est vide. (Si un ensemble de modifications est vide, cela signifie qu'aucune modification n'a été apportée à la pile lors du dernier déploiement.) Par défaut, l'action est autorisée si l'ensemble de modifications est vide et un `UPDATE_COMPLETE` message est renvoyé même si la pile n'a pas été mise à jour.

Pour plus d'informations sur ce paramètre, consultez le paramètre de CloudFormation [déploiement](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) dans le manuel de *référence des AWS CLI commandes*. Pour plus d'informations sur les ensembles de modifications, consultez la section [Mise à jour des piles à l'aide d'ensembles de modifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html) dans le *Guide de AWS CloudFormation l'utilisateur*.

**Interface utilisateur correspondante : onglet Configuration/Avancé/Échec si le changeset est vide**

## disable-rollback
<a name="deploy.action.cfn.disablerollback"></a>

(*DeployCloudFormationStack*/Configuration/**disable-rollback**)

(Facultatif)

Spécifiez si vous CodeCatalyst souhaitez annuler le déploiement de la pile en cas d'échec. Le rollback ramène la pile au dernier état stable connu. Par défaut, les annulations sont activées. Pour plus d'informations sur ce paramètre, consultez le paramètre de CloudFormation [déploiement](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) dans le manuel de *référence des AWS CLI commandes*.

Pour plus d'informations sur la façon dont l'action **Deploy CloudFormation stack** gère les annulations, consultez[Configuration des annulations](deploy-consumption-enable-alarms.md).

Pour plus d'informations sur l'annulation d'une pile, consultez la section [Options d'échec d'une pile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-failure-options.html) dans le *Guide de AWS CloudFormation l'utilisateur*.

**Interface utilisateur correspondante : onglet Configuration/Avancé/Désactiver la restauration**

## termination-protection
<a name="deploy.action.cfn.terminationprotection"></a>

(*DeployCloudFormationStack*/Configuration/**termination-protection**)

(Facultatif)

Spécifiez si vous souhaitez que la ** CloudFormation pile Deploy** ajoute une protection de terminaison à la pile qu'elle déploie. Si un utilisateur tente de supprimer une pile pour laquelle la protection contre la résiliation est activée, la suppression échoue et la pile, et son statut, restent inchangés. Par défaut, la protection contre la résiliation est désactivée. Pour plus d'informations, consultez [la section Protection d'une pile contre la suppression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) dans le *Guide de AWS CloudFormation l'utilisateur*.

**Interface utilisateur correspondante : onglet Configuration/Avancé/Protection de terminaison**

## timeout-in-minutes
<a name="deploy.action.cfn.timeoutinminutes"></a>

(*DeployCloudFormationStack*/Configuration/**timeout-in-minutes**)

(Facultatif)

Spécifiez le temps, en minutes, à CloudFormation allouer avant de chronométrer les opérations de création de pile et de définir le statut de la pile sur`CREATE_FAILED`. Si CloudFormation ne peut pas créer la pile complète dans le délai imparti, il échoue à créer la pile en raison du délai d'expiration et procède à la restauration de la pile.

Par défaut, il n’y a aucun délai d’expiration pour la création de la pile. Cependant, les ressources individuelles peuvent avoir leur propre délai d'expiration en fonction de la nature du service qu'elles mettent en œuvre. Par exemple, si une ressource individuelle dans votre pile arrive à expiration, la création de la pile arrive aussi à expiration, même si le délai que vous avez spécifié pour la création de la pile n’a pas encore été atteint.

**Interface utilisateur correspondante : onglet Configuration/avancé/délai CloudFormation d'expiration**

## notification-arns
<a name="deploy.action.cfn.notificationarns"></a>

(*DeployCloudFormationStack*/Configuration/**notification-arns**)

(Facultatif)

Spécifiez l'ARN d'une rubrique Amazon SNS à laquelle vous souhaitez CodeCatalyst envoyer des messages de notification. Par exemple, `arn:aws:sns:us-east-1:111222333:MyTopic`. Lorsque l'action **Deploy CloudFormation stack** s'exécute, CodeCatalyst coordonne avec CloudFormation pour envoyer une notification par CloudFormation événement qui se produit pendant le processus de création ou de mise à jour de la pile. (Les événements sont visibles dans l'onglet **Événements** de la CloudFormation console pour la pile.) Vous pouvez définir jusqu'à cinq sujets. Pour plus d’informations, consultez la section [Qu’est-ce qu’Amazon SNS ?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html).

**Interface utilisateur correspondante : onglet Configuration/Avancé/Notification ARNs**

## monitor-alarm-arns
<a name="deploy.action.cfn.monitoralarmarns"></a>

(*DeployCloudFormationStack*/Configuration/**monitor-alarm-arns**)

(Facultatif)

Spécifiez le nom de ressource Amazon (ARN) d'une CloudWatch alarme Amazon à utiliser comme déclencheur d'annulation. Par exemple, `arn:aws:cloudwatch::123456789012:alarm/MyAlarm`. Vous pouvez disposer d'un maximum de cinq déclencheurs de restauration.

**Note**  
Si vous spécifiez un ARN CloudWatch d'alarme, vous devez également configurer des autorisations supplémentaires pour permettre à l'action d'y accéder CloudWatch. Pour de plus amples informations, veuillez consulter [Configuration des annulations](deploy-consumption-enable-alarms.md).

**Interface utilisateur correspondante : onglet Configuration/Avancé/Alarme de surveillance ARNs**

## monitor-timeout-in-minutes
<a name="deploy.action.cfn.monitortimeinminutes"></a>

(*DeployCloudFormationStack*/Configuration/**monitor-timeout-in-minutes**)

(Facultatif)

Spécifiez une durée, comprise entre 0 et 180 minutes, pendant laquelle CloudFormation les alarmes spécifiées seront surveillées. La surveillance commence une *fois* que toutes les ressources de la pile ont été déployées. Si l'alarme se produit dans le délai de surveillance spécifié, le déploiement échoue et CloudFormation annule l'ensemble du fonctionnement de la pile.

Par défaut : 0. CloudFormation surveille uniquement les alarmes pendant le déploiement des ressources de la pile, et non après.

**Interface utilisateur correspondante : onglet Configuration/Avancé/Temps de surveillance**

## tags
<a name="deploy.action.cfn.tags"></a>

(*DeployCloudFormationStack*/Configuration/**tags**)

(Facultatif)

Spécifiez les balises à attacher à votre CloudFormation pile. Les balises sont des paires clé-valeur arbitraires que vous pouvez utiliser pour identifier votre pile à des fins telles que la répartition des coûts. Pour plus d'informations sur les balises et leur utilisation, consultez la page [Balisage de vos ressources](https://docs.aws.amazon.com/) dans le *Guide de l'utilisateur Amazon EC2*. Pour plus d'informations sur le balisage CloudFormation, consultez la section [Configuration des options de CloudFormation pile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html) dans le *Guide de l'AWS CloudFormation utilisateur*.

Une clé peut comporter des caractères alphanumériques ou des espaces, et peut comporter jusqu'à 127 caractères. Une valeur peut comporter des caractères alphanumériques ou des espaces, et peut comporter jusqu'à 255 caractères.

Vous pouvez ajouter jusqu'à 50 balises uniques pour chaque pile.

**Interface utilisateur correspondante : onglet Configuration/Avancé/Tags**

# Déploiement d'une AWS CDK application avec un flux de travail
<a name="cdk-dep-action"></a>

Cette section décrit comment déployer une AWS Cloud Development Kit (AWS CDK) application dans votre AWS compte à l'aide d'un flux de travail. Pour ce faire, vous devez ajouter l'action de **AWS CDK déploiement** à votre flux de travail. L'action de **AWS CDK déploiement** synthétise et déploie votre AWS Cloud Development Kit (AWS CDK) application dans. AWS Si votre application existe déjà dans AWS, l'action la met à jour si nécessaire. 

Pour des informations générales sur la création d'applications utilisant le AWS CDK, voir [Qu'est-ce que le AWS CDK ?](https://docs.aws.amazon.com/cdk/v2/guide/home.html) dans le *Guide AWS Cloud Development Kit (AWS CDK) du développeur*.

**Topics**
+ [Quand utiliser l'action « AWS CDK  déployer »](#cdk-dep-action-when-to-use)
+ [Comment fonctionne l'action « AWS CDK  déployer »](#cdk-dep-action-how-it-works)
+ [Versions de la CLI CDK utilisées par l'action « AWS CDK  déploiement »](#cdk-dep-action-cdk-version)
+ [Image d'exécution utilisée par l'action « AWS CDK  déployer »](#cdk-dep-action-runtime)
+ [Combien de piles l'action peut-elle déployer ?](#cdk-dep-action-how-many-stacks)
+ [Exemple : déploiement d'une AWS CDK application](cdk-dep-action-example-workflow.md)
+ [Ajouter l'action « AWS CDK  déployer »](cdk-dep-action-add.md)
+ [variables « AWS CDK  déployer »](cdk-dep-action-variables.md)
+ [action « AWS CDK  déployer » YAML](cdk-dep-action-ref.md)

## Quand utiliser l'action « AWS CDK  déployer »
<a name="cdk-dep-action-when-to-use"></a>

Utilisez cette action si vous avez développé une application à l'aide de AWS CDK, et si vous souhaitez maintenant la déployer automatiquement dans le cadre d'un flux de travail automatisé d'intégration et de livraison continues (CI/CD). Par exemple, vous souhaiterez peut-être déployer votre AWS CDK application automatiquement chaque fois que quelqu'un fusionne une pull request liée à la source de votre AWS CDK application. 

## Comment fonctionne l'action « AWS CDK  déployer »
<a name="cdk-dep-action-how-it-works"></a>

Le **AWS CDK déploiement** fonctionne comme suit :

1. [Au moment de l'exécution, si vous avez spécifié la version 1.0.12 ou antérieure de l'action, celle-ci télécharge la dernière CLI CDK (également appelée AWS CDK Tookit) sur l'image de l' CodeCatalyst environnement d'exécution.](#cdk-dep-action-runtime)

   Si vous avez spécifié la version 1.0.13 ou ultérieure, l'action est fournie avec une [version spécifique](#cdk-dep-action-cdk-version) de la CLI CDK, de sorte qu'aucun téléchargement n'a lieu.

1. L'action utilise la CLI CDK pour exécuter la `cdk deploy` commande. Cette commande synthétise et déploie votre AWS CDK application dans. AWS Pour plus d'informations sur cette commande, consultez la rubrique [AWS CDK Toolkit (commande cdk)](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) du *Guide du AWS Cloud Development Kit (AWS CDK) développeur*.

## Versions de la CLI CDK utilisées par l'action « AWS CDK  déploiement »
<a name="cdk-dep-action-cdk-version"></a>

Le tableau suivant indique quelle version de la CLI CDK est utilisée par défaut par les différentes versions de l'action de **AWS CDK déploiement**.

**Note**  
Vous pouvez peut-être remplacer la valeur par défaut. Pour plus d’informations, consultez [CdkCliVersion](cdk-dep-action-ref.md#cdk.dep.cdk.cli.version) dans le [action « AWS CDK  déployer » YAML](cdk-dep-action-ref.md).


| version de l'action AWS CDK « déployer » | AWS CDK Version de la CLI | 
| --- | --- | 
|  1.0.0 — 1.0.12  |  dernières  | 
|  1.0.13 ou version ultérieure  |  2,99,1  | 

## Image d'exécution utilisée par l'action « AWS CDK  déployer »
<a name="cdk-dep-action-runtime"></a>

Le tableau suivant présente les images de l'environnement d'exécution CodeCatalyst utilisées pour exécuter différentes versions de l'action de **AWS CDK déploiement**. Les images incluent différents ensembles d'outillage préinstallés. Pour de plus amples informations, veuillez consulter [Images actives](build-images.md#build-curated-images).

**Note**  
Nous vous recommandons de mettre à niveau votre action de **AWS CDK déploiement** vers la version 2.x pour tirer parti des derniers outils disponibles sur l'image de mars 2024. Pour mettre à niveau l'action, définissez sa `Identifier` propriété sur `aws/cdk-deploy@v2` dans le fichier de définition de votre flux de travail. Pour de plus amples informations, veuillez consulter [action « AWS CDK  déployer » YAML](cdk-dep-action-ref.md). 


| version de l'action AWS CDK « déployer » | Images de l'environnement d'exécution | 
| --- | --- | 
|  1.x  |  Images du mois de novembre 2022  | 
|  2.x  |  Images du mois de mars 2024  | 

## Combien de piles l'action peut-elle déployer ?
<a name="cdk-dep-action-how-many-stacks"></a>

Le **AWS CDK déploiement** ne peut déployer qu'une seule pile. Si votre AWS CDK application est composée de plusieurs piles, vous devez créer une pile parent avec des piles imbriquées et déployer le parent à l'aide de cette action.

# Exemple : déploiement d'une AWS CDK application
<a name="cdk-dep-action-example-workflow"></a>

L'exemple de flux de travail suivant inclut l'action de **AWS CDK déploiement**, ainsi que l'action de **AWS CDK démarrage.** Le flux de travail comprend les éléments de base suivants qui s'exécutent de manière séquentielle :
+ Un **déclencheur** : ce déclencheur lance automatiquement l'exécution du flux de travail lorsque vous apportez une modification à votre référentiel source. Ce référentiel contient votre AWS CDK application. Pour plus d'informations sur les déclencheurs, consultez [Démarrage d'un flux de travail exécuté automatiquement à l'aide de déclencheurs](workflows-add-trigger.md).
+ Une action **AWS CDK bootstrap** (`CDKBootstrap`) — Au déclenchement, l'action déploie la pile `CDKToolkit` bootstrap dans. AWS Si la `CDKToolkit` pile existe déjà dans l'environnement, elle sera mise à niveau si nécessaire ; dans le cas contraire, rien ne se passe et l'action est marquée comme réussie.
+ Une action de **AWS CDK déploiement** (`AWS CDK Deploy`) — Une fois l'action de **AWS CDK démarrage terminée**, l'action de **AWS CDK déploiement** synthétise le code de votre AWS CDK application dans un CloudFormation modèle et déploie la pile définie dans le modèle dans. AWS

**Note**  
L'exemple de flux de travail suivant est fourni à titre d'illustration et ne fonctionnera pas sans configuration supplémentaire.

**Note**  
Dans le code YAML qui suit, vous pouvez omettre les `Connections:` sections si vous le souhaitez. **Si vous omettez ces sections, vous devez vous assurer que le rôle spécifié dans le champ **Rôle IAM par défaut** de votre environnement inclut les autorisations et les politiques de confiance requises par les actions de **AWS CDK démarrage et AWS CDK de déploiement**.** Pour plus d'informations sur la configuration d'un environnement doté d'un rôle IAM par défaut, consultez[Création d'un environnement](deploy-environments-creating-environment.md). Pour plus d'informations sur les autorisations et les politiques de confiance requises par les actions **AWS CDK de démarrage** et de **AWS CDK déploiement**, consultez la description de la `Role` propriété dans le [action 'AWS CDK bootstrap' YAML](cdk-boot-action-ref.md) et[action « AWS CDK  déployer » YAML](cdk-dep-action-ref.md).

```
Name: codecatalyst-cdk-deploy-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  CDKBootstrap:
    Identifier: aws/cdk-bootstrap@v2
    Inputs:
      Sources:
        - WorkflowSource
    Environment:
      Name: codecatalyst-cdk-deploy-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-cdk-bootstrap-role
    Configuration:
      Region: us-west-2
        
  CDKDeploy:
    Identifier: aws/cdk-deploy@v2
    DependsOn: 
      - CDKBootstrap
    Environment:
      Name: codecatalyst-cdk-deploy-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-cdk-deploy-role
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      StackName: my-app-stack
      Region: us-west-2
```

# Ajouter l'action « AWS CDK  déployer »
<a name="cdk-dep-action-add"></a>

 Suivez les instructions suivantes pour ajouter l'action de **AWS CDK déploiement** à votre flux de travail. 

**Avant de commencer**

Avant de pouvoir ajouter l'action de **AWS CDK déploiement** à votre flux de travail, effectuez les tâches suivantes :

1. **Préparez une AWS CDK application**. Vous pouvez écrire votre AWS CDK application en utilisant AWS CDK v1 ou v2, dans n'importe quel langage de programmation pris en charge par le AWS CDK. Assurez-vous que les fichiers de votre AWS CDK application sont disponibles dans :
   + Un [référentiel CodeCatalyst source](source.md), ou 
   + [Artefact CodeCatalyst de sortie](workflows-working-artifacts.md) généré par une autre action du flux de travail

1. **Bootstrap votre AWS environnement.** Pour démarrer, vous pouvez :
   + Utilisez l'une des méthodes décrites dans la section [Comment démarrer du](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html#bootstrapping-howto) *manuel du AWS Cloud Development Kit (AWS CDK) développeur*.
   + Utilisez l'action **AWS CDK bootstrap**. Vous pouvez ajouter cette action dans le même flux de travail que celui de votre **AWS CDK déploiement** ou dans un autre. Assurez-vous simplement que l'action bootstrap s'exécute au moins une fois avant d'exécuter l'action de **AWS CDK déploiement** afin que les ressources nécessaires soient en place. Pour plus d'informations sur l'action **AWS CDK bootstrap**, consultez[Démarrage d'une AWS CDK application à l'aide d'un flux de travail](cdk-boot-action.md).

     *Pour plus d'informations sur le bootstrapping, voir [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) dans le manuel du développeur.AWS Cloud Development Kit (AWS CDK) *

------
#### [ Visual ]

**Pour ajouter l'action « AWS CDK  déployer » à l'aide de l'éditeur visuel**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **Visual**.

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action de **AWS CDK déploiement**, puis effectuez l'une des opérations suivantes :
   + Choisissez le signe plus (**\$1**) pour ajouter l'action au diagramme de flux de travail et ouvrir son volet de configuration.

     Or
   + Choisissez **AWS CDK Deploy**. La boîte de dialogue des détails de l'action apparaît. Dans cette boîte de dialogue :
     + (Facultatif) Choisissez **Télécharger** pour [afficher le code source de l'action](workflows-view-source.md#workflows-view-source.title).
     + Choisissez **Ajouter au flux de travail** pour ajouter l'action au diagramme du flux de travail et ouvrir son volet de configuration.

1. Dans les onglets **Entrées** et **Configuration**, complétez les champs en fonction de vos besoins. Pour obtenir une description de chaque champ, consultez le[action « AWS CDK  déployer » YAML](cdk-dep-action-ref.md). Cette référence fournit des informations détaillées sur chaque champ (et la valeur de propriété YAML correspondante) tel qu'il apparaît dans les éditeurs YAML et visuels.

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.
**Note**  
Si votre action de **AWS CDK déploiement** échoue avec une `npm install` erreur, consultez [Comment corriger les erreurs « npm install » ?](troubleshooting-workflows.md#troubleshooting-workflows-npm) pour plus d'informations sur la façon de corriger l'erreur.

------
#### [ YAML ]

**Pour ajouter l'action « AWS CDK  déployer » à l'aide de l'éditeur YAML**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action de **AWS CDK déploiement**, puis effectuez l'une des opérations suivantes :
   + Choisissez le signe plus (**\$1**) pour ajouter l'action au diagramme de flux de travail et ouvrir son volet de configuration.

     Or
   + Choisissez **AWS CDK Deploy**. La boîte de dialogue des détails de l'action apparaît. Dans cette boîte de dialogue :
     + (Facultatif) Choisissez **Télécharger** pour [afficher le code source de l'action](workflows-view-source.md#workflows-view-source.title).
     + Choisissez **Ajouter au flux de travail** pour ajouter l'action au diagramme du flux de travail et ouvrir son volet de configuration.

1. Modifiez les propriétés du code YAML en fonction de vos besoins. Une explication de chaque propriété disponible est fournie dans le[action « AWS CDK  déployer » YAML](cdk-dep-action-ref.md).

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.
**Note**  
Si votre action de **AWS CDK déploiement** échoue avec une `npm install` erreur, consultez [Comment corriger les erreurs « npm install » ?](troubleshooting-workflows.md#troubleshooting-workflows-npm) pour plus d'informations sur la façon de corriger l'erreur.

------

# variables « AWS CDK  déployer »
<a name="cdk-dep-action-variables"></a>

L'action de **AWS CDK déploiement** produit et définit les variables suivantes au moment de l'exécution. Ces variables sont connues sous le nom de *variables prédéfinies*.

Pour plus d'informations sur le référencement de ces variables dans un flux de travail, consultez[Utilisation de variables prédéfinies](workflows-using-predefined-variables.md).


| Clé | Valeur | 
| --- | --- | 
|  identifiant de pile  |  Le nom de ressource Amazon (ARN) de la pile d' AWS CDK applications sur laquelle a été déployée lors de l'exécution du flux de travail. Exemple : `arn:aws:cloudformation:us-west-2:111122223333:stack/codecatalyst-cdk-app-stack/6aad4380-100a-11ec-a10a-03b8a84d40df`  | 
|  plate-forme de déploiement  |  Nom de la plateforme de déploiement. Codé en dur pour. `AWS:CloudFormation`  | 
|  region  |  Le code de région du Région AWS qui a été déployé lors de l'exécution du flux de travail. Exemple : `us-west-2`  | 
|  SAUTER LE DÉPLOIEMENT  |  La valeur de `true` indique que le déploiement de votre pile d' AWS CDK applications a été ignoré lors de l'exécution du flux de travail. Un déploiement de pile sera ignoré s'il n'y a aucun changement dans la pile depuis le dernier déploiement. Cette variable n'est produite que si sa valeur est`true`. Codé en dur pour. `true`  | 
|  *CloudFormation variables*  |  En plus de générer les variables répertoriées précédemment, l'action de **AWS CDK déploiement** expose également les variables de *CloudFormation*sortie en tant que variables de *flux* de travail à utiliser dans les actions de flux de travail suivantes. Par défaut, l'action n'expose que les quatre premières CloudFormation variables (ou moins) détectées. Pour déterminer ceux qui sont exposés, exécutez l'action de **AWS CDK déploiement** une seule fois, puis consultez l'onglet **Variables** de la page des détails de l'exécution. Si les variables répertoriées dans l'onglet **Variables** ne correspondent pas à vos attentes, vous pouvez en configurer d'autres à l'aide de la propriété `CfnOutputVariables` YAML. Pour plus d'informations, consultez la description de la [CfnOutputVariables](cdk-dep-action-ref.md#cdk.dep.cfn.out) propriété dans le[action « AWS CDK  déployer » YAML](cdk-dep-action-ref.md).  | 

# action « AWS CDK  déployer » YAML
<a name="cdk-dep-action-ref"></a>

Voici la définition YAML de l'action de **AWS CDK déploiement**. Pour savoir comment utiliser cette action, consultez[Déploiement d'une AWS CDK application avec un flux de travail](cdk-dep-action.md).

Cette définition d'action existe sous la forme d'une section au sein d'un fichier de définition de flux de travail plus large. Pour plus d’informations sur ce fichier, consultez [Définition du flux de travail YAML](workflow-reference.md).

**Note**  
La plupart des propriétés YAML suivantes ont des éléments d'interface utilisateur correspondants dans l'éditeur visuel. Pour rechercher un élément de l'interface utilisateur, utilisez **Ctrl\$1F**. L'élément sera répertorié avec sa propriété YAML associée.

```
# The workflow definition starts here.
# See Propriétés de haut niveau for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  CDKDeploy\$1nn: 
    Identifier: aws/cdk-deploy@v2
    DependsOn:
      - CDKBootstrap
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - artifact-name
    Outputs:
      Artifacts:
        - Name: cdk_artifact
          Files: 
            - "cdk.out/**/*"
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      StackName: my-cdk-stack
      Region: us-west-2
      Tags: '{"key1": "value1", "key2": "value2"}'
      Context: '{"key1": "value1", "key2": "value2"}'
      CdkCliVersion: version
      CdkRootPath: directory-containing-cdk.json-file
      CfnOutputVariables: '["CnfOutputKey1","CfnOutputKey2","CfnOutputKey3"]'
      CloudAssemblyRootPath: path-to-cdk.out
```

## CDKDeploy
<a name="cdk.dep.name"></a>

(Obligatoire)

Spécifiez le nom de l'action. Tous les noms d'action doivent être uniques dans le flux de travail. Les noms d'action sont limités aux caractères alphanumériques (a-z, A-Z, 0-9), aux tirets (-) et aux traits de soulignement (\$1). Les espaces ne sont pas autorisés. Vous ne pouvez pas utiliser de guillemets pour activer les caractères spéciaux et les espaces dans les noms d'action.

Par défaut : `CDKDeploy_nn`.

Interface utilisateur correspondante : onglet Configuration/nom de **l'action**

## Identifier
<a name="cdk.dep.identifier"></a>

(*CDKDeploy*/**Identifier**)

(Obligatoire)

Identifie l'action. Ne modifiez pas cette propriété, sauf si vous souhaitez modifier la version. Pour de plus amples informations, veuillez consulter [Spécification de la version de l'action à utiliser](workflows-action-versions.md).

**Note**  
La spécification `aws/cdk-deploy@v2` entraîne l'exécution de l'action sur l'[image de mars 2024](build-images.md#build.default-image) qui inclut des outils plus récents tels que Node.js 18. La spécification `aws/cdk-deploy@v1` entraîne l'exécution de l'action sur l'[image de novembre 2022](build-images.md#build.previous-image) qui inclut des outils plus anciens tels que Node.js 16.

Par défaut : `aws/cdk-deploy@v2`.

**Interface utilisateur correspondante : diagramme de flux de travail/ CDKDeploy \$1nn/ aws/cdk-deploy @v2 label**

## DependsOn
<a name="cdk.dep.dependson"></a>

(*CDKDeploy*/**DependsOn**)

(Facultatif)

Spécifiez une action ou un groupe d'actions qui doit s'exécuter correctement pour que l'action de **AWS CDK déploiement** soit exécutée. Nous vous recommandons de spécifier l'action **AWS CDK bootstrap** dans la `DependsOn` propriété, comme suit :

```
CDKDeploy:
  Identifier: aws/cdk-deploy@v2
  DependsOn:
    - CDKBootstrap
```

**Note**  
Le [bootstrap](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) est une condition préalable obligatoire au déploiement d'une AWS CDK application. Si vous n'incluez pas l'action **AWS CDK Bootstrap** dans votre flux de travail, vous devez trouver un autre moyen de déployer la pile AWS CDK Bootstrap avant d'exécuter votre action de **AWS CDK déploiement**. Pour plus d’informations, consultez [Ajouter l'action « AWS CDK  déployer »](cdk-dep-action-add.md) dans [Déploiement d'une AWS CDK application avec un flux de travail](cdk-dep-action.md).

Pour plus d'informations sur la fonctionnalité « dépend », consultez. [Actions de séquençage](workflows-depends-on.md)

Interface utilisateur correspondante : onglet **Entrées/dépend de - facultatif**

## Compute
<a name="cdk.dep.computename"></a>

(*CDKDeploy*/**Compute**)

(Facultatif)

Le moteur informatique utilisé pour exécuter les actions de votre flux de travail. Vous pouvez spécifier le calcul au niveau du flux de travail ou au niveau de l'action, mais pas les deux. Lorsqu'elle est spécifiée au niveau du flux de travail, la configuration de calcul s'applique à toutes les actions définies dans le flux de travail. Au niveau du flux de travail, vous pouvez également exécuter plusieurs actions sur la même instance. Pour de plus amples informations, veuillez consulter [Partage du calcul entre les actions](compute-sharing.md).

Interface utilisateur correspondante : *aucune*

## Type
<a name="cdk.dep.computetype"></a>

(*CDKDeploy*/Compute/**Type**)

(Obligatoire s'[Compute](#cdk.dep.computename)il est inclus)

Type de moteur de calcul. Vous pouvez utiliser l'une des valeurs suivantes :
+ **EC2**(éditeur visuel) ou `EC2` (éditeur YAML)

  Optimisé pour la flexibilité lors des courses d'action.
+ **Lambda** (éditeur visuel) ou `Lambda` (éditeur YAML)

  Vitesses de démarrage des actions optimisées.

Pour plus d'informations sur les types de calcul, veuillez consulter [Types de calcul](workflows-working-compute.md#compute.types).

**Interface utilisateur correspondante : Configuration tab/Advanced - optionnel/ Type de calcul**

## Fleet
<a name="cdk.dep.computefleet"></a>

(*CDKDeploy*/Compute/**Fleet**)

(Facultatif)

Spécifiez la machine ou le parc qui exécutera votre flux de travail ou vos actions de flux de travail. Dans le cas des flottes à la demande, lorsqu'une action démarre, le flux de travail fournit les ressources dont il a besoin et les machines sont détruites à la fin de l'action. Exemples de flottes à la demande :`Linux.x86-64.Large`,`Linux.x86-64.XLarge`. Pour plus d'informations sur les flottes à la demande, consultez[Propriétés de la flotte à la demande](workflows-working-compute.md#compute.on-demand).

Avec les flottes provisionnées, vous configurez un ensemble de machines dédiées pour exécuter les actions de votre flux de travail. Ces machines restent inactives, prêtes à exécuter des actions immédiatement. Pour plus d'informations sur les flottes provisionnées, consultez. [Propriétés de la flotte de véhicules provisionnée](workflows-working-compute.md#compute.provisioned-fleets)

S'il `Fleet` est omis, la valeur par défaut est`Linux.x86-64.Large`.

**Interface utilisateur correspondante : Configuration tab/Advanced - optionnel/ Parc de calcul**

## Timeout
<a name="cdk.dep.timeout"></a>

(*CDKDeploy*/**Timeout**)

(Obligatoire)

Spécifiez la durée en minutes (éditeur YAML) ou en heures et minutes (éditeur visuel) pendant laquelle l'action peut être exécutée avant la CodeCatalyst fin de l'action. Le minimum est de 5 minutes et le maximum est décrit dans[Quotas pour les flux de travail dans CodeCatalyst](workflows-quotas.md). Le délai d'expiration par défaut est le même que le délai d'expiration maximal.

Interface utilisateur correspondante : onglet **Configuration/Délai d'expiration - facultatif**

## Inputs
<a name="cdk.dep.inputs"></a>

(*CDKDeploy*/**Inputs**)

(Facultatif)

La `Inputs` section définit les données dont ils ont `CDKDeploy` besoin lors de l'exécution d'un flux de travail.

**Note**  
Une seule entrée (source ou artefact) est autorisée pour chaque action de **AWS CDK déploiement**.

Interface utilisateur correspondante : onglet **Entrées**

## Sources
<a name="cdk.dep.inputs.sources"></a>

(*CDKDeploy*/Inputs/**Sources**)

(Obligatoire si l' AWS CDK application que vous souhaitez déployer est stockée dans un référentiel source)

Si votre AWS CDK application est stockée dans un référentiel source, spécifiez l'étiquette de ce référentiel source. L'action de **AWS CDK déploiement** synthétise l'application dans ce référentiel avant de démarrer le processus de déploiement. Actuellement, la seule étiquette prise en charge est`WorkflowSource`.

Si votre AWS CDK application n'est pas contenue dans un référentiel source, elle doit résider dans un artefact généré par une autre action.

Pour plus d'informations sur les sources, consultez [Connecter les référentiels sources aux flux de travail](workflows-sources.md).

Interface utilisateur correspondante : onglet **Entrées/Sources - facultatif**

## Artifacts - input
<a name="cdk.dep.inputs.artifacts"></a>

(*CDKDeploy*/Inputs/**Artifacts**)

(Obligatoire si l' AWS CDK application que vous souhaitez déployer est stockée dans un [artefact de sortie](workflows-working-artifacts-output.md) d'une action précédente)

Si votre AWS CDK application est contenue dans un artefact généré par une action précédente, spécifiez cet artefact ici. L'action de **AWS CDK déploiement** synthétise l'application dans l'artefact spécifié dans un CloudFormation modèle avant de démarrer le processus de déploiement. Si votre AWS CDK application n'est pas contenue dans un artefact, elle doit résider dans votre référentiel source.

Pour plus d'informations sur les artefacts, y compris des exemples, consultez[Partage d'artefacts et de fichiers entre les actions](workflows-working-artifacts.md).

Interface utilisateur correspondante : onglet **Entrées/Artefacts - facultatif**

## Outputs
<a name="cdk.dep.outputs"></a>

(*CDKDeploy*/**Outputs**)

(Facultatif)

Définit les données produites par l'action lors de l'exécution d'un flux de travail.

Interface utilisateur correspondante : onglet **Sorties**

## Artifacts - output
<a name="cdk.dep.outputs.artifacts"></a>

(*CDKDeploy*/Outputs/**Artifacts**

(Facultatif)

Spécifiez les artefacts générés par l'action. Vous pouvez faire référence à ces artefacts en tant qu'entrée dans d'autres actions.

Pour plus d'informations sur les artefacts, y compris des exemples, consultez[Partage d'artefacts et de fichiers entre les actions](workflows-working-artifacts.md).

**Interface utilisateur correspondante : onglet Sorties/Artefacts**

## Name
<a name="cdk.dep.outputs.artifacts.name"></a>

(*CDKDeploy*/Outputs/Artifacts/**Name**)

(Obligatoire s'[Artifacts - output](#cdk.dep.outputs.artifacts)il est inclus)

Spécifiez le nom de l'artefact qui contiendra le CloudFormation modèle synthétisé par l'action de **AWS CDK déploiement** lors de l'exécution. La valeur par défaut est `cdk_artifact`. Si vous ne spécifiez aucun artefact, l'action synthétise le modèle mais ne l'enregistre pas dans un artefact. Envisagez d'enregistrer le modèle synthétisé dans un artefact pour en conserver une trace à des fins de test ou de dépannage.

**Interface utilisateur correspondante : affiche le nom de l'tab/Artifacts/Addartefact/de l'artefact de construction**

## Files
<a name="cdk.dep.outputs.artifacts.files"></a>

(*CDKDeploy*/Outputs/Artifacts/**Files**)

(Obligatoire s'[Artifacts - output](#cdk.dep.outputs.artifacts)il est inclus)

Spécifiez les fichiers à inclure dans l'artefact. Vous devez spécifier `"cdk.out/**/*"` d'inclure le CloudFormation modèle synthétisé de votre AWS CDK application.

**Note**  
`cdk.out`est le répertoire par défaut dans lequel les fichiers synthétisés sont enregistrés. Si vous avez spécifié un répertoire de sortie autre que celui `cdk.out` de votre `cdk.json` fichier, spécifiez ce répertoire ici au lieu de`cdk.out`.

Interface utilisateur correspondante : produit des tab/Artifacts/Add **artéfacts/fichiers** produits par build

## Environment
<a name="cdk.dep.environment"></a>

(*CDKDeploy*/**Environment**)

(Obligatoire)

Spécifiez l' CodeCatalyst environnement à utiliser avec l'action. L'action se connecte au Compte AWS VPC Amazon facultatif spécifié dans l'environnement choisi. L'action utilise le rôle IAM par défaut spécifié dans l'environnement pour se connecter au Compte AWS, et utilise le rôle IAM spécifié dans la [connexion Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) pour se connecter à Amazon VPC.

**Note**  
Si le rôle IAM par défaut ne dispose pas des autorisations requises par l'action, vous pouvez configurer l'action pour utiliser un autre rôle. Pour de plus amples informations, veuillez consulter [Modifier le rôle IAM d'une action](deploy-environments-switch-role.md).

Pour plus d'informations sur les environnements, reportez-vous [Déploiement dans Comptes AWS et VPCs](deploy-environments.md) aux sections et[Création d'un environnement](deploy-environments-creating-environment.md).

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Name
<a name="cdk.dep.environment.name"></a>

(*CDKDeploy*/Environment/**Name**)

(Obligatoire s'[Environment](#cdk.dep.environment)il est inclus)

Spécifiez le nom de l'environnement existant que vous souhaitez associer à l'action.

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Connections
<a name="cdk.dep.environment.connections"></a>

(*CDKDeploy*/Environment/**Connections**)

(Facultatif dans les nouvelles versions de l'action ; obligatoire dans les anciennes versions)

Spécifiez la connexion au compte à associer à l'action. Vous pouvez spécifier un maximum d'une connexion à un compte sous`Environment`.

Si vous ne spécifiez pas de connexion au compte :
+ L'action utilise la Compte AWS connexion et le rôle IAM par défaut spécifiés dans l'environnement de la CodeCatalyst console. Pour plus d'informations sur l'ajout d'une connexion à un compte et d'un rôle IAM par défaut dans l'environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).
+ Le rôle IAM par défaut doit inclure les politiques et les autorisations requises par l'action. Pour déterminer quelles sont ces politiques et autorisations, consultez la description de la propriété **Role** dans la documentation de définition YAML de l'action.

Pour plus d'informations sur les connexions aux comptes, consultez[Permettre l'accès aux AWS ressources avec Connected Comptes AWS](ipa-connect-account.md). Pour plus d'informations sur l'ajout d'une connexion de compte à un environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Name
<a name="cdk.dep.environment.connections.name"></a>

(*CDKDeploy*/Environment/Connections/**Name**)

(Obligatoire s'[Connections](#cdk.dep.environment.connections)il est inclus)

Spécifiez le nom de la connexion au compte.

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Role
<a name="cdk.dep.environment.connections.role"></a>

(*CDKDeploy*/Environment/Connections/**Role**)

(Obligatoire s'[Connections](#cdk.dep.environment.connections)il est inclus)

Spécifiez le nom de la connexion au compte.

Spécifiez le nom du rôle IAM que l'action de **AWS CDK déploiement** utilise pour accéder à la pile d' AWS CDK applications AWS et la déployer. Assurez-vous que vous avez [ajouté le rôle à votre CodeCatalyst espace](ipa-connect-account-addroles.md) et qu'il inclut les politiques suivantes.

Si vous ne spécifiez aucun rôle IAM, l'action utilise le rôle IAM par défaut répertorié dans l'[environnement](deploy-environments.md) de la console. CodeCatalyst Si vous utilisez le rôle par défaut dans l'environnement, assurez-vous qu'il est conforme aux politiques suivantes.
+ La politique d'autorisation suivante :
**Avertissement**  
Limitez les autorisations à celles indiquées dans la politique suivante. L'utilisation d'un rôle doté d'autorisations plus étendues peut présenter un risque de sécurité.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "cloudformation:DescribeStackEvents",
                  "cloudformation:DescribeChangeSet",
                  "cloudformation:DescribeStacks",
                  "cloudformation:ListStackResources"
              ],
              "Resource": "*"
          },
          {
              "Sid": "VisualEditor1",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": "arn:aws:iam::111122223333:role/cdk-*"
          }
      ]
  }
  ```

------
+ La politique de confiance personnalisée suivante :

**Note**  
Vous pouvez utiliser le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle avec cette action, si vous le souhaitez. Pour plus d’informations sur ce rôle, consultez [Création du **CodeCatalystWorkflowDevelopmentRole-*spaceName***rôle pour votre compte et votre espace](ipa-iam-roles.md#ipa-iam-roles-service-create). Sachez que le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle dispose d'autorisations d'accès complètes, ce qui peut présenter un risque de sécurité. Nous vous recommandons de n'utiliser ce rôle que dans les didacticiels et les scénarios où la sécurité est moins préoccupante. 

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' '/ Rôle Environment/account/role**

## Configuration
<a name="cdk.dep.configuration"></a>

(*CDKDeploy*/**Configuration**)

(Obligatoire)

Section dans laquelle vous pouvez définir les propriétés de configuration de l'action.

Interface utilisateur correspondante : onglet **Configuration**

## StackName
<a name="cdk.dep.stack.name"></a>

(*CDKDeploy*/Configuration/**StackName**)

(Obligatoire)

Le nom de votre pile d' AWS CDK applications, tel qu'il apparaît dans le fichier de point d'entrée du répertoire de `bin` votre AWS CDK application. L'exemple suivant montre le contenu d'un fichier de TypeScript point d'entrée, avec le nom de la pile surligné dans. *red italics* Si votre fichier de point d'entrée est rédigé dans une autre langue, il aura un aspect similaire.

```
import * as cdk from 'aws-cdk-lib';
import { CdkWorksopTypescriptStack } from '../lib/cdk_workshop_typescript-stack';

const app = new cdk.App();
new CdkWorkshopTypescriptStack(app, 'CdkWorkshopTypescriptStack');
```

Vous ne pouvez spécifier qu'une seule pile.

**Astuce**  
Si vous avez plusieurs piles, vous pouvez créer une pile parent avec des piles imbriquées. Vous pouvez ensuite spécifier la pile parent dans cette action pour déployer toutes les piles.

Interface utilisateur correspondante : onglet Configuration/nom de la **pile**

## Region
<a name="cdk.dep.region"></a>

(*CDKDeploy*/Configuration/**Region**)

(Facultatif)

Spécifiez le Région AWS lieu dans lequel la pile AWS CDK d'applications sera déployée. Pour obtenir la liste des codes de région, consultez la section [Points de terminaison régionaux](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes).

Si vous ne spécifiez aucune région, l'action de **AWS CDK déploiement** est déployée dans la région spécifiée dans votre AWS CDK code. Pour plus d'informations, consultez la section [Environnements](https://docs.aws.amazon.com/cdk/v2/guide/environments.html) du *guide du AWS Cloud Development Kit (AWS CDK) développeur*.

**Interface utilisateur correspondante : onglet Configuration/région**

## Tags
<a name="cdk.dep.tags"></a>

(*CDKDeploy*/Configuration/**Tags**)

(Facultatif)

Spécifiez les balises que vous souhaitez appliquer aux AWS ressources de la pile AWS CDK d'applications. Les balises sont appliquées à la pile elle-même ainsi qu'aux ressources individuelles de la pile. Pour plus d'informations sur le balisage, consultez la section [Balisage](https://docs.aws.amazon.com/cdk/v2/guide/tagging.html) dans le guide du *AWS Cloud Development Kit (AWS CDK) développeur*.

**Interface utilisateur correspondante : Configuration tab/Advanced - optionnel/ Tags**

## Context
<a name="cdk.dep.context"></a>

(*CDKDeploy*/Configuration/**Context**)

(Facultatif)

Spécifiez les contextes, sous forme de paires clé-valeur, à associer à la pile d' AWS CDK applications. Pour plus d'informations sur les contextes, consultez la section [Contextes d'exécution](https://docs.aws.amazon.com/cdk/v2/guide/context.html) dans le *Guide du AWS Cloud Development Kit (AWS CDK) développeur*.

**Interface utilisateur correspondante : Configuration tab/Advanced - optionnel/ Contexte**

## CdkCliVersion
<a name="cdk.dep.cdk.cli.version"></a>

(*CDKDeploy*/Configuration/**CdkCliVersion**)

(Facultatif)

Cette propriété est disponible avec la version 1.0.13 ou ultérieure de l'action de **AWS CDK déploiement**, et la version 1.0.8 ou ultérieure de l'action **AWS CDK bootstrap**.

Spécifiez l’un des éléments suivants :
+ Version complète de l'interface de ligne de AWS Cloud Development Kit (AWS CDK) commande (CLI) (également appelée AWS CDK boîte à outils) que vous souhaitez utiliser pour cette action. Exemple: `2.102.1`. Pensez à spécifier une version complète pour garantir la cohérence et la stabilité lors de la création et du déploiement de votre application.

  Or
+ `latest`. Envisagez `latest` de spécifier pour tirer parti des dernières fonctionnalités et correctifs de la CLI CDK.

L'action téléchargera la version spécifiée (ou la dernière version) de la AWS CDK CLI sur l'[image de CodeCatalyst construction](build-images.md), puis utilisera cette version pour exécuter les commandes nécessaires au déploiement de votre application CDK ou au démarrage de votre AWS environnement.

Pour obtenir la liste des versions de CLI CDK prises en charge que vous pouvez utiliser, consultez la section [AWS CDK Versions](https://docs.aws.amazon.com/cdk/api/versions.html).

Si vous omettez cette propriété, l'action utilise une version de AWS CDK CLI par défaut décrite dans l'une des rubriques suivantes :
+ [Versions de la CLI CDK utilisées par l'action « AWS CDK  déploiement »](cdk-dep-action.md#cdk-dep-action-cdk-version) 
+ [Versions de la CLI CDK utilisées par l'action « AWS CDK  bootstrap »](cdk-boot-action.md#cdk-boot-action-cdk-version)

Interface utilisateur correspondante : onglet Configuration/version de la **AWS CDK CLI**

## CdkRootPath
<a name="cdk.dep.cdk.root.path"></a>

(*CDKDeploy*/Configuration/**CdkRootPath**)

(Facultatif)

Le chemin d'accès au répertoire qui contient le `cdk.json` fichier de votre AWS CDK projet. L'action de **AWS CDK déploiement** s'exécute à partir de ce dossier, et toutes les sorties créées par l'action seront ajoutées à ce répertoire. Si elle n'est pas spécifiée, l'action de **AWS CDK déploiement** suppose que le `cdk.json` fichier se trouve à la racine de votre AWS CDK projet.

Interface utilisateur correspondante : onglet de **configuration/répertoire où réside le fichier cdk.json**

## CfnOutputVariables
<a name="cdk.dep.cfn.out"></a>

(*CDKDeploy*/Configuration/**CfnOutputVariables**)

(Facultatif)

Spécifiez `CfnOutput` les constructions du code de votre AWS CDK application que vous souhaitez exposer en tant que variables de sortie du flux de travail. Vous pouvez ensuite référencer les variables de sortie du flux de travail dans les actions suivantes de votre flux de travail. Pour plus d'informations sur les variables dans CodeCatalyst, consultez[Utilisation de variables dans les flux de travail](workflows-working-with-variables.md).

Par exemple, si le code de votre AWS CDK application ressemble à ceci :

```
import { Duration, Stack, StackProps, CfnOutput, RemovalPolicy} from 'aws-cdk-lib';
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as s3 from 'aws-cdk-lib/aws-s3';
import { Construct } from 'constructs';
import * as cdk from 'aws-cdk-lib';
export class HelloCdkStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);
    const bucket = new s3.Bucket(this, 'amzn-s3-demo-bucket', {
      removalPolicy: RemovalPolicy.DESTROY,
    });
    new CfnOutput(this, 'bucketName', {
      value: bucket.bucketName,
      description: 'The name of the s3 bucket',
      exportName: 'amzn-s3-demo-bucket',
    });
    const table = new dynamodb.Table(this, 'todos-table', {
      partitionKey: {name: 'todoId', type: dynamodb.AttributeType.NUMBER},
      billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
      removalPolicy: RemovalPolicy.DESTROY,
    })
    new CfnOutput(this, 'tableName', {
      value: table.tableName,
      description: 'The name of the dynamodb table',
      exportName: 'myDynamoDbTable',
    });
    ...
  }
}
```

... et votre `CfnOutputVariables` propriété ressemble à ceci :

```
Configuration:
  ...
  CfnOutputVariables: '["bucketName","tableName"]'
```

... puis l'action génère les variables de sortie du flux de travail suivantes :


| Clé | Valeur | 
| --- | --- | 
|  bucketName  |  `bucket.bucketName`  | 
|  tableName  |  `table.tableName`  | 

Vous pouvez ensuite référencer les `tableName` variables `bucketName` et dans les actions suivantes. Pour savoir comment référencer les variables de sortie du flux de travail dans les actions suivantes, voir[Référencement d'une variable prédéfinie](workflows-working-with-variables-reference-output-vars.md).

Si vous ne spécifiez aucune `CfnOutput` construction dans la `CfnOutputVariables` propriété, l'action expose les quatre premières variables de sortie (ou moins) qu'elle trouve en tant que variables de CloudFormation sortie du flux de travail. Pour de plus amples informations, veuillez consulter [variables « AWS CDK  déployer »](cdk-dep-action-variables.md).

**Astuce**  
Pour obtenir une liste de toutes les variables de CloudFormation sortie produites par l'action, exécutez le flux de travail contenant l'action de **AWS CDK déploiement** une fois, puis consultez l'onglet **Logs** de l'action. Les journaux contiennent une liste de toutes les variables CloudFormation de sortie associées à votre AWS CDK application. Une fois que vous connaissez toutes les CloudFormation variables, vous pouvez spécifier celles que vous souhaitez convertir en variables de sortie de flux de travail à l'aide de la `CfnOutputVariables` propriété.

Pour plus d'informations sur les variables de CloudFormation sortie, consultez la documentation de la `CfnOutput` construction, disponible sous la rubrique [class CfnOutput (construct)](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnOutput.html) dans la *référence de l'AWS Cloud Development Kit (AWS CDK) API*.

Interface utilisateur correspondante : onglet Configuration/variables **CloudFormation de sortie**

## CloudAssemblyRootPath
<a name="cdk.dep.cloud"></a>

(*CDKDeploy*/Configuration/**CloudAssemblyRootPath**)

(Facultatif)

Si vous avez déjà synthétisé la pile de votre AWS CDK application dans un assemblage cloud (à l'aide de l'`cdk synth`opération), spécifiez le chemin racine du répertoire d'assemblage cloud (`cdk.out`). Le CloudFormation modèle situé dans le répertoire d'assemblage cloud spécifié sera déployé par l'action de **AWS CDK déploiement** dans votre ordinateur à Compte AWS l'aide de la `cdk deploy --app` commande. Lorsque l'`--app`option est présente, l'`cdk synth`opération ne se produit pas.

Si vous ne spécifiez aucun répertoire d'assemblage cloud, l'action de **AWS CDK déploiement** exécutera la `cdk deploy` commande sans l'`--app`option. Sans `--app` cette option, l'`cdk deploy`opération synthétisera (`cdk synth`) et déploiera votre AWS CDK application dans votre Compte AWS. 

**Pourquoi spécifier un assemblage cloud synthétisé existant alors que l'action « AWS CDK  déployer » peut effectuer la synthèse au moment de l'exécution ?**

Vous souhaiterez peut-être spécifier un assemblage cloud synthétisé existant pour :
+ **Assurez-vous que le même ensemble de ressources est déployé à chaque fois que l'action « AWS CDK  déployer » est exécutée**

  Si vous ne spécifiez pas d'assembly cloud, il est possible que l'action de **AWS CDK déploiement** synthétise et déploie différents fichiers en fonction du moment où elle est exécutée. Par exemple, l'action de **AWS CDK déploiement** peut synthétiser un assemblage cloud avec un ensemble de dépendances pendant une phase de test et un autre ensemble de dépendances pendant une phase de production (si ces dépendances ont changé entre les étapes). Pour garantir une parité exacte entre ce qui est testé et ce qui est déployé, nous recommandons de synthétiser une seule fois, puis d'utiliser le champ **Path to cloud assembly directory** (éditeur visuel) ou la `CloudAssemblyRootPath` propriété (éditeur YAML) pour spécifier l'assembly cloud déjà synthétisé.
+ **Utilisez des gestionnaires de packages et des outils non standard avec l'application AWS CDK **

  Au cours d'une `synth` opération, l'action de **AWS CDK déploiement** tente d'exécuter votre application à l'aide d'outils standard tels que npm ou pip. Si l'action ne parvient pas à exécuter correctement votre application à l'aide de ces outils, la synthèse n'aura pas lieu et l'action échouera. Pour contourner ce problème, vous pouvez spécifier les commandes exactes nécessaires pour exécuter correctement votre application dans le `cdk.json` fichier de l' AWS CDK application, puis synthétiser votre application à l'aide d'une méthode qui n'implique pas l'action de **AWS CDK déploiement**. Une fois l'assembly cloud généré, vous pouvez le spécifier dans le champ **Path to cloud assembly directory** (éditeur visuel) ou dans la `CloudAssemblyRootPath` propriété (éditeur YAML) de l'action de **AWS CDK déploiement**. 

Pour plus d'informations sur la configuration du `cdk.json` fichier afin d'inclure les commandes d'installation et d'exécution de votre AWS CDK application, consultez la section [Spécification de la commande de l'application](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-app-command).

*Pour plus d'informations sur les `cdk synth` commandes `cdk deploy` et, ainsi que sur l'`--app`option, voir [Déployer des piles](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-deploy), [synthétiser des piles](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-synth) et [ignorer la synthèse dans le guide](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-deploy-nosynth) du développeur.AWS Cloud Development Kit (AWS CDK) *

Pour plus d'informations sur les assemblages cloud, consultez [Cloud Assembly](https://docs.aws.amazon.com/cdk/api/v2/docs/cloud-assembly-schema-readme.html) dans la *référence des AWS Cloud Development Kit (AWS CDK) API*.

Interface utilisateur correspondante : onglet **Configuration/Chemin d'accès au répertoire d'assemblage du cloud**

# Démarrage d'une AWS CDK application à l'aide d'un flux de travail
<a name="cdk-boot-action"></a>

Cette section décrit comment démarrer une AWS CDK application à l'aide d'un CodeCatalyst flux de travail. Pour ce faire, vous devez ajouter l'action **AWS CDK bootstrap** à votre flux de travail. L'action **AWS CDK bootstrap** fournit une pile bootstrap dans votre AWS environnement à l'aide du modèle [moderne](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html#bootstrapping-template). Si une pile bootstrap existe déjà, l'action la met à jour si nécessaire. La présence d'une pile bootstrap AWS est une condition préalable au déploiement d'une AWS CDK application.

*Pour plus d'informations sur le bootstrapping, voir [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) dans le manuel du développeur.AWS Cloud Development Kit (AWS CDK) *

**Topics**
+ [Quand utiliser l'action « AWS CDK  bootstrap »](#cdk-boot-action-when-to-use)
+ [Comment fonctionne l'action « AWS CDK  bootstrap »](#cdk-boot-action-how-it-works)
+ [Versions de la CLI CDK utilisées par l'action « AWS CDK  bootstrap »](#cdk-boot-action-cdk-version)
+ [Image d'exécution utilisée par l'action « AWS CDK  bootstrap »](#cdk-boot-action-runtime)
+ [Exemple : démarrage d'une application AWS CDK](cdk-boot-action-example-workflow.md)
+ [Ajouter l'action « AWS CDK  bootstrap »](cdk-boot-action-add.md)
+ [variables « AWS CDK  bootstrap »](cdk-boot-action-variables.md)
+ [action 'AWS CDK bootstrap' YAML](cdk-boot-action-ref.md)

## Quand utiliser l'action « AWS CDK  bootstrap »
<a name="cdk-boot-action-when-to-use"></a>

Utilisez cette action si vous disposez d'un flux de travail qui déploie une AWS CDK application et que vous souhaitez déployer (et mettre à jour, si nécessaire) la pile bootstrap en même temps. Dans ce cas, vous devez ajouter l'action **AWS CDK bootstrap** au même flux de travail que celui qui déploie votre AWS CDK application.

**N'utilisez pas** cette action si l'une des conditions suivantes s'applique :
+ Vous avez déjà déployé une pile de bootstrap à l'aide d'un autre mécanisme et vous souhaitez la conserver intacte (aucune mise à jour).
+ Vous souhaitez utiliser un modèle de [bootstrap personnalisé](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html#bootstrapping-customizing), qui n'est pas pris en charge par l'action **AWS CDK bootstrap.**

## Comment fonctionne l'action « AWS CDK  bootstrap »
<a name="cdk-boot-action-how-it-works"></a>

Le **AWS CDK bootstrap** fonctionne de la manière suivante :

1. [Au moment de l'exécution, si vous avez spécifié la version 1.0.7 ou une version antérieure de l'action, celle-ci télécharge la dernière CLI CDK (également appelée AWS CDK Tookit) sur l'image de construction. CodeCatalyst ](build-images.md)

   Si vous avez spécifié la version 1.0.8 ou ultérieure, l'action est fournie avec une [version spécifique](cdk-dep-action.md#cdk-dep-action-cdk-version) de la CLI CDK, de sorte qu'aucun téléchargement n'a lieu.

1. L'action utilise la CLI CDK pour exécuter la `cdk bootstrap` commande. *Cette commande exécute les tâches d'amorçage décrites dans la rubrique [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) du Guide du développeur.AWS Cloud Development Kit (AWS CDK) *

## Versions de la CLI CDK utilisées par l'action « AWS CDK  bootstrap »
<a name="cdk-boot-action-cdk-version"></a>

Le tableau suivant indique quelle version de la CLI CDK est utilisée par défaut par les différentes versions de l'action **AWS CDK bootstrap.**

**Note**  
Vous pouvez peut-être remplacer la valeur par défaut. Pour plus d’informations, consultez [CdkCliVersion](cdk-boot-action-ref.md#cdk.boot.cdk.cli.version) dans le [action 'AWS CDK bootstrap' YAML](cdk-boot-action-ref.md).


| version de l'AWS CDK action « bootstrap » | AWS CDK Version de la CLI | 
| --- | --- | 
|  10,0 — 1,0,7  |  dernières  | 
|  1.0.8 ou version ultérieure  |  2,99,1  | 

## Image d'exécution utilisée par l'action « AWS CDK  bootstrap »
<a name="cdk-boot-action-runtime"></a>

Le tableau suivant présente les images de l'environnement d'exécution CodeCatalyst utilisées pour exécuter différentes versions de l'action **AWS CDK bootstrap**. Les images incluent différents ensembles d'outillage préinstallés. Pour de plus amples informations, veuillez consulter [Images actives](build-images.md#build-curated-images).

**Note**  
Nous vous recommandons de mettre à niveau votre action **AWS CDK bootstrap** vers la version 2.x pour tirer parti des derniers outils disponibles sur l'image de mars 2024. Pour mettre à niveau l'action, définissez sa `Identifier` propriété sur `aws/cdk-bootstrap@v2` dans le fichier de définition de votre flux de travail. Pour de plus amples informations, veuillez consulter [action « AWS CDK  déployer » YAML](cdk-dep-action-ref.md). 


| version de l'AWS CDK action « bootstrap » | Images de l'environnement d'exécution | 
| --- | --- | 
|  1.x  |  Images du mois de novembre 2022  | 
|  2.x  |  Images du mois de mars 2024  | 

# Exemple : démarrage d'une application AWS CDK
<a name="cdk-boot-action-example-workflow"></a>

Reportez-vous au [Exemple : déploiement d'une AWS CDK application](cdk-dep-action-example-workflow.md) in [Déploiement d'une AWS CDK application avec un flux de travail](cdk-dep-action.md) pour un flux de travail incluant l'action **AWS CDK bootstrap.**

# Ajouter l'action « AWS CDK  bootstrap »
<a name="cdk-boot-action-add"></a>

 Suivez les instructions ci-dessous pour ajouter l'action **AWS CDK bootstrap** à votre flux de travail. 

**Avant de commencer**

Avant de pouvoir utiliser l'action **AWS CDK bootstrap**, assurez-vous qu'une AWS CDK application est prête. L'action bootstrap synthétisera l' AWS CDK application avant le démarrage. Vous pouvez écrire votre application dans n'importe quel langage de programmation pris en charge par le AWS CDK.

Assurez-vous que les fichiers de votre AWS CDK application sont disponibles dans :
+ Un [référentiel CodeCatalyst source](source.md), ou 
+ [Artefact CodeCatalyst de sortie](workflows-working-artifacts.md) généré par une autre action du flux de travail

------
#### [ Visual ]

**Pour ajouter l'action « AWS CDK  bootstrap » à l'aide de l'éditeur visuel**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **Visual**.

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action **AWS CDK bootstrap**, puis effectuez l'une des opérations suivantes :
   + Choisissez le signe plus (**\$1**) pour ajouter l'action au diagramme de flux de travail et ouvrir son volet de configuration.

     Or
   + Choisissez **AWS CDK bootstrap.** La boîte de dialogue des détails de l'action apparaît. Dans cette boîte de dialogue :
     + (Facultatif) Choisissez **Afficher la source** pour [afficher le code source de l'action](workflows-view-source.md#workflows-view-source.title).
     + Choisissez **Ajouter au flux de travail** pour ajouter l'action au diagramme du flux de travail et ouvrir son volet de configuration.

1. Dans les onglets **Entrées**, **Configuration** et **Sorties**, complétez les champs en fonction de vos besoins. Pour une description de chaque champ, consultez le[action 'AWS CDK bootstrap' YAML](cdk-boot-action-ref.md). Cette référence fournit des informations détaillées sur chaque champ (et la valeur de propriété YAML correspondante) tel qu'il apparaît dans les éditeurs YAML et visuels.

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.
**Note**  
Si votre action **AWS CDK bootstrap** échoue avec une `npm install` erreur, consultez [Comment corriger les erreurs « npm install » ?](troubleshooting-workflows.md#troubleshooting-workflows-npm) pour savoir comment corriger l'erreur.

------
#### [ YAML ]

**Pour ajouter l'action « AWS CDK  bootstrap » à l'aide de l'éditeur YAML**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action **AWS CDK bootstrap**, puis choisissez **\$1** pour l'ajouter au diagramme de flux de travail et ouvrir son volet de configuration.

1. Modifiez les propriétés du code YAML en fonction de vos besoins. Une explication de chaque propriété disponible est fournie dans le[action 'AWS CDK bootstrap' YAML](cdk-boot-action-ref.md).

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.
**Note**  
Si votre action **AWS CDK bootstrap** échoue avec une `npm install` erreur, consultez [Comment corriger les erreurs « npm install » ?](troubleshooting-workflows.md#troubleshooting-workflows-npm) pour savoir comment corriger l'erreur.

------

# variables « AWS CDK  bootstrap »
<a name="cdk-boot-action-variables"></a>

L'action **AWS CDK bootstrap** produit et définit les variables suivantes au moment de l'exécution. Ces variables sont connues sous le nom de *variables prédéfinies*.

Pour plus d'informations sur le référencement de ces variables dans un flux de travail, consultez[Utilisation de variables prédéfinies](workflows-using-predefined-variables.md).


| Clé | Valeur | 
| --- | --- | 
|  plate-forme-de-déploiement  |  Nom de la plateforme de déploiement. Codé en dur pour. `AWS:CloudFormation`  | 
|  region  |  Le code de région dans Région AWS lequel la pile AWS CDK bootstrap a été déployée lors de l'exécution du flux de travail. Exemple : `us-west-2`  | 
|  identifiant de pile  |  Le nom de ressource Amazon (ARN) de la pile AWS CDK bootstrap déployée. Exemple : `arn:aws:cloudformation:us-west-2:111122223333:stack/codecatalyst-cdk-bootstrap-stack/6aad4380-100a-11ec-a10a-03b8a84d40df`  | 
|  SAUTER LE DÉPLOIEMENT  |  La valeur de `true` indique que le déploiement de votre stack AWS CDK bootstrap a été ignoré lors de l'exécution du flux de travail. Un déploiement de pile sera ignoré s'il n'y a aucun changement dans la pile depuis le dernier déploiement. Cette variable n'est produite que si sa valeur est`true`. Codé en dur pour. `true`  | 

# action 'AWS CDK bootstrap' YAML
<a name="cdk-boot-action-ref"></a>

Voici la définition YAML de l'action **AWS CDK bootstrap.** Pour savoir comment utiliser cette action, consultez[Démarrage d'une AWS CDK application à l'aide d'un flux de travail](cdk-boot-action.md).

Cette définition d'action existe sous la forme d'une section au sein d'un fichier de définition de flux de travail plus large. Pour plus d’informations sur ce fichier, consultez [Définition du flux de travail YAML](workflow-reference.md).

**Note**  
La plupart des propriétés YAML suivantes ont des éléments d'interface utilisateur correspondants dans l'éditeur visuel. Pour rechercher un élément de l'interface utilisateur, utilisez **Ctrl\$1F**. L'élément sera répertorié avec sa propriété YAML associée.

```
# The workflow definition starts here.
# See Propriétés de haut niveau for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.    
  CDKBootstrapAction\$1nn: 
    Identifier: aws/cdk-bootstrap@v2
    DependsOn:
      - action-name
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - artifact-name
    Outputs:
      Artifacts:
        - Name: cdk_bootstrap_artifacts
          Files: 
            - "cdk.out/**/*"
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      Region: us-west-2
      CdkCliVersion: version
```

## CDKBootstrapAction
<a name="cdk.boot.name"></a>

(Obligatoire)

Spécifiez le nom de l'action. Tous les noms d'action doivent être uniques dans le flux de travail. Les noms d'action sont limités aux caractères alphanumériques (a-z, A-Z, 0-9), aux tirets (-) et aux traits de soulignement (\$1). Les espaces ne sont pas autorisés. Vous ne pouvez pas utiliser de guillemets pour activer les caractères spéciaux et les espaces dans les noms d'action.

Par défaut : `CDKBootstrapAction_nn`.

Interface utilisateur correspondante : onglet Configuration/nom **d'affichage de l'action**

## Identifier
<a name="cdk.boot.identifier"></a>

(*CDKBootstrapAction*/**Identifier**)

(Obligatoire)

Identifie l'action. Ne modifiez pas cette propriété, sauf si vous souhaitez modifier la version. Pour de plus amples informations, veuillez consulter [Spécification de la version de l'action à utiliser](workflows-action-versions.md).

**Note**  
La spécification `aws/cdk-bootstrap@v2` entraîne l'exécution de l'action sur l'[image de mars 2024](build-images.md#build.default-image) qui inclut des outils plus récents tels que Node.js 18. La spécification `aws/cdk-bootstrap@v1` entraîne l'exécution de l'action sur l'[image de novembre 2022](build-images.md#build.previous-image) qui inclut des outils plus anciens tels que Node.js 16.

Par défaut : `aws/cdk-bootstrap@v2`.

**Interface utilisateur correspondante : diagramme de flux de travail/ CDKBootstrapAction \$1nn/ aws/cdk-bootstrap @v2 label**

## DependsOn
<a name="cdk.boot.dependson"></a>

(*CDKBootstrapAction*/**DependsOn**)

(Facultatif)

Spécifiez une action, un groupe d'actions ou une porte qui doit s'exécuter correctement pour que cette action soit exécutée.

Pour plus d'informations sur la fonctionnalité « dépend », consultez. [Actions de séquençage](workflows-depends-on.md)

Interface utilisateur correspondante : onglet **Entrées/dépend de - facultatif**

## Compute
<a name="cdk.boot.computename"></a>

(*CDKBootstrapAction*/**Compute**)

(Facultatif)

Le moteur informatique utilisé pour exécuter les actions de votre flux de travail. Vous pouvez spécifier le calcul au niveau du flux de travail ou au niveau de l'action, mais pas les deux. Lorsqu'elle est spécifiée au niveau du flux de travail, la configuration de calcul s'applique à toutes les actions définies dans le flux de travail. Au niveau du flux de travail, vous pouvez également exécuter plusieurs actions sur la même instance. Pour de plus amples informations, veuillez consulter [Partage du calcul entre les actions](compute-sharing.md).

Interface utilisateur correspondante : *aucune*

## Type
<a name="cdk.boot.computetype"></a>

(*CDKBootstrapAction*/Compute/**Type**)

(Obligatoire s'[Compute](#cdk.boot.computename)il est inclus)

Type de moteur de calcul. Vous pouvez utiliser l'une des valeurs suivantes :
+ **EC2**(éditeur visuel) ou `EC2` (éditeur YAML)

  Optimisé pour la flexibilité lors des courses d'action.
+ **Lambda** (éditeur visuel) ou `Lambda` (éditeur YAML)

  Vitesses de démarrage des actions optimisées.

Pour plus d'informations sur les types de calcul, veuillez consulter [Types de calcul](workflows-working-compute.md#compute.types).

**Interface utilisateur correspondante : Configuration tab/Advanced - optionnel/ Type de calcul**

## Fleet
<a name="cdk.boot.computefleet"></a>

(*CDKBootstrapAction*/Compute/**Fleet**)

(Facultatif)

Spécifiez la machine ou le parc qui exécutera votre flux de travail ou vos actions de flux de travail. Dans le cas des flottes à la demande, lorsqu'une action démarre, le flux de travail fournit les ressources dont il a besoin et les machines sont détruites à la fin de l'action. Exemples de flottes à la demande :`Linux.x86-64.Large`,`Linux.x86-64.XLarge`. Pour plus d'informations sur les flottes à la demande, consultez[Propriétés de la flotte à la demande](workflows-working-compute.md#compute.on-demand).

Avec les flottes provisionnées, vous configurez un ensemble de machines dédiées pour exécuter les actions de votre flux de travail. Ces machines restent inactives, prêtes à exécuter des actions immédiatement. Pour plus d'informations sur les flottes provisionnées, consultez. [Propriétés de la flotte de véhicules provisionnée](workflows-working-compute.md#compute.provisioned-fleets)

S'il `Fleet` est omis, la valeur par défaut est`Linux.x86-64.Large`.

**Interface utilisateur correspondante : Configuration tab/Advanced - optionnel/ Parc de calcul**

## Timeout
<a name="cdk.boot.timeout"></a>

(*CDKBootstrapAction*/**Timeout**)

(Obligatoire)

Spécifiez la durée en minutes (éditeur YAML) ou en heures et minutes (éditeur visuel) pendant laquelle l'action peut être exécutée avant la CodeCatalyst fin de l'action. Le minimum est de 5 minutes et le maximum est décrit dans[Quotas pour les flux de travail dans CodeCatalyst](workflows-quotas.md). Le délai d'expiration par défaut est le même que le délai d'expiration maximal.

Interface utilisateur correspondante : onglet **Configuration/Délai d'expiration - facultatif**

## Inputs
<a name="cdk.boot.inputs"></a>

(*CDKBootstrapAction*/**Inputs**)

(Facultatif)

La `Inputs` section définit les données dont l'action **AWS CDK bootstrap** a besoin lors de l'exécution d'un flux de travail.

Interface utilisateur correspondante : onglet **Entrées**

**Note**  
Une seule entrée (source ou artefact) est autorisée pour chaque action d'**AWS CDK amorçage.**

## Sources
<a name="cdk.boot.inputs.sources"></a>

(*CDKBootstrapAction*/Inputs/**Sources**)

(Obligatoire si votre AWS CDK application est stockée dans un référentiel source)

Si votre AWS CDK application est stockée dans un référentiel source, spécifiez l'étiquette de ce référentiel source. L'action **AWS CDK bootstrap** synthétise l'application dans ce référentiel avant de démarrer le processus de démarrage. Actuellement, la seule étiquette de référentiel prise en charge est`WorkflowSource`.

Si votre AWS CDK application n'est pas contenue dans un référentiel source, elle doit résider dans un artefact généré par une autre action.

Pour plus d'informations sur les sources, consultez [Connecter les référentiels sources aux flux de travail](workflows-sources.md).

Interface utilisateur correspondante : onglet **Entrées/Sources - facultatif**

## Artifacts - input
<a name="cdk.boot.inputs.artifacts"></a>

(*CDKBootstrapAction*/Inputs/**Artifacts**)

(Obligatoire si votre AWS CDK application est stockée dans un [artefact de sortie](workflows-working-artifacts-output.md) d'une action précédente)

Si votre AWS CDK application est contenue dans un artefact généré par une action précédente, spécifiez cet artefact ici. L'action **AWS CDK bootstrap** synthétise l'application contenue dans l'artefact spécifié dans un CloudFormation modèle avant de démarrer le processus d'amorçage. Si votre AWS CDK application n'est pas contenue dans un artefact, elle doit résider dans votre référentiel source.

Pour plus d'informations sur les artefacts, y compris des exemples, consultez[Partage d'artefacts et de fichiers entre les actions](workflows-working-artifacts.md).

Interface utilisateur correspondante : onglet **Entrées/Artefacts - facultatif**

## Outputs
<a name="cdk.boot.outputs"></a>

(*CDKBootstrapAction*/**Outputs**)

(Facultatif)

Définit les données produites par l'action lors de l'exécution d'un flux de travail.

Interface utilisateur correspondante : onglet **Sorties**

## Artifacts - output
<a name="cdk.boot.outputs.artifacts"></a>

(*CDKBootstrapAction*/Outputs/**Artifacts**)

(Facultatif)

Spécifiez les artefacts générés par l'action. Vous pouvez faire référence à ces artefacts en tant qu'entrée dans d'autres actions.

Pour plus d'informations sur les artefacts, y compris des exemples, consultez[Partage d'artefacts et de fichiers entre les actions](workflows-working-artifacts.md).

**Interface utilisateur correspondante : onglet Sorties/Artefacts**

## Name
<a name="cdk.boot.outputs.artifacts.name"></a>

(*CDKBootstrapAction*/Outputs/Artifacts/**Name**)

(Obligatoire s'[Artifacts - output](#cdk.boot.outputs.artifacts)il est inclus)

Spécifiez le nom de l'artefact qui contiendra le CloudFormation modèle synthétisé par l'action **AWS CDK bootstrap** lors de l'exécution. La valeur par défaut est `cdk_bootstrap_artifacts`. Si vous ne spécifiez aucun artefact, l'action synthétise le modèle, mais ne l'enregistre pas dans un artefact. Envisagez d'enregistrer le modèle synthétisé dans un artefact afin d'en conserver une trace à des fins de test ou de dépannage.

**Interface utilisateur correspondante : affiche le nom de l'tab/Artifacts/Addartefact/de l'artefact de construction**

## Files
<a name="cdk.boot.outputs.artifacts.files"></a>

(*CDKBootstrapAction*/Outputs/Artifacts/**Files**)

(Obligatoire s'[Artifacts - output](#cdk.boot.outputs.artifacts)il est inclus)

Spécifiez les fichiers à inclure dans l'artefact. Vous devez spécifier `"cdk.out/**/*"` d'inclure le CloudFormation modèle synthétisé de votre AWS CDK application.

**Note**  
`cdk.out`est le répertoire par défaut dans lequel les fichiers synthétisés sont enregistrés. Si vous avez spécifié un répertoire de sortie autre que celui `cdk.out` de votre `cdk.json` fichier, spécifiez ce répertoire ici au lieu de`cdk.out`.

Interface utilisateur correspondante : produit des tab/Artifacts/Add **artéfacts/fichiers** produits par build

## Environment
<a name="cdk.boot.environment"></a>

(*CDKBootstrapAction*/**Environment**)

(Obligatoire)

Spécifiez l' CodeCatalyst environnement à utiliser avec l'action. L'action se connecte au Compte AWS VPC Amazon facultatif spécifié dans l'environnement choisi. L'action utilise le rôle IAM par défaut spécifié dans l'environnement pour se connecter au Compte AWS, et utilise le rôle IAM spécifié dans la [connexion Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) pour se connecter à Amazon VPC.

**Note**  
Si le rôle IAM par défaut ne dispose pas des autorisations requises par l'action, vous pouvez configurer l'action pour utiliser un autre rôle. Pour de plus amples informations, veuillez consulter [Modifier le rôle IAM d'une action](deploy-environments-switch-role.md).

Pour plus d'informations sur les environnements, reportez-vous [Déploiement dans Comptes AWS et VPCs](deploy-environments.md) aux sections et[Création d'un environnement](deploy-environments-creating-environment.md).

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Name
<a name="cdk.boot.environment.name"></a>

(*CDKBootstrapAction*/Environment/**Name**)

(Obligatoire s'[Environment](#cdk.boot.environment)il est inclus)

Spécifiez le nom de l'environnement existant que vous souhaitez associer à l'action.

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Connections
<a name="cdk.boot.environment.connections"></a>

(*CDKBootstrapAction*/Environment/**Connections**)

(Facultatif dans les nouvelles versions de l'action ; obligatoire dans les anciennes versions)

Spécifiez la connexion au compte à associer à l'action. Vous pouvez spécifier un maximum d'une connexion à un compte sous`Environment`.

Si vous ne spécifiez pas de connexion au compte :
+ L'action utilise la Compte AWS connexion et le rôle IAM par défaut spécifiés dans l'environnement de la CodeCatalyst console. Pour plus d'informations sur l'ajout d'une connexion à un compte et d'un rôle IAM par défaut dans l'environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).
+ Le rôle IAM par défaut doit inclure les politiques et les autorisations requises par l'action. Pour déterminer quelles sont ces politiques et autorisations, consultez la description de la propriété **Role** dans la documentation de définition YAML de l'action.

Pour plus d'informations sur les connexions aux comptes, consultez[Permettre l'accès aux AWS ressources avec Connected Comptes AWS](ipa-connect-account.md). Pour plus d'informations sur l'ajout d'une connexion de compte à un environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Name
<a name="cdk.boot.environment.connections.name"></a>

(*CDKBootstrapAction*/Environment/Connections/**Name**)

(Obligatoire s'[Connections](#cdk.boot.environment.connections)il est inclus)

Spécifiez le nom de la connexion au compte.

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Role
<a name="cdk.boot.environment.connections.role"></a>

(*CDKBootstrapAction*/Environment/Connections/**Role**)

(Obligatoire s'[Connections](#cdk.boot.environment.connections)il est inclus)

Spécifiez le nom du rôle IAM que l'action **AWS CDK bootstrap** utilise pour accéder à la pile bootstrap AWS et l'ajouter. Assurez-vous que vous avez [ajouté le rôle à votre CodeCatalyst espace](ipa-connect-account-addroles.md) et qu'il inclut les politiques suivantes.

Si vous ne spécifiez aucun rôle IAM, l'action utilise le rôle IAM par défaut répertorié dans l'[environnement](deploy-environments.md) de la console. CodeCatalyst Si vous utilisez le rôle par défaut dans l'environnement, assurez-vous qu'il dispose des politiques appropriées.

Vous pouvez utiliser le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle avec cette action, si vous le souhaitez. Pour plus d’informations sur ce rôle, consultez [Création du **CodeCatalystWorkflowDevelopmentRole-*spaceName***rôle pour votre compte et votre espace](ipa-iam-roles.md#ipa-iam-roles-service-create). Sachez que le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle dispose d'autorisations d'accès complètes, ce qui peut présenter un risque de sécurité. Nous vous recommandons de n'utiliser ce rôle que dans les didacticiels et les scénarios où la sécurité est moins préoccupante. 

Interface utilisateur correspondante : l'une des options suivantes, selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' '/ Rôle Environment/account/role**

## Configuration
<a name="cdk.boot.configuration"></a>

(*CDKBootstrapAction*/**Configuration**)

(Obligatoire)

Section dans laquelle vous pouvez définir les propriétés de configuration de l'action.

Interface utilisateur correspondante : onglet **Configuration**

## Region
<a name="cdk.boot.region"></a>

(*CDKBootstrapAction*/Configuration/**Region**)

(Obligatoire)

Spécifiez le Région AWS lieu dans lequel la pile bootstrap sera déployée. Cette région doit correspondre à celle dans laquelle votre AWS CDK application est déployée. Pour obtenir la liste des codes de région, consultez la section [Points de terminaison régionaux](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes).

**Interface utilisateur correspondante : onglet Configuration/région**

## CdkCliVersion
<a name="cdk.boot.cdk.cli.version"></a>

(*CDKBootstrapAction*/Configuration/**CdkCliVersion**)

(Facultatif)

Cette propriété est disponible avec la version 1.0.13 ou ultérieure de l'action de **AWS CDK déploiement**, et la version 1.0.8 ou ultérieure de l'action **AWS CDK bootstrap**.

Spécifiez l’un des éléments suivants :
+ Version complète de l'interface de ligne de AWS Cloud Development Kit (AWS CDK) commande (CLI) (également appelée AWS CDK boîte à outils) que vous souhaitez utiliser pour cette action. Exemple: `2.102.1`. Pensez à spécifier une version complète pour garantir la cohérence et la stabilité lors de la création et du déploiement de votre application.

  Or
+ `latest`. Envisagez `latest` de spécifier pour tirer parti des dernières fonctionnalités et correctifs de la CLI CDK.

L'action téléchargera la version spécifiée (ou la dernière version) de la AWS CDK CLI sur l'[image de CodeCatalyst construction](build-images.md), puis utilisera cette version pour exécuter les commandes nécessaires au déploiement de votre application CDK ou au démarrage de votre AWS environnement.

Pour obtenir la liste des versions de CLI CDK prises en charge que vous pouvez utiliser, consultez la section [AWS CDK Versions](https://docs.aws.amazon.com/cdk/api/versions.html).

Si vous omettez cette propriété, l'action utilise une version de AWS CDK CLI par défaut décrite dans l'une des rubriques suivantes :
+ [Versions de la CLI CDK utilisées par l'action « AWS CDK  déploiement »](cdk-dep-action.md#cdk-dep-action-cdk-version) 
+ [Versions de la CLI CDK utilisées par l'action « AWS CDK  bootstrap »](cdk-boot-action.md#cdk-boot-action-cdk-version)

Interface utilisateur correspondante : onglet Configuration/version de la **AWS CDK CLI**

# Publication de fichiers sur Amazon S3 à l'aide d'un flux de travail
<a name="s3-pub-action"></a>

Cette section décrit comment publier des fichiers sur Amazon S3 à l'aide d'un CodeCatalyst flux de travail. Pour ce faire, vous devez ajouter l'action de **publication Amazon S3** à votre flux de travail. L'action de **publication Amazon S3** copie les fichiers d'un répertoire source vers un compartiment Amazon S3. Le répertoire source peut résider dans :
+ Un [référentiel source](source.md), ou 
+ [Artefact de sortie](workflows-working-artifacts.md) généré par une autre action du flux de travail

**Topics**
+ [Quand utiliser l'action « publier sur Amazon S3 »](#s3-pub-action-when-to-use)
+ [Image d'exécution utilisée par l'action « Amazon S3 publish »](#s3-pub-action-runtime)
+ [Exemple : publier des fichiers sur Amazon S3](s3-pub-action-example-workflow.md)
+ [Ajout de l'action « Publication Amazon S3 »](s3-pub-action-add.md)
+ [Action YAML « publier sur Amazon S3 »](s3-pub-action-ref.md)

## Quand utiliser l'action « publier sur Amazon S3 »
<a name="s3-pub-action-when-to-use"></a>

Utilisez cette action si :
+ Vous disposez d'un flux de travail qui génère les fichiers que vous souhaitez stocker dans Amazon S3.

  Par exemple, vous pouvez avoir un flux de travail qui crée un site Web statique que vous souhaitez héberger dans Amazon S3. Dans ce cas, votre flux de travail inclurait une [action](build-add-action.md) de création pour créer le code HTML du site et les fichiers de support, et une action de **publication Amazon S3** pour copier les fichiers sur Amazon S3.
+ Vous disposez d'un référentiel source qui contient les fichiers que vous souhaitez stocker dans Amazon S3.

  Par exemple, vous pouvez disposer d'un référentiel source contenant des fichiers source d'application que vous souhaitez archiver tous les soirs sur Amazon S3.

## Image d'exécution utilisée par l'action « Amazon S3 publish »
<a name="s3-pub-action-runtime"></a>

L'action de **publication Amazon S3** s'exécute sur une [image de novembre 2022](build-images.md#build.previous-image). Pour de plus amples informations, veuillez consulter [Images actives](build-images.md#build-curated-images).

# Exemple : publier des fichiers sur Amazon S3
<a name="s3-pub-action-example-workflow"></a>

L'exemple de flux de travail suivant inclut l'action de **publication Amazon S3**, ainsi qu'une action de génération. Le flux de travail crée un site Web de documentation statique, puis le publie sur Amazon S3, où il est hébergé. Le flux de travail comprend les éléments de base suivants qui s'exécutent de manière séquentielle :
+ Un **déclencheur** : ce déclencheur lance automatiquement l'exécution du flux de travail lorsque vous apportez une modification à votre référentiel source. Pour plus d'informations sur les déclencheurs, consultez [Démarrage d'un flux de travail exécuté automatiquement à l'aide de déclencheurs](workflows-add-trigger.md).
+ Une action de **construction** (`BuildDocs`) — Au déclenchement, l'action crée un site Web de documentation statique (`mkdocs build`) et ajoute les fichiers HTML associés et les métadonnées associées à un artefact appelé`MyDocsSite`. Pour plus d'informations sur l'action de génération, consultez[Construire avec des flux de travail](build-workflow-actions.md).
+ Une action de **publication Amazon S3** (`PublishToS3`) : une fois l'action de création terminée, cette action copie le site contenu dans l'`MyDocsSite`artefact sur Amazon S3 pour l'hébergement.

**Note**  
L'exemple de flux de travail suivant est fourni à titre d'illustration et ne fonctionnera pas sans configuration supplémentaire.

**Note**  
Dans le code YAML qui suit, vous pouvez omettre la `Connections:` section si vous le souhaitez. Si vous omettez cette section, vous devez vous assurer que le rôle spécifié dans le champ **Rôle IAM par défaut** de votre environnement inclut les autorisations et les politiques de confiance requises par l'action de **publication Amazon S3**. Pour plus d'informations sur la configuration d'un environnement doté d'un rôle IAM par défaut, consultez[Création d'un environnement](deploy-environments-creating-environment.md). Pour plus d'informations sur les autorisations et les politiques de confiance requises par l'action de **publication Amazon S3**, consultez la description de la [Role](s3-pub-action-ref.md#s3.pub.environment.connections.role) propriété dans le[Action YAML « publier sur Amazon S3 »](s3-pub-action-ref.md).

```
Name: codecatalyst-s3-publish-workflow
SchemaVersion: 1.0

Triggers:
  - Type: PUSH
    Branches:
      - main
Actions:
  BuildDocs:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
        - Run: echo BuildDocs started on `date`
        - Run: pip install --upgrade pip
        - Run: pip install mkdocs
        - Run: mkdocs build
        - Run: echo BuildDocs completed on `date`
    Outputs:
      Artifacts:
      - Name: MyDocsSite
        Files:
          - "site/**/*"
        
  PublishToS3:
    Identifier: aws/s3-publish@v1
    Environment:
      Name: codecatalyst-s3-publish-environment
      Connections:
        - Name: codecatalyst-account-connection
          Role: codecatalyst-s3-publish-build-role
    Inputs:
      Sources:
        - WorkflowSource
      Artifacts:
        - MyDocsSite
    Configuration:      
      DestinationBucketName: amzn-s3-demo-bucket
      SourcePath: /artifacts/PublishToS3/MyDocSite/site
      TargetPath: my/docs/site
```

# Ajout de l'action « Publication Amazon S3 »
<a name="s3-pub-action-add"></a>

 Suivez les instructions suivantes pour ajouter l'action de **publication Amazon S3** à votre flux de travail. 

------
#### [ Visual ]

**Pour ajouter l'action « Amazon S3 publish » à l'aide de l'éditeur visuel**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **Visual**.

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action de **publication Amazon S3** et effectuez l'une des opérations suivantes :
   + Choisissez le signe plus (**\$1**) pour ajouter l'action au diagramme de flux de travail et ouvrir son volet de configuration.

     Or
   + Choisissez **Amazon S3 Publish**. La boîte de dialogue des détails de l'action apparaît. Dans cette boîte de dialogue :
     + (Facultatif) Choisissez **Afficher la source** pour [afficher le code source de l'action](workflows-view-source.md#workflows-view-source.title).
     + Choisissez **Ajouter au flux de travail** pour ajouter l'action au diagramme du flux de travail et ouvrir son volet de configuration.

1. Dans les onglets **Entrées**, **Configuration** et **Sorties**, complétez les champs en fonction de vos besoins. Pour obtenir une description de chaque champ, consultez le[Action YAML « publier sur Amazon S3 »](s3-pub-action-ref.md). Cette référence fournit des informations détaillées sur chaque champ (et la valeur de propriété YAML correspondante) tel qu'il apparaît dans les éditeurs YAML et visuels.

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------
#### [ YAML ]

**Pour ajouter l'action « Amazon S3 publish » à l'aide de l'éditeur YAML**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. En haut à gauche, choisissez **\$1 Actions** pour ouvrir le catalogue d'actions.

1. Dans la liste déroulante, sélectionnez **Amazon CodeCatalyst**.

1. Recherchez l'action de **publication Amazon S3** et effectuez l'une des opérations suivantes :
   + Choisissez le signe plus (**\$1**) pour ajouter l'action au diagramme de flux de travail et ouvrir son volet de configuration.

     Or
   + Choisissez **Amazon S3 Publish**. La boîte de dialogue des détails de l'action apparaît. Dans cette boîte de dialogue :
     + (Facultatif) Choisissez **Afficher la source** pour [afficher le code source de l'action](workflows-view-source.md#workflows-view-source.title).
     + Choisissez **Ajouter au flux de travail** pour ajouter l'action au diagramme du flux de travail et ouvrir son volet de configuration.

1. Modifiez les propriétés du code YAML en fonction de vos besoins. Une explication de chaque propriété disponible est fournie dans le[Action YAML « publier sur Amazon S3 »](s3-pub-action-ref.md).

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------

# Action YAML « publier sur Amazon S3 »
<a name="s3-pub-action-ref"></a>

Voici la définition YAML de l'action de **publication Amazon S3**. Pour savoir comment utiliser cette action, consultez[Publication de fichiers sur Amazon S3 à l'aide d'un flux de travail](s3-pub-action.md).

Cette définition d'action existe sous forme de section au sein d'un fichier de définition de flux de travail plus large. Pour plus d’informations sur ce fichier, consultez [Définition du flux de travail YAML](workflow-reference.md).

**Note**  
La plupart des propriétés YAML suivantes ont des éléments d'interface utilisateur correspondants dans l'éditeur visuel. Pour rechercher un élément de l'interface utilisateur, utilisez **Ctrl\$1F**. L'élément sera répertorié avec sa propriété YAML associée.

```
# The workflow definition starts here.
# See Propriétés de haut niveau for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.    
  S3Publish\$1nn: 
    Identifier: aws/s3-publish@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      Sources:
        - source-name-1
      Artifacts:
        - artifact-name
      Variables:
        - Name: variable-name-1
          Value: variable-value-1
        - Name: variable-name-2
          Value: variable-value-2
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      SourcePath: my/source
      DestinationBucketName: amzn-s3-demo-bucket
      TargetPath: my/target
```

## S3Publish
<a name="s3.pub.name"></a>

(Obligatoire)

Spécifiez le nom de l'action. Tous les noms d'action doivent être uniques dans le flux de travail. Les noms d'action sont limités aux caractères alphanumériques (a-z, A-Z, 0-9), aux tirets (-) et aux traits de soulignement (\$1). Les espaces ne sont pas autorisés. Vous ne pouvez pas utiliser de guillemets pour activer les caractères spéciaux et les espaces dans les noms d'action.

Par défaut : `S3Publish_nn`.

Interface utilisateur correspondante : onglet Configuration/nom de **l'action**

## Identifier
<a name="s3.pub.identifier"></a>

(*S3Publish*/**Identifier**)

(Obligatoire)

Identifie l'action. Ne modifiez pas cette propriété, sauf si vous souhaitez modifier la version. Pour de plus amples informations, veuillez consulter [Spécification de la version de l'action à utiliser](workflows-action-versions.md).

Par défaut : `aws/s3-publish@v1`.

**Interface utilisateur correspondante : diagramme de flux de travail/ S3Publish \$1nn/ aws/s3-publish @v1 label**

## DependsOn
<a name="s3.pub.dependson"></a>

(*S3Publish*/**DependsOn**)

(Facultatif)

Spécifiez une action, un groupe d'actions ou une porte qui doit s'exécuter correctement pour que cette action soit exécutée.

Pour plus d'informations sur la fonctionnalité « dépend », consultez. [Actions de séquençage](workflows-depends-on.md)

Interface utilisateur correspondante : onglet **Entrées/dépend de - facultatif**

## Compute
<a name="s3.pub.computename"></a>

(*S3Publish*/**Compute**)

(Facultatif)

Le moteur informatique utilisé pour exécuter les actions de votre flux de travail. Vous pouvez spécifier le calcul au niveau du flux de travail ou au niveau de l'action, mais pas les deux. Lorsqu'elle est spécifiée au niveau du flux de travail, la configuration de calcul s'applique à toutes les actions définies dans le flux de travail. Au niveau du flux de travail, vous pouvez également exécuter plusieurs actions sur la même instance. Pour de plus amples informations, veuillez consulter [Partage du calcul entre les actions](compute-sharing.md).

Interface utilisateur correspondante : *aucune*

## Type
<a name="s3.pub.computetype"></a>

(*S3Publish*/Compute/**Type**)

(Obligatoire s'[Compute](#s3.pub.computename)il est inclus)

Type de moteur de calcul. Vous pouvez utiliser l'une des valeurs suivantes :
+ **EC2**(éditeur visuel) ou `EC2` (éditeur YAML)

  Optimisé pour la flexibilité lors des courses d'action.
+ **Lambda** (éditeur visuel) ou `Lambda` (éditeur YAML)

  Vitesses de démarrage des actions optimisées.

Pour plus d'informations sur les types de calcul, veuillez consulter [Types de calcul](workflows-working-compute.md#compute.types).

Interface utilisateur correspondante : onglet Configuration/Type **de calcul**

## Fleet
<a name="s3.pub.computefleet"></a>

(*S3Publish*/Compute/**Fleet**)

(Facultatif)

Spécifiez la machine ou le parc qui exécutera votre flux de travail ou vos actions de flux de travail. Dans le cas des flottes à la demande, lorsqu'une action démarre, le flux de travail fournit les ressources dont il a besoin et les machines sont détruites à la fin de l'action. Exemples de flottes à la demande :`Linux.x86-64.Large`,`Linux.x86-64.XLarge`. Pour plus d'informations sur les flottes à la demande, consultez[Propriétés de la flotte à la demande](workflows-working-compute.md#compute.on-demand).

Avec les flottes provisionnées, vous configurez un ensemble de machines dédiées pour exécuter les actions de votre flux de travail. Ces machines restent inactives, prêtes à exécuter des actions immédiatement. Pour plus d'informations sur les flottes provisionnées, consultez. [Propriétés de la flotte de véhicules provisionnée](workflows-working-compute.md#compute.provisioned-fleets)

S'il `Fleet` est omis, la valeur par défaut est`Linux.x86-64.Large`.

Interface utilisateur correspondante : onglet Configuration/parc **de calcul**

## Timeout
<a name="s3.pub.timeout"></a>

(*S3Publish*/**Timeout**)

(Obligatoire)

Spécifiez la durée en minutes (éditeur YAML) ou en heures et minutes (éditeur visuel) pendant laquelle l'action peut être exécutée avant la CodeCatalyst fin de l'action. Le minimum est de 5 minutes et le maximum est décrit dans[Quotas pour les flux de travail dans CodeCatalyst](workflows-quotas.md). Le délai d'expiration par défaut est le même que le délai d'expiration maximal.

Interface utilisateur correspondante : onglet **Configuration/Délai d'expiration - facultatif**

## Inputs
<a name="s3.pub.inputs"></a>

(*S3Publish*/**Inputs**)

(Facultatif)

La `Inputs` section définit les données dont ils ont `S3Publish` besoin lors de l'exécution d'un flux de travail.

**Note**  
Un maximum de quatre entrées (une source et trois artefacts) sont autorisées pour chaque action de **AWS CDK déploiement**. Les variables ne sont pas prises en compte dans ce total.

Si vous devez faire référence à des fichiers résidant dans différentes entrées (par exemple, une source et un artefact), l'entrée source est l'entrée principale et l'artefact est l'entrée secondaire. Les références aux fichiers dans les entrées secondaires utilisent un préfixe spécial pour les distinguer du fichier principal. Pour en savoir plus, consultez [Exemple : Référencement de fichiers dans plusieurs artefacts](workflows-working-artifacts-ex.md#workflows-working-artifacts-ex-ref-file).

Interface utilisateur correspondante : onglet **Entrées**

## Sources
<a name="s3.pub.inputs.sources"></a>

(*S3Publish*/Inputs/**Sources**)

(Obligatoire si les fichiers que vous souhaitez publier sur Amazon S3 sont stockés dans un référentiel source)

Si les fichiers que vous souhaitez publier sur Amazon S3 sont stockés dans un référentiel source, spécifiez l'étiquette de ce référentiel source. Actuellement, la seule étiquette prise en charge est`WorkflowSource`.

Si les fichiers que vous souhaitez publier sur Amazon S3 ne figurent pas dans un référentiel source, ils doivent résider dans un artefact généré par une autre action.

Pour plus d'informations sur les sources, consultez [Connecter les référentiels sources aux flux de travail](workflows-sources.md).

Interface utilisateur correspondante : onglet **Entrées/Sources - facultatif**

## Artifacts - input
<a name="s3.pub.inputs.artifacts"></a>

(*S3Publish*/Inputs/**Artifacts**)

(Obligatoire si les fichiers que vous souhaitez publier sur Amazon S3 sont stockés dans un [artefact de sortie](workflows-working-artifacts-output.md) issu d'une action précédente)

Si les fichiers que vous souhaitez publier sur Amazon S3 sont contenus dans un artefact généré par une action précédente, spécifiez cet artefact ici. Si vos fichiers ne sont pas contenus dans un artefact, ils doivent se trouver dans votre référentiel source.

Pour plus d'informations sur les artefacts, y compris des exemples, consultez[Partage d'artefacts et de fichiers entre les actions](workflows-working-artifacts.md).

Interface utilisateur correspondante : onglet **Configuration/Artefacts - facultatif**

## Variables - input
<a name="s3.pub.inputs.variables"></a>

(*S3Publish*/Inputs/**Variables**)

(Facultatif)

Spécifiez une séquence de name/value paires qui définit les variables d'entrée que vous souhaitez mettre à la disposition de l'action. Les noms de variables sont limités aux caractères alphanumériques (a-z, A-Z, 0-9), aux tirets (-) et aux traits de soulignement (\$1). Les espaces ne sont pas autorisés. Vous ne pouvez pas utiliser de guillemets pour activer les caractères spéciaux et les espaces dans les noms de variables.

Pour plus d'informations sur les variables, y compris des exemples, consultez[Utilisation de variables dans les flux de travail](workflows-working-with-variables.md).

Interface utilisateur correspondante : onglet **Entrées/Variables - facultatif**

## Environment
<a name="s3.pub.environment"></a>

(*S3Publish*/**Environment**)

(Obligatoire)

Spécifiez l' CodeCatalyst environnement à utiliser avec l'action. L'action se connecte au Compte AWS VPC Amazon facultatif spécifié dans l'environnement choisi. L'action utilise le rôle IAM par défaut spécifié dans l'environnement pour se connecter au Compte AWS, et utilise le rôle IAM spécifié dans la [connexion Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) pour se connecter à Amazon VPC.

**Note**  
Si le rôle IAM par défaut ne dispose pas des autorisations requises par l'action, vous pouvez configurer l'action pour utiliser un autre rôle. Pour de plus amples informations, veuillez consulter [Modifier le rôle IAM d'une action](deploy-environments-switch-role.md).

Pour plus d'informations sur les environnements, reportez-vous [Déploiement dans Comptes AWS et VPCs](deploy-environments.md) aux sections et[Création d'un environnement](deploy-environments-creating-environment.md).

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Name
<a name="s3.pub.environment.name"></a>

(*S3Publish*/Environment/**Name**)

(Obligatoire s'[Environment](#s3.pub.environment)il est inclus)

Spécifiez le nom de l'environnement existant que vous souhaitez associer à l'action.

**Interface utilisateur correspondante : onglet Configuration/Environnement**

## Connections
<a name="s3.pub.environment.connections"></a>

(*S3Publish*/Environment/**Connections**)

(Facultatif dans les nouvelles versions de l'action ; obligatoire dans les anciennes versions)

Spécifiez la connexion au compte à associer à l'action. Vous pouvez spécifier un maximum d'une connexion à un compte sous`Environment`.

Si vous ne spécifiez pas de connexion au compte :
+ L'action utilise la Compte AWS connexion et le rôle IAM par défaut spécifiés dans l'environnement de la CodeCatalyst console. Pour plus d'informations sur l'ajout d'une connexion à un compte et d'un rôle IAM par défaut dans l'environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).
+ Le rôle IAM par défaut doit inclure les politiques et les autorisations requises par l'action. Pour déterminer quelles sont ces politiques et autorisations, consultez la description de la propriété **Role** dans la documentation de définition YAML de l'action.

Pour plus d'informations sur les connexions aux comptes, consultez[Permettre l'accès aux AWS ressources avec Connected Comptes AWS](ipa-connect-account.md). Pour plus d'informations sur l'ajout d'une connexion de compte à un environnement, consultez[Création d'un environnement](deploy-environments-creating-environment.md).

Interface utilisateur correspondante : l'une des suivantes selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Name
<a name="s3.pub.environment.connections.name"></a>

(*S3Publish*/Environment/Connections/**Name**)

(Obligatoire s'[Connections](#s3.pub.environment.connections)il est inclus)

Spécifiez le nom de la connexion au compte.

Interface utilisateur correspondante : l'une des suivantes selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' Environment/account/role AWS '/ connexion au compte**

## Role
<a name="s3.pub.environment.connections.role"></a>

(*S3Publish*/Environment/Connections/**Role**)

(Obligatoire s'[Connections](#s3.pub.environment.connections)il est inclus)

Spécifiez le nom du rôle IAM que l'action de **publication Amazon S3** utilise pour accéder aux fichiers AWS et les copier sur Amazon S3. Assurez-vous que vous avez [ajouté le rôle à votre CodeCatalyst espace](ipa-connect-account-addroles.md) et qu'il inclut les politiques suivantes.

Si vous ne spécifiez aucun rôle IAM, l'action utilise le rôle IAM par défaut répertorié dans l'[environnement](deploy-environments.md) de la console. CodeCatalyst Si vous utilisez le rôle par défaut dans l'environnement, assurez-vous qu'il est conforme aux politiques suivantes.
+ La politique d'autorisation suivante :
**Avertissement**  
Limitez les autorisations à celles indiquées dans la politique suivante. L'utilisation d'un rôle doté d'autorisations plus étendues peut présenter un risque de sécurité.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:ListBucket",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::bucket-name",
                  "arn:aws:s3:::bucket-name/*"
              ]
          }
      ]
  }
  ```

------
+ La politique de confiance personnalisée suivante :

**Note**  
Vous pouvez utiliser le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle avec cette action, si vous le souhaitez. Pour plus d’informations sur ce rôle, consultez [Création du **CodeCatalystWorkflowDevelopmentRole-*spaceName***rôle pour votre compte et votre espace](ipa-iam-roles.md#ipa-iam-roles-service-create). Sachez que le `CodeCatalystWorkflowDevelopmentRole-spaceName` rôle dispose d'autorisations d'accès complètes, ce qui peut présenter un risque de sécurité. Nous vous recommandons de n'utiliser ce rôle que dans les didacticiels et les scénarios où la sécurité est moins préoccupante. 

Interface utilisateur correspondante : l'une des suivantes selon la version de l'action :
+ (Versions plus récentes) tab/Environment/What La configuration est prête *my-environment* ? **/menu à trois points/ Changer de rôle**
+ **(Anciennes versions) Onglet de configuration/' '/ Rôle Environment/account/role**

## Configuration
<a name="s3.pub.configuration"></a>

(*S3Publish*/**Configuration**)

(Obligatoire)

Section dans laquelle vous pouvez définir les propriétés de configuration de l'action.

Interface utilisateur correspondante : onglet **Configuration**

## SourcePath
<a name="s3.pub.source.directory"></a>

(*S3Publish*/Configuration/**SourcePath**)

(Obligatoire)

Spécifiez le nom et le chemin d'un répertoire ou d'un fichier que vous souhaitez publier sur Amazon S3. Le répertoire ou le fichier peut résider dans un référentiel source ou dans un artefact issu d'une action précédente, et est relatif au référentiel source ou à la racine de l'artefact.

Exemples :

La spécification `./myFolder/` copie le contenu de `/myFolder` vers Amazon S3 et préserve la structure de répertoire sous-jacente.

Spécifier `./myFolder/myfile.txt` des copies *uniquement* `myfile.txt` pour Amazon S3. (La structure du répertoire est supprimée.)

Vous ne pouvez pas utiliser de caractères génériques.

**Note**  
Vous devrez peut-être ajouter un préfixe au répertoire ou au chemin du fichier pour indiquer dans quel artefact ou dans quelle source le trouver. Pour plus d’informations, consultez [Référencement des fichiers du référentiel source](workflows-sources-reference-files.md) et [Référencement de fichiers dans un artefact](workflows-working-artifacts-refer-files.md).

Interface utilisateur correspondante : onglet Configuration/chemin **source**

## DestinationBucketName
<a name="s3.pub.dest.bucket"></a>

(*S3Publish*/Configuration/**DestinationBucketName**)

(Obligatoire)

Spécifiez le nom du compartiment Amazon S3 dans lequel vous souhaitez publier les fichiers.

Interface utilisateur correspondante : onglet **Configuration/compartiment de destination - facultatif**

## TargetPath
<a name="s3.pub.dest.directory"></a>

(*S3Publish*/Configuration/**TargetPath**)

(Facultatif)

Spécifiez le nom et le chemin du répertoire dans Amazon S3 dans lequel vous souhaitez publier vos fichiers. Si le répertoire n'existe pas, il sera créé. Le chemin du répertoire ne doit pas inclure le nom du bucket.

Exemples :

`myS3Folder`

`./myS3Folder/myS3Subfolder`

Interface utilisateur correspondante : onglet **Configuration/répertoire de destination - facultatif**

# Déploiement dans Comptes AWS et VPCs
<a name="deploy-environments"></a>

À l'aide de [CodeCatalyst flux de travail](workflow.md), vous pouvez déployer des applications et d'autres ressources sur Target Compte AWS et Amazon VPCs dans le AWS cloud. Pour activer ces déploiements, vous devez configurer CodeCatalyst des environnements.

Un CodeCatalyst *environnement*, à ne pas confondre avec un [environnement de développement](https://docs.aws.amazon.com/codecatalyst/latest/userguide/devenvironment.html), définit le VPC Amazon cible Compte AWS et facultatif auquel un CodeCatalyst [flux de travail](workflow.md) se connecte. Un environnement définit également le [rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dont un flux de travail a besoin pour accéder aux AWS services et aux ressources du compte cible.

Vous pouvez configurer plusieurs environnements et leur attribuer des noms tels que développement, test, préparation et production. Lorsque vous déployez dans ces environnements, les informations relatives aux déploiements apparaissent dans les onglets **Activité de CodeCatalyst déploiement** et **Cibles de déploiement** de l'environnement.

## Comment démarrer avec les environnements ?
<a name="deploy-environments-get-started"></a>

Les étapes de haut niveau pour ajouter et utiliser un CodeCatalyst environnement sont les suivantes :

1. Dans votre CodeCatalyst espace, **connectez un ou plusieurs AWS comptes**. Au cours de ce processus, ajoutez les rôles IAM dont votre flux de travail a besoin pour accéder aux ressources de votre Compte AWS. Pour de plus amples informations, veuillez consulter [Permettre l'accès aux AWS ressources avec Connected Comptes AWS](ipa-connect-account.md).

1. Dans votre CodeCatalyst projet, **créez un environnement** qui inclut l'un des rôles Compte AWS s et IAM de l'étape 1. Pour de plus amples informations, veuillez consulter [Création d'un environnement](deploy-environments-creating-environment.md).

1. Dans votre CodeCatalyst projet, dans un flux de travail, **ajoutez une [action](workflows-actions.md) qui pointe vers l'environnement** que vous avez créé à l'étape 2. Pour de plus amples informations, veuillez consulter [Ajouter une action à un flux de travail](workflows-add-action.md).

   Vous venez de configurer un environnement. L'action peut désormais déployer des ressources dans l'environnement Compte AWS spécifié.

**Note**  
Vous pouvez également ajouter un Amazon VPC à l'environnement. Pour plus d'informations, consultez les [sections Ajout de connexions VPC pour un espace](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) dans le *Guide d'CodeCatalyst administration* et. [Associer un VPC à un environnement](deploy-environments-associate-vpc.md)

## Est-il possible de créer plusieurs environnements au sein d'un même flux de travail ?
<a name="deploy-environments-multiple"></a>

Oui. Si un flux de travail inclut plusieurs actions, un environnement peut être attribué à chacune de ces actions. Par exemple, vous pouvez avoir un flux de travail qui inclut deux actions de déploiement, l'une étant affectée à un `my-staging-enviroment` environnement et l'autre à un `my-production-environment` environnement.

## Quelles actions de flux de travail prennent en charge les environnements ?
<a name="deploy-environments-supported"></a>

Toute action de flux de travail qui déploie des ressources dans le AWS cloud ou qui communique avec AWS des services pour d'autres raisons (telles que la surveillance et le reporting) prend en charge les environnements.

## Quelles actions permettent d'afficher leurs informations de déploiement CodeCatalyst ?
<a name="deploy-environments-supported-targets"></a>

Parmi les actions de flux de travail qui prennent en charge les environnements, seules quelques-unes prennent en charge l'affichage de leurs informations de **déploiement sur les pages Activité** de **déploiement et Cibles** de déploiement de la CodeCatalyst console.

Les actions de flux de travail suivantes permettent d'afficher leurs informations de déploiement :
+ **Déployer CloudFormation une pile** — Pour plus d'informations, voir [Déploiement d'une CloudFormation pile](deploy-action-cfn.md)
+ **Déploiement sur Amazon ECS** — Pour plus d'informations, consultez [Déploiement sur Amazon ECS à l'aide d'un flux de travail](deploy-action-ecs.md)
+ **Déploiement sur un cluster Kubernetes** — Pour plus d'informations, voir [Déploiement sur Amazon EKS à l'aide d'un flux de travail](deploy-action-eks.md)
+ **AWS CDK déployer** — Pour plus d'informations, voir [Déploiement d'une AWS CDK application avec un flux de travail](cdk-dep-action.md)

## Régions prises en charge
<a name="deploy-environments-supported-regions"></a>

La page **Environnements** peut afficher les ressources de n'importe quelle AWS région.

## Un environnement est-il obligatoire ?
<a name="deploy-environments-optional-or-mandatory"></a>

Un environnement est obligatoire si l'action de flux de travail à laquelle il est affecté déploie des ressources dans le AWS cloud ou communique avec les AWS services pour d'autres raisons (telles que la surveillance et le reporting).

Par exemple, si vous avez une action de génération qui crée une application mais n'a pas besoin de communiquer avec votre VPC Compte AWS ou Amazon, vous n'avez pas besoin d'attribuer un environnement à l'action. Si, toutefois, l'action de génération envoie des journaux au CloudWatch service Amazon de votre Compte AWS ordinateur, un environnement doit être attribué à l'action. 

**Topics**
+ [Comment démarrer avec les environnements ?](#deploy-environments-get-started)
+ [Est-il possible de créer plusieurs environnements au sein d'un même flux de travail ?](#deploy-environments-multiple)
+ [Quelles actions de flux de travail prennent en charge les environnements ?](#deploy-environments-supported)
+ [Quelles actions permettent d'afficher leurs informations de déploiement CodeCatalyst ?](#deploy-environments-supported-targets)
+ [Régions prises en charge](#deploy-environments-supported-regions)
+ [Un environnement est-il obligatoire ?](#deploy-environments-optional-or-mandatory)
+ [Création d'un environnement](deploy-environments-creating-environment.md)
+ [Associer un environnement à une action](deploy-environments-add-app-to-environment.md)
+ [Associer un VPC à un environnement](deploy-environments-associate-vpc.md)
+ [Associer un Compte AWS à un environnement](deploy-environments-associate-account.md)
+ [Modifier le rôle IAM d'une action](deploy-environments-switch-role.md)

# Création d'un environnement
<a name="deploy-environments-creating-environment"></a>

Suivez les instructions ci-dessous pour créer un environnement que vous pourrez associer ultérieurement à une action de flux de travail.

**Avant de commencer**

Vous avez besoin des éléments suivants :
+ Un CodeCatalyst espace. Pour de plus amples informations, veuillez consulter [Configurer et se connecter à CodeCatalystConfigurer et se connecter à CodeCatalyst](setting-up-topnode.md).
+ Un CodeCatalyst projet. Pour de plus amples informations, veuillez consulter [Création d'un projet à l'aide d'un plan](projects-create.md#projects-create-console-template).
+ Une connexion à un AWS compte qui inclut les rôles IAM auxquels votre action de flux de travail devra accéder AWS. Pour plus d'informations sur la création d'une connexion à un compte, consultez[Permettre l'accès aux AWS ressources avec Connected Comptes AWS](ipa-connect-account.md). Vous pouvez utiliser au maximum une connexion à un compte par environnement.
**Note**  
Vous pouvez créer un environnement sans connexion à un compte, mais vous devrez revenir et ajouter la connexion ultérieurement.
+ L'un des CodeCatalyst rôles suivants :
  + **Administrateur de l'espace**
  + **Administrateur du projet**
  + **Participant**
**Note**  
Si vous avez le **rôle de contributeur**, vous pourrez créer un environnement, mais vous ne pourrez pas l'associer à une Compte AWS connexion. Vous devrez demander à une personne ayant le rôle d'**administrateur de l'espace** ou d'**administrateur de projet** d'associer l'environnement à une Compte AWS connexion.

   Pour plus d'informations sur les autorisations et les rôles, consultez[Octroi d'autorisations de projet aux utilisateurs](projects-members.md).

**Pour créer un environnement**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Environments.**

1. Dans **Nom de l'environnement**, entrez un nom, tel que **Production** ou**Staging**.

1. Dans **Type d'environnement**, sélectionnez l'une des options suivantes :
   + **Hors production** : environnement dans lequel vous pouvez tester votre application pour vous assurer qu'elle fonctionne comme prévu avant de la mettre en production.
   + **Production** : environnement « en direct » accessible au public qui héberge votre application finalisée.

     Si vous choisissez **Production**, un badge **de production** apparaît dans l'interface utilisateur à côté de toutes les actions associées à l'environnement. Ce badge vous permet de voir rapidement quelles actions sont déployées en production. Hormis l'apparence du badge, il n'existe aucune différence entre les environnements de production et les environnements hors production.

1. (Facultatif) Dans **Description**, entrez une description telle que**Production environment for the hello-world app**.

1. Dans **Compte AWS Connexion (facultatif)**, choisissez la connexion au AWS compte que vous souhaitez associer à cet environnement. Les actions de flux de travail attribuées à cet environnement pourront se connecter à l'environnement associé Compte AWS. Pour plus d'informations sur la création de Compte AWS connexions dans CodeCatalyst, consultez[Permettre l'accès aux AWS ressources avec Connected Comptes AWS](ipa-connect-account.md).

   Si la Compte AWS connexion que vous souhaitez utiliser n'est pas répertoriée, c'est peut-être parce qu'elle n'est pas autorisée dans votre projet. Pour plus d'informations, consultez la [section Configuration des connexions de compte restreintes au projet](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) dans le manuel *Amazon CodeCatalyst Administrator Guide*.

1. Dans **Rôle IAM par défaut**, choisissez le rôle IAM que vous souhaitez associer à cet environnement. Les actions de flux de travail attribuées à cet environnement hériteront de ce rôle IAM et pourront l'utiliser pour se connecter aux services et aux ressources de votre. Compte AWS

   Si vous devez affecter l'environnement à plusieurs actions et que ces actions nécessitent des rôles IAM différents de celui par défaut spécifié ici, vous pouvez spécifier les différents rôles dans l'onglet **Configuration** de chaque action, à l'aide de l'option **Changer de rôle**. Pour de plus amples informations, veuillez consulter [Modifier le rôle IAM d'une action](deploy-environments-switch-role.md).

   Si le rôle IAM que vous souhaitez utiliser par défaut n'est pas répertorié, c'est peut-être parce que vous ne l'avez pas encore ajouté à votre Compte AWS connexion. Pour ajouter un rôle IAM à une connexion à un compte, consultez[Ajout de rôles IAM à des connexions de compte](ipa-connect-account-addroles.md).

1. (Facultatif) Dans **Connexion VPC**, choisissez une connexion VPC que vous souhaitez associer à cet environnement. Pour plus d'informations sur la création de connexions VPC, consultez Managing [Amazon Virtual Private Clouds](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.html) dans le manuel *Amazon CodeCatalyst Administrator Guide*.

   Si la connexion VPC que vous souhaitez utiliser n'est pas répertoriée, c'est peut-être parce qu'elle inclut une Compte AWS connexion non autorisée dans votre projet. Pour plus d'informations, consultez la [section Configuration des connexions de compte restreintes au projet](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) dans le manuel *Amazon CodeCatalyst Administrator Guide*.

1. Choisissez **Créer un environnement**. CodeCatalyst crée un environnement vide.

**Étapes suivantes**
+ Maintenant que vous avez créé un environnement, vous êtes prêt à l'associer à une action de flux de travail. Pour de plus amples informations, veuillez consulter [Associer un environnement à une action](deploy-environments-add-app-to-environment.md).

# Associer un environnement à une action
<a name="deploy-environments-add-app-to-environment"></a>

Lorsque vous associez un environnement à une [action de flux de travail prise en charge](deploy-environments.md#deploy-environments-supported), le rôle IAM par défaut de l'environnement et le VPC Amazon optionnel sont affectés à l'action. Compte AWS L'action peut ensuite se connecter et se déployer à l' Compte AWS aide du rôle IAM, et également se connecter au VPC Amazon optionnel.

Suivez les instructions ci-dessous pour associer un environnement à une action.

## Étape 1 : associer l'environnement à une action de flux de travail
<a name="deploy-environments-add-app-to-environment-assoc"></a>

Utilisez la procédure suivante pour associer un environnement à une action de flux de travail.

------
#### [ Visual ]

**Pour associer un environnement à une action de flux de travail à l'aide de l'éditeur visuel**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **Visual**.

1. Dans le diagramme du flux de travail, choisissez une action prise en charge par les environnements. Pour de plus amples informations, veuillez consulter [Quelles actions permettent d'afficher leurs informations de déploiement CodeCatalyst ?](deploy-environments.md#deploy-environments-supported-targets).

1. Choisissez l'onglet **Configuration** et spécifiez les informations dans le champ **Environnement**, comme suit.

   **Environnement**

   Spécifiez l' CodeCatalyst environnement à utiliser avec l'action. L'action se connecte au Compte AWS VPC Amazon facultatif spécifié dans l'environnement choisi. L'action utilise le rôle IAM par défaut spécifié dans l'environnement pour se connecter au Compte AWS, et utilise le rôle IAM spécifié dans la [connexion Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) pour se connecter à Amazon VPC.
**Note**  
Si le rôle IAM par défaut ne dispose pas des autorisations requises par l'action, vous pouvez configurer l'action pour utiliser un autre rôle. Pour de plus amples informations, veuillez consulter [Modifier le rôle IAM d'une action](deploy-environments-switch-role.md).

   Pour plus d'informations sur les environnements, reportez-vous [Déploiement dans Comptes AWS et VPCs](deploy-environments.md) aux sections et[Création d'un environnement](deploy-environments-creating-environment.md).

1. (Facultatif) Modifiez le rôle IAM associé à l'action. Vous souhaiterez peut-être modifier le rôle s'il contient le mauvais ensemble d'autorisations pour l'action.

    Pour modifier le rôle, procédez comme suit :

   1. Dans le **What's in *my-environment* ?** case, et choisissez l'icône représentant des points de suspension verticaux (![\[Ellipsis.\]](http://docs.aws.amazon.com/fr_fr/codecatalyst/latest/userguide/images/flows/elipsis.png)).

   1. Sélectionnez l’une des méthodes suivantes :
      +  **Changez de rôle**. Choisissez cette option pour modifier le rôle IAM utilisé par cette action, et uniquement par cette action. Les autres actions continuent d'utiliser le rôle IAM par défaut spécifié dans leur environnement associé. Pour de plus amples informations, veuillez consulter [Modifier le rôle IAM d'une action](deploy-environments-switch-role.md).
      +  **Modifier l'environnement**. Choisissez cette option pour modifier le rôle IAM par défaut répertorié dans votre environnement. Lorsque vous choisissez cette option, votre action, ainsi que toute autre action associée au même environnement, commence à utiliser le nouveau rôle IAM par défaut.
**Important**  
Soyez prudent lorsque vous mettez à jour le rôle IAM par défaut. La modification du rôle peut entraîner l'échec de l'action si les autorisations associées au rôle ne sont pas suffisantes pour toutes les actions qui partagent l'environnement.

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------
#### [ YAML ]

**Pour associer un environnement à une action de flux de travail à l'aide de l'éditeur YAML**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. Dans l'action de flux de travail que vous souhaitez associer à un environnement, ajoutez un code similaire au suivant :

   ```
   action-name:
     Environment:
       Name: environment-name
   ```

   Pour plus d'informations, consultez la [Types d'action](workflows-actions.md#workflows-actions-types) rubrique. Cette rubrique contient des liens vers la documentation de chaque action, y compris sa référence YAML.

1. (Facultatif) Si vous souhaitez que l'action utilise un rôle différent du rôle IAM par défaut répertorié dans l'environnement, ajoutez une `Connections:` section qui inclut le rôle que vous souhaitez utiliser. Pour de plus amples informations, veuillez consulter [Modifier le rôle IAM d'une action](deploy-environments-switch-role.md).

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------

## Étape 2 : remplir la page des activités de déploiement
<a name="deploy-environments-add-app-to-environment-run"></a>

Après avoir associé un environnement à une action de flux de travail, vous pouvez renseigner les pages **Activité de déploiement** et **Cible de déploiement** dans la section **Environnements** de la CodeCatalyst console avec des informations de déploiement. Suivez les instructions ci-dessous pour remplir ces pages.

**Note**  
Seules quelques actions permettent d'afficher leurs informations de déploiement dans la CodeCatalyst console. Pour de plus amples informations, veuillez consulter [Quelles actions permettent d'afficher leurs informations de déploiement CodeCatalyst ?](deploy-environments.md#deploy-environments-supported-targets).

**Pour ajouter des informations de déploiement à CodeCatalyst**

1. Si une exécution de flux de travail ne démarrait pas automatiquement lorsque vous avez validé vos modifications[Étape 1 : associer l'environnement à une action de flux de travail](#deploy-environments-add-app-to-environment-assoc), lancez-la manuellement comme suit :

   1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

   1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

   1. Cliquez sur **Exécuter**.

   L'exécution du flux de travail lance un nouveau déploiement, ce qui CodeCatalyst entraîne l'ajout d'informations de déploiement à CodeCatalyst.

1. Vérifiez que l'activité de déploiement a été ajoutée à la CodeCatalyst console :

   1. **Dans le volet de navigation, choisissez **CI/CD**, puis Environments.**

   1. Choisissez votre environnement (par exemple,`Production`).

   1. Choisissez l'onglet **Activité de déploiement** et vérifiez qu'un déploiement apparaît avec **le statut** **RÉUSSI**. Cela indique qu'un flux de travail exécuté a correctement déployé les ressources de votre application.

   1. Choisissez l'onglet **Cibles de déploiement** et vérifiez que les ressources de votre application apparaissent.

# Associer un VPC à un environnement
<a name="deploy-environments-associate-vpc"></a>

Lorsqu'une action est configurée avec un environnement doté d'une connexion VPC, l'action s'exécute connectée au VPC, conformément aux règles réseau et aux ressources d'accès spécifiées par le VPC associé. La même connexion VPC peut être utilisée par un ou plusieurs environnements.

Suivez les instructions suivantes pour associer une connexion VPC à un environnement.

**Pour associer une connexion VPC à un environnement**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Environments.**

1. Choisissez votre environnement (par exemple,`Production`).

1. Choisissez l'onglet **Propriétés de l'environnement**.

1. **Choisissez **Gérer la connexion VPC, choisissez la connexion** VPC de votre choix, puis cliquez sur Confirmer.** Cela associe la connexion VPC que vous avez sélectionnée à cet environnement.
**Note**  
Si la connexion VPC que vous souhaitez utiliser n'est pas répertoriée, c'est peut-être parce qu'elle inclut une Compte AWS connexion non autorisée dans votre projet. Pour plus d'informations, consultez la [section Configuration des connexions de compte restreintes au projet](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) dans le manuel *Amazon CodeCatalyst Administrator Guide*.

Pour plus d'informations, consultez [Managing Amazon Virtual Private Clouds](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.html) dans le *guide de CodeCatalyst l'administrateur*.

# Associer un Compte AWS à un environnement
<a name="deploy-environments-associate-account"></a>

Suivez les instructions ci-dessous pour Compte AWS associer un à un environnement. Lorsque vous associez un Compte AWS à un environnement, les actions de flux de travail attribuées à l'environnement pourront se connecter au Compte AWS.

Pour plus d'informations sur les connexions aux comptes, consultez[Permettre l'accès aux AWS ressources avec Connected Comptes AWS](ipa-connect-account.md).

**Avant de commencer**

Vous avez besoin des éléments suivants :
+ Une connexion à un AWS compte qui inclut les rôles IAM auxquels votre action de flux de travail devra accéder AWS. Pour plus d'informations sur la création d'une connexion à un compte, consultez[Permettre l'accès aux AWS ressources avec Connected Comptes AWS](ipa-connect-account.md). Vous pouvez utiliser au maximum une connexion à un compte par environnement.
+ L'un des CodeCatalyst rôles suivants : administrateur de **l'espace ou administrateur** **du projet**. Pour de plus amples informations, veuillez consulter [Octroi d'autorisations de projet aux utilisateurs](projects-members.md).

**Pour associer un Compte AWS à un environnement**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Environments.**

1. Choisissez votre environnement (par exemple,`Production`).

1. Choisissez **Modifier l'environnement**.

1. Sous **Propriétés de l'environnement**, dans la liste déroulante **Compte AWS Connexion - facultatif**, sélectionnez votre choix Compte AWS.

   Si la Compte AWS connexion que vous souhaitez utiliser n'est pas répertoriée, c'est peut-être parce qu'elle n'est pas autorisée dans votre projet. Pour plus d'informations, consultez la [section Configuration des connexions de compte restreintes au projet](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html) dans le manuel *Amazon CodeCatalyst Administrator Guide*.

1. Dans **Rôle IAM par défaut**, choisissez le rôle IAM que vous souhaitez associer à cet environnement. Les actions de flux de travail attribuées à cet environnement hériteront de ce rôle IAM et pourront l'utiliser pour se connecter aux services et aux ressources de votre. Compte AWS

   Si le rôle IAM que vous souhaitez utiliser par défaut n'est pas répertorié, c'est peut-être parce que vous ne l'avez pas encore ajouté à votre Compte AWS connexion. Pour ajouter un rôle IAM à une connexion à un compte, consultez[Ajout de rôles IAM à des connexions de compte](ipa-connect-account-addroles.md).

# Modifier le rôle IAM d'une action
<a name="deploy-environments-switch-role"></a>

Par défaut, lorsque vous associez un [environnement](deploy-environments.md) à une [action](workflows-actions.md) de flux de travail, l'action hérite du rôle IAM par défaut spécifié dans l'environnement. Vous pouvez modifier ce comportement afin que l'action utilise un rôle différent. Vous souhaiterez peut-être qu'une action utilise un rôle différent si le rôle IAM par défaut ne dispose pas des autorisations nécessaires pour fonctionner dans le AWS cloud.

Pour attribuer un rôle IAM différent à une action, vous pouvez utiliser l'option **Changer de rôle** dans l'éditeur visuel ou la `Connections:` propriété dans l'éditeur YAML. Le nouveau rôle remplace le rôle IAM par défaut spécifié dans l'environnement, ce qui vous permet de conserver le rôle IAM par défaut tel quel. Vous souhaiterez peut-être conserver le rôle IAM par défaut tel quel si d'autres actions l'utilisent.

Utilisez les instructions suivantes pour configurer une action afin d'utiliser un rôle IAM différent de celui spécifié dans son environnement.

------
#### [ Visual ]

**Pour attribuer un rôle IAM différent à une action (éditeur visuel)**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez la case qui représente l'action dont vous souhaitez mettre à jour le rôle IAM.

1. Cliquez sur l’onglet **Configuration**.

1. Dans le **What's in *my-environment* ?** case, choisissez l'icône représentant des points de suspension verticaux (![\[Ellipsis.\]](http://docs.aws.amazon.com/fr_fr/codecatalyst/latest/userguide/images/flows/elipsis.png)).

1. Choisissez **Changer de rôle**.

1. Dans la boîte de dialogue **Changer de rôle**, dans la liste déroulante des **rôles IAM**, choisissez le rôle IAM que vous souhaitez utiliser par l'action. Ce rôle remplacera le rôle IAM par défaut dans l'environnement. Si le rôle que vous souhaitez utiliser ne figure pas dans la liste, assurez-vous de l'avoir ajouté à votre espace. Pour de plus amples informations, veuillez consulter [Ajout de rôles IAM à des connexions de compte](ipa-connect-account-addroles.md).

   Le rôle choisi apparaît désormais dans la section **What's in *my-environment* ?** boîte avec un badge **Defined in Workflow**. Le rôle apparaît également dans le fichier de définition du flux de travail, dans la `Connections:` section.

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

------
#### [ YAML ]

**Pour attribuer un rôle IAM différent à une action (éditeur YAML)**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Modifier**.

1. Choisissez **YAML.**

1. Dans l'action de flux de travail dans laquelle vous souhaitez utiliser un autre rôle IAM, ajoutez une `Connections:` section similaire à la suivante :

   ```
   action-name:
     Environment:
       Name: environment-name
       Connections: 
         - Name: account-connection-name
           Role: iam-role-name
   ```

   Dans le code précédent, remplacez *account-connection-name* par le nom de la [connexion au compte](ipa-connect-account.md) contenant le rôle IAM et remplacez *iam-role-name* par le nom du rôle IAM que vous souhaitez que l'action utilise. Ce rôle remplacera le rôle IAM par défaut dans l'environnement. Assurez-vous d'avoir ajouté le rôle à votre espace. Pour de plus amples informations, veuillez consulter [Ajout de rôles IAM à des connexions de compte](ipa-connect-account-addroles.md).

   Pour plus d'informations, consultez la [Types d'action](workflows-actions.md#workflows-actions-types) rubrique. Cette rubrique contient des liens vers la documentation de chaque action, y compris sa référence YAML.

------

# Afficher l'URL de l'application dans le diagramme du flux de travail
<a name="deploy-app-url"></a>

Si votre flux de travail déploie une application, vous pouvez configurer Amazon CodeCatalyst pour afficher l'URL de l'application sous forme de lien cliquable. Ce lien apparaît dans la CodeCatalyst console, dans l'action qui l'a déployé. Le diagramme de flux de travail suivant montre l'URL de l'**application View** qui apparaît au bas d'une action.

![\[Afficher l'URL de l'application\]](http://docs.aws.amazon.com/fr_fr/codecatalyst/latest/userguide/images/deploy/view-app-url.png)


En rendant cette URL cliquable dans la CodeCatalyst console, vous pouvez vérifier rapidement le déploiement de votre application.

**Note**  
L'URL de l'application n'est pas prise en charge par l'action **Deploy to Amazon ECS**.

Pour activer cette fonctionnalité, ajoutez une variable de sortie à votre action dont le nom contient`appurl`, ou`endpointurl`. Vous pouvez utiliser un nom avec ou sans tiret (`-`), trait de soulignement (`_`) ou espace (` `). La chaîne ne distingue pas les majuscules et minuscules. Définissez la valeur de la variable sur l'`https`URL `http` ou l'URL de votre application déployée.

**Note**  
Si vous mettez à jour une variable de sortie existante pour inclure la `endpoint url` chaîne ou`app url`, mettez à jour toutes les références à cette variable pour utiliser le nouveau nom de variable.

Pour connaître les étapes détaillées, consultez l'une des procédures suivantes :
+ [Pour afficher l'URL de l'application dans l'action « AWS CDK  déployer »](#deploy-app-url-cdk)
+ [Pour afficher l'URL de l'application dans l'action « Deploy CloudFormation stack »](#deploy-app-url-cfn)
+ [Pour afficher l'URL de l'application dans toutes les autres actions](#deploy-app-url-other)

Lorsque vous avez terminé de configurer l'URL, vérifiez qu'elle s'affiche comme prévu en suivant ces instructions :
+ [Pour vérifier que l'URL de l'application a été ajoutée](#deploy-app-url-verify)<a name="deploy-app-url-cdk"></a>

**Pour afficher l'URL de l'application dans l'action « AWS CDK  déployer »**

1. Si vous utilisez l'action de **AWS CDK déploiement**, ajoutez une `CfnOutput` construction (qui est une paire clé-valeur) dans le code de votre AWS CDK application :
   + Le nom de la clé doit contenir`appurl`, ou`endpointurl`, avec ou sans tiret (`-`), un trait de soulignement (`_`) ou un espace (` `). La chaîne ne distingue pas les majuscules et minuscules.
   + La valeur doit être l'`https`URL `http` ou l'URL de votre application déployée.

   Par exemple, votre AWS CDK code peut ressembler à ceci :

   ```
   import { Duration, Stack, StackProps, CfnOutput, RemovalPolicy} from 'aws-cdk-lib';
   import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
   import * as s3 from 'aws-cdk-lib/aws-s3';
   import { Construct } from 'constructs';
   import * as cdk from 'aws-cdk-lib';
   export class HelloCdkStack extends Stack {
     constructor(scope: Construct, id: string, props?: StackProps) {
       super(scope, id, props);
       const bucket = new s3.Bucket(this, 'amzn-s3-demo-bucket', {
         removalPolicy: RemovalPolicy.DESTROY,
       });
       new CfnOutput(this, 'APP-URL', {
         value: https://mycompany.myapp.com,
         description: 'The URL of the deployed application',
         exportName: 'myApp',
       });
       ...
     }
   }
   ```

   Pour plus d'informations sur la `CfnOutput` construction, voir [interface CfnOutputProps](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnOutputProps.html) dans la *référence de l'AWS Cloud Development Kit (AWS CDK) API*.

1. Enregistrez et validez votre code.

1. Passez à [Pour vérifier que l'URL de l'application a été ajoutée](#deploy-app-url-verify).<a name="deploy-app-url-cfn"></a>

**Pour afficher l'URL de l'application dans l'action « Deploy CloudFormation stack »**

1. Si vous utilisez l'action **Deploy CloudFormation stack**, ajoutez une sortie à la `Outputs` section de votre CloudFormation modèle ou de votre AWS SAM modèle présentant les caractéristiques suivantes :
   + La clé (également appelée ID logique) doit contenir ou `appurl` `endpointurl` non un tiret (`-`), un trait de soulignement (`_`) ou un espace (` `). La chaîne ne distingue pas les majuscules et minuscules.
   + La valeur doit être l'`https`URL `http` ou l'URL de votre application déployée.

   Par exemple, votre CloudFormation modèle peut ressembler à ceci :

   ```
   "Outputs" : {
     "APP-URL" : {
       "Description" : "The URL of the deployed app",
       "Value" : "https://mycompany.myapp.com",
       "Export" : {
         "Name" : "My App"
       }
     }
   }
   ```

   Pour plus d'informations sur CloudFormation les sorties, voir [Sorties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html) dans le *guide de AWS CloudFormation l'utilisateur*.

1. Enregistrez et validez votre code.

1. Passez à [Pour vérifier que l'URL de l'application a été ajoutée](#deploy-app-url-verify).<a name="deploy-app-url-other"></a>

**Pour afficher l'URL de l'application dans toutes les autres actions**

Si vous utilisez une autre action pour déployer votre application, telle que l'action de création ou **GitHub les actions**, procédez comme suit pour afficher l'URL de l'application.

1. Définissez une variable d'environnement dans la `Steps` section `Inputs` ou de l'action du fichier de définition du flux de travail. La variable doit présenter les caractéristiques suivantes :
   + Ils `name` doivent contenir ou `appurl``endpointurl`, avec ou sans tiret (`-`), soulignement (`_`) ou espace (` `). La chaîne ne distingue pas les majuscules et minuscules.
   + La valeur doit être l'`https`URL `http` ou l'URL de votre application déployée.

   Par exemple, une action de génération peut ressembler à ceci :

   ```
   Build-action:
     Identifier: aws/build@v1
     Inputs:
       Variables:
         - Name: APP-URL
           Value: https://mycompany.myapp.com
   ```

   ... ou ceci :

   ```
   Actions:
     Build:
       Identifier: aws/build@v1
       Configuration:    
         Steps:
           - Run: APP-URL=https://mycompany.myapp.com
   ```

   Pour plus d'informations sur la définition des variables d'environnement, consultez[Définition d'une variable](workflows-working-with-variables-define-input.md).

1. Exportez la variable.

   Par exemple, votre action de création peut ressembler à ceci :

   ```
   Build-action:
     ...
     Outputs:
       Variables:
         - APP-URL
   ```

   Pour plus d'informations sur l'exportation de variables, consultez[Exporter une variable afin que d'autres actions puissent l'utiliser](workflows-working-with-variables-export-input.md).

1. (Facultatif) Choisissez **Valider** pour valider le code YAML du flux de travail avant de le valider.

1. Choisissez **Valider**, entrez un message de validation, puis choisissez à nouveau **Valider**.

1. Passez à [Pour vérifier que l'URL de l'application a été ajoutée](#deploy-app-url-verify).<a name="deploy-app-url-verify"></a>

**Pour vérifier que l'URL de l'application a été ajoutée**
+ Lancez l'exécution d'un flux de travail s'il n'a pas démarré automatiquement. Lors de la nouvelle exécution, l'URL de l'application doit être affichée sous forme de lien cliquable dans son diagramme de flux de travail. Pour plus d'informations sur le démarrage de courses, consultez[Démarrage manuel de l’exécution d’un flux de travail](workflows-manually-start.md). 

# Supprimer une cible de déploiement
<a name="deploy-remove-target"></a>

Vous pouvez supprimer une cible de déploiement telle qu'un cluster ou une CloudFormation pile Amazon ECS depuis la page **Cibles de déploiement** de la CodeCatalyst console.

**Important**  
Lorsque vous supprimez une cible de déploiement, elle est supprimée de la CodeCatalyst console, mais elle reste disponible dans le AWS service qui l'héberge (si elle existe toujours).

Envisagez de supprimer une cible de déploiement si celle-ci est devenue obsolète. CodeCatalyst Les cibles peuvent devenir périmées si :
+ Vous avez supprimé le flux de travail déployé sur la cible.
+ Vous avez modifié la pile ou le cluster sur lequel vous effectuez le déploiement. 
+ Vous avez supprimé la pile CloudFormation ou le cluster du service Amazon ECS dans la AWS console.

**Pour supprimer une cible de déploiement**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Environments.**

1. Choisissez le nom de l'environnement qui contient la cible de déploiement que vous souhaitez supprimer. Pour plus d'informations sur les environnements, consultez[Déploiement dans Comptes AWS et VPCs](deploy-environments.md).

1. Choisissez l'onglet **Cibles de déploiement**.

1. Cliquez sur le bouton radio situé à côté de la cible de déploiement que vous souhaitez supprimer.

1. Cliquez sur **Supprimer**.

   La cible est supprimée de la page.

# Suivi de l'état du déploiement par validation
<a name="track-changes"></a>

À tout moment du cycle de développement, il est important de connaître l'état de déploiement de validations spécifiques, telles que les corrections de bogues, les nouvelles fonctionnalités ou les autres modifications importantes. Envisagez les scénarios suivants dans lesquels la fonctionnalité de suivi de l'état du déploiement est utile aux équipes de développement :
+ En tant que développeur, vous avez corrigé un bogue et vous souhaitez signaler l'état de son déploiement dans les environnements de déploiement de votre équipe.
+ En tant que responsable de publication, vous souhaitez consulter la liste des validations déployées afin de suivre et de signaler l'état de leur déploiement.

CodeCatalyst fournit une vue que vous pouvez utiliser pour déterminer en un coup d'œil où les validations ou modifications individuelles ont été déployées et dans quel environnement. Cette vue inclut : 
+ Une liste de validations.
+ État des déploiements qui incluent les validations.
+ Les environnements dans lesquels les validations sont déployées avec succès.
+ État de tous les tests exécutés par rapport aux validations de votre CI/CD flux de travail.

La procédure suivante explique comment accéder à cette vue et comment l'utiliser pour suivre les modifications apportées à votre projet.

**Note**  
Le suivi de l'état du déploiement par validation n'est pris en charge qu'avec [CodeCatalyst les référentiels.](source.md) Vous ne pouvez pas utiliser cette fonctionnalité avec un [GitHub référentiel, un référentiel Bitbucket ou un référentiel de GitLab projet](extensions.md).

**Pour suivre l'état du déploiement par validation**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. Dans le volet de navigation, choisissez **CI/CD**, puis choisissez Suivi des **modifications**.

1. Dans les deux listes déroulantes situées en haut du volet principal, choisissez le référentiel source et la branche contenant les validations dont vous souhaitez consulter l'état de publication.

1. Choisissez **Afficher les modifications**.

   La liste des validations s'affiche.

   Pour chaque validation, vous pouvez consulter les informations suivantes :
   + Validez des informations telles que l'identifiant, l'auteur, le message et la date de validation. Pour de plus amples informations, veuillez consulter [Stockez du code et collaborez sur celui-ci avec des référentiels de sources dans CodeCatalystStockez du code et collaborez sur celui-ci avec des référentiels de sources](source.md).
   + État des déploiements dans chaque environnement. Pour de plus amples informations, veuillez consulter [Déploiement dans Comptes AWS et VPCs](deploy-environments.md).
   + Résultats des tests et de la couverture du code. Pour de plus amples informations, veuillez consulter [Tests avec des flux de travailTests avec des flux de travail](test-workflow-actions.md).
**Note**  
Les résultats de l'analyse de composition logicielle (SCA) ne sont pas affichés.

1. (Facultatif) Pour afficher plus d'informations sur les modifications liées à un commit spécifique, y compris le dernier déploiement, la couverture détaillée du code et les informations relatives aux tests unitaires, choisissez **Afficher les détails** de ce commit.

# Afficher les journaux de déploiement
<a name="deploy-deployment-logs"></a>

Vous pouvez consulter les journaux relatifs à des actions de déploiement spécifiques pour résoudre des problèmes sur Amazon CodeCatalyst.

Vous pouvez consulter les journaux à partir d'un [flux](workflow.md) de travail ou d'un [environnement](deploy-environments.md).

**Pour consulter les journaux d'une action de déploiement à partir d'un flux de travail**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Choisissez **Runs**.

1. Choisissez l'exécution du flux de travail qui a déployé votre application.

1. Dans le diagramme du flux de travail, choisissez l'action dont vous souhaitez consulter les journaux.

1. Choisissez l'onglet **Journaux** et développez les sections pour afficher les messages du journal.

1. Pour afficher d'autres journaux, choisissez l'onglet **Résumé**, puis choisissez **Afficher dans CloudFormation** (s'il est disponible) pour y afficher d'autres journaux. Vous devrez peut-être vous connecter à AWS.

**Pour consulter les journaux d'une action de déploiement à partir d'un environnement**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Environments.**

1. Choisissez l'environnement dans lequel votre application a été déployée.

1. Dans **Activité de déploiement**, recherchez la colonne **ID d'exécution du flux** de travail et choisissez l'exécution du flux de travail qui a déployé votre stack.

1. Dans le diagramme du flux de travail, choisissez l'action dont vous souhaitez consulter les journaux.

1. Choisissez l'onglet **Journaux** et développez les sections pour afficher les messages du journal.

1. Pour afficher d'autres journaux, choisissez l'onglet **Résumé**, puis choisissez **Afficher dans CloudFormation** (s'il est disponible) pour y afficher d'autres journaux. Vous devrez peut-être vous connecter à AWS.

# Affichage des informations de déploiement
<a name="deploy-view-deployment-info"></a>

Vous pouvez consulter les informations suivantes concernant un déploiement sur Amazon CodeCatalyst :
+ Activité de déploiement, y compris l'état du déploiement, l'heure de début, l'heure de fin, l'historique et la durée des événements.
+ Nom de la pile Région AWS, heure de la dernière mise à jour et flux de travail associés.
+ Validations et pull requests.
+ Informations spécifiques à l'action, par exemple les CloudFormation événements et les résultats.

Vous pouvez consulter les informations de déploiement à partir d'un [flux de travail](workflow.md), d'un [environnement](deploy-environments.md) ou d'une [action](workflows-concepts.md#workflows-concepts-actions) de flux de travail.

**Pour afficher les informations de déploiement à partir d'un flux de travail**
+ Accédez au flux de travail qui a déployé votre application. Pour obtenir des instructions, veuillez consulter [Afficher le statut et les détails de l'exécution du flux de travail](workflows-view-run.md). 

**Pour afficher les informations de déploiement à partir d'un environnement**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Environments.**

1. Choisissez l'environnement dans lequel votre stack a été déployé, par exemple,`Production`.

1. Choisissez **Activité de déploiement** pour afficher l'historique des déploiements de vos piles, l'état des déploiements (par exemple, SUCCÈS ou ****ÉCHEC****) et d'autres informations relatives au déploiement.

1. Choisissez la **cible de déploiement** pour afficher les informations relatives aux piles, aux clusters ou aux autres cibles déployées dans l'environnement. Vous pouvez consulter des informations telles que le nom de la pile, la région, le fournisseur et l'identifiant.

**Pour afficher les informations de déploiement à partir d'une action**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Choisissez votre projet.

1. **Dans le volet de navigation, choisissez **CI/CD**, puis Workflows.**

1. Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom ou statut du flux de travail.

1. Dans le diagramme de flux de travail, choisissez l'action de flux de travail qui a déployé votre application. Par exemple, vous pouvez choisir **DeployCloudFormationStack**.

1. Consultez le contenu du volet droit pour obtenir des informations de déploiement spécifiques à l'action. 