

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