

# Travailler avec des applications sans serveur AWS en utilisant AWS Toolkit for JetBrains
<a name="sam"></a>

Les rubriques suivantes décrivent comment utiliser le AWS Toolkit for JetBrains pour travailler avec des applications sans serveur AWS dans un compte AWS.

**Topics**
+ [Création d'une application](deploy-serverless-app.md)
+ [Synchronisation d'une application](sam-sync.md)
+ [Modification (mise à jour) des paramètres d'application](sam-update.md)
+ [Suppression d'une application](sam-delete.md)

# Création d'une application sans serveur AWS à l'aide d'AWS Toolkit for JetBrains
<a name="deploy-serverless-app"></a>

Pour terminer cette procédure, vous devez d'abord installer AWS Toolkit et, si vous ne l'avez pas encore fait, vous connecter à un compte AWS pour la première fois. Ensuite, avec IntelliJ IDEA, PyCharm, WebStorm, ou JetBrains Rider déjà en cours d'exécution, faites ce qui suit.

1. Avec IntelliJ IDEA, PyCharm, WebStorm ou JetBrains Rider déjà en cours d'exécution, effectuez l'une des opérations suivantes :
   + Pour IntelliJ IDEA ou WebStorm, choisissez **Fichier**, **Nouveau**, **Projet**.
   + Pour PyCharm, choisissez **Fichier**, **Nouveau projet**.
   + Pour JetBrains Rider, choisissez **Fichier**, **Nouveau** pour une nouvelle solution. Ou cliquez avec le bouton droit sur une solution existante dans la fenêtre de l'outil de l'**explorateur**, puis choisissez **Ajouter**, **Nouveau projet**.

1. Pour IntelliJ IDEA, choisissez **AWS**, **Application sans serveur AWS**, puis choisissez **Suivant**.  
![\[Choisir de créer une application sans serveur AWS dans IntelliJ IDEA\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-jetbrains/latest/userguide/images/sam-create-intellij.png)

   Pour PyCharm, choisissez **Application sans serveur AWS**.  
![\[Choisir de créer une application sans serveur AWS dans PyCharm\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-jetbrains/latest/userguide/images/sam-create-pycharm.png)

   Pour WebStorm, choisissez **Application sans serveur AWS**.  
![\[Choisir de créer une application sans serveur AWS dans WebStorm\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-jetbrains/latest/userguide/images/sam-create-webstorm.png)

   Pour JetBrains Rider, choisissez **Application sans serveur AWS**.  
![\[Choisir de créer une application sans serveur AWS dans JetBrains Rider\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-jetbrains/latest/userguide/images/sam-create-rider.png)

1. Remplissez la boîte de dialogue [Nouveau projet (ou la boîte de dialogue Nouvelle solution pour JetBrains Rider)](new-project-dialog.md), puis choisissez **Terminer** (pour IntelliJ IDEA) ou **Créer** (pour PyCharm, WebStorm ou JetBrains Rider). Le AWS Toolkit for JetBrains crée le projet et ajoute les fichiers de code de l'application sans serveur au nouveau projet.

1. Si vous utilisez IntelliJ IDEA, alors que la fenêtre de l'outil **Projet** est déjà ouverte et affiche le projet qui contient les fichiers de l'application sans serveur, effectuez l'une des opérations suivantes :
   + Pour les projets basés sur Maven, cliquez avec le bouton droit sur le fichier `pom.xml` du projet, puis choisissez **Ajouter comme projet Maven**.  
![\[Choisir d'ajouter le fichier POM en tant que projet Maven\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-jetbrains/latest/userguide/images/add-as-maven-project.png)
   + Pour les projets Gradle, cliquez avec le bouton droit sur le fichier `build.gradle` du projet, puis choisissez **Importer le projet Gradle**.  
![\[Choisir d'importer le projet Gradle\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-jetbrains/latest/userguide/images/import-gradle-project.png)

     Remplissez la boîte de dialogue **Importer le module à partir de Gradle** puis choisissez **OK**.

Après avoir créé l'application sans serveur, vous pouvez exécuter (invoquer) ou déboguer la version locale d'une fonction AWS Lambda contenue dans cette application.

Vous pouvez également déployer l'application sans serveur. Après le déploiement, vous pouvez (invoquer) la version à distance d'une fonction Lambda faisant partie de cette application déployée.

# Synchronisation des applications AWS SAM à partir d'AWS Toolkit for JetBrains
<a name="sam-sync"></a>

AWS Serverless Application Model (AWS SAM) `sam sync` est un processus de déploiement AWS SAM-CLI-commande qui identifie automatiquement les modifications apportées à vos applications sans serveur, puis choisit la meilleure façon de créer et de déployer ces modifications dans AWS Cloud. Si vous avez uniquement apporté des modifications au code de votre application sans changer l'infrastructure, AWS SAM Sync met à jour votre application sans redéployer votre pile CloudFormation.

Pour plus d'informations sur les commandes CLI `sam sync` et AWS SAM, consultez la rubrique [Référence des commandes CLI AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html) dans le *Guide de l'utilisateur AWS Serverless Application Model*.

Les sections suivantes décrivent comment commencer à travailler avec AWS SAM Sync.

## Prérequis
<a name="w7aac13c40c11b9"></a>

Avant de travailler avec AWS SAM Sync, les conditions suivantes doivent être remplies :
+ Vous disposez d'une application AWS SAM opérationnelle. Pour plus d'informations sur la création d'une application AWS SAM, consultez la rubrique [Travailler avec AWS SAM](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-sam-create) de ce guide de l'utilisateur.
+ Vous avez installé la version 1.78.0. (ou ultérieure) de la CLI AWS SAM. Pour plus d'informations sur l'installation de la CLI AWS SAM, consultez la rubrique [Installation de la CLI AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) dans le *Guide de l'utilisateur AWS Serverless Application Model*.
+ Votre application s'exécute dans un environnement de développement.

**Note**  
Pour synchroniser et déployer une application sans serveur qui contient une fonction AWS Lambda avec des propriétés autres que celles par défaut, les propriétés facultatives doivent être définies dans le fichier de modèle AWS SAM associé à la fonction AWS Lambda, avant le déploiement.  
Pour en savoir plus sur les propriétés AWS Lambda, consultez la section [AWS::Serverless::Function](https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction) du *Guide de l'utilisateur AWS Serverless Application Model* sur GitHub.

## Démarrer
<a name="w7aac13c40c11c11"></a>

Pour commencer à travailler avec AWS SAM Sync, suivez la procédure suivante.

**Note**  
Assurez-vous que votre région AWS est définie sur l'emplacement associé à votre application sans serveur.  
Pour en savoir plus sur la modification de votre région AWS à partir d'AWS Toolkit for JetBrains, consultez la rubrique [Basculer entre les régions AWS](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-switch-region) dans ce guide de l'utilisateur.

1. Depuis votre projet d'application sans serveur dans la fenêtre de l'outil **Projet**, ouvrez le menu contextuel (clic droit) de votre fichier `template.yaml`.

1. Dans le menu contextuel `template.yaml`, choisissez **Synchroniser l'application sans serveur (anciennement Déployer)** pour ouvrir la boîte de dialogue **Confirmer la pile de développement**.

1. Confirmez que vous travaillez à partir d'une pile de développement pour ouvrir la boîte de dialogue **Synchroniser l'application sans serveur**.  
![\[Boîte de dialogue Confirmer la pile de développement\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-jetbrains/latest/userguide/images/sam-sync-dev-stack.png)

1. Effectuez les étapes de la boîte de dialogue **Synchroniser l'application sans serveur**, puis sélectionnez **Sync** pour lancer le processus AWS SAM Sync. Pour en savoir plus sur la boîte de dialogue **Synchroniser l'application sans serveur**, reportez-vous à la section [Boîte de dialogue Synchroniser l'application sans serveur](#sam-sync-serverless-app-dialog) ci-dessous.

1. Pendant le processus de synchronisation, la **fenêtre Exécuter** d'AWS Toolkit for JetBrains est mise à jour avec l'état du déploiement.

1. Après une synchronisation réussie, le nom de votre pile CloudFormation est ajouté à **AWS Explorer**. 

   Si la synchronisation échoue, vous trouverez des détails de dépannage dans la **fenêtre Exécuter** de JetBrains ou dans les **journaux d'événements** CloudFormation. Pour en savoir plus sur l'affichage des journaux d'événements CloudFormation, consultez la rubrique [Affichage des journaux d'événements pour une pile](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-cloudformation-logs) dans ce guide de l'utilisateur.

## Boîte de dialogue Synchroniser l'application sans serveur
<a name="sam-sync-serverless-app-dialog"></a>

La boîte de dialogue **Synchroniser l'application sans serveur** vous assiste dans le processus AWS SAM Sync. Les sections suivantes décrivent et détaillent chacun des différents composants de la boîte de dialogue.

### Créer une pile ou mettre à jour une pile
<a name="w7aac13c40c11c13b5"></a>

**Obligatoire** : pour créer une nouvelle pile de déploiement, saisissez un nom dans le champ fourni pour créer et définir la pile CloudFormation pour le déploiement de votre application sans serveur. 

Vous pouvez également déployer sur une pile CloudFormation existante, en sélectionnant le nom de la pile dans la liste des piles associées à votre compte AWS, qui se remplit automatiquement.

### Paramètres du modèle
<a name="w7aac13c40c11c13b7"></a>

**Facultatif** : remplit une liste de paramètres détectés à partir du fichier `template.yaml` de votre projet. Pour spécifier les valeurs des paramètres, entrez une nouvelle valeur de paramètre dans le champ de texte fourni situé dans la colonne de **valeur**.

### S3 Bucket
<a name="w7aac13c40c11c13b9"></a>

**Obligatoire** : pour choisir un compartiment Amazon Simple Storage Service (Amazon S3) existant pour le stockage de votre modèle CloudFormation, sélectionnez-le dans la liste.

Pour créer et utiliser un nouveau compartiment Amazon S3 pour le stockage, sélectionnez **Créer** et suivez les invites.

### Référentiel ECR
<a name="w7aac13c40c11c13c11"></a>

**Obligatoire, uniquement visible lorsque vous travaillez avec un type de package Image** : choisissez un URI de référentiel Amazon Elastic Container Registry (Amazon ECR) existant pour le déploiement de votre application sans serveur.

Pour plus d'informations sur les types de packages Lambda AWS, consultez la section sur les [packages de déploiement Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) dans le *Guide du développeur AWS Lambda*.

### Capacités de CloudFormation
<a name="w7aac13c40c11c13c13"></a>

**Obligatoire** : choisissez les capacités qu'CloudFormation est autorisé à utiliser lors de la création de piles.

### Étiquettes
<a name="w7aac13c40c11c13c15"></a>

**Facultatif** : saisissez vos balises préférées dans les champs de texte fournis pour baliser un paramètre.

### Créer la fonction à l'intérieur d'un conteneur
<a name="w7aac13c40c11c13c17"></a>

**Facultatif, obligatoire pour Docker** : en sélectionnant cette option, vous créez vos fonctions d'application sans serveur dans un conteneur Docker local, avant de les déployer. Cette option est utile si une fonction dépend de packages avec des dépendances ou des programmes compilés nativement.

Pour plus d'informations, consultez la rubrique [Génération d'applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html) dans le *Guide du développeur AWS Serverless Application Model*.

# Modification (mise à jour) des paramètres d'application sans serveur AWS à l'aide d'AWS Toolkit for JetBrains
<a name="sam-update"></a>

Vous devez d'abord déployer l'application sans serveur AWS que vous voulez modifier, si vous ne l'avez pas déjà déployée.
**Note**  
Pour déployer une application sans serveur qui contient une fonction AWS Lambda et déployer cette fonction avec des propriétés autres que celles par défaut ou facultatives, vous devez d'abord définir ces propriétés dans le fichier modèle AWS SAM correspondant à la fonction (par exemple, dans un fichier nommé `template.yaml` dans le projet). Pour obtenir la liste des propriétés disponibles, veuillez consulter [AWS::Serverless::Function](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction) dans le référentiel [awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model/) sur GitHub.

1. La fenêtre de l'outil **Projet** étant déjà ouverte et affichant le projet contenant les fichiers de l'application sans serveur, ouvrez le fichier `template.yaml` du projet. Modifiez le contenu du fichier pour refléter les nouveaux paramètres, puis enregistrez et fermez le fichier.

1. Si vous devez basculer vers une autre région AWS pour déployer l'application sans serveur, faites-le maintenant.

1. Cliquez avec le bouton droit sur le fichier `template.yaml` du projet, puis choisissez **Déployer l'application sans serveur**.  
![\[Choix de la commande Déployer l'application sans serveur\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-jetbrains/latest/userguide/images/deploy-serverless-application.png)

1. Renseignez la boîte de dialogue [Déployer l'application sans serveur](deploy-serverless-application-dialog.md), puis choisissez **Déployer**. Le AWS Toolkit for JetBrains met à jour la pile AWS CloudFormation correspondante pour le déploiement. 

   Si le déploiement échoue, vous pouvez essayer d'en déterminer la raison en consultant les journaux d'événements de la pile.

# Suppression d'une application sans serveur AWS à l'aide d'AWS Toolkit for JetBrains
<a name="sam-delete"></a>

Avant de supprimer une application AWS sans serveur, vous devez d'abord la déployer.

1. Ouvrez AWS Explorer, s'il n'est pas déjà ouvert. Si vous devez basculer vers une autre région AWS qui contient l'application sans serveur, faites-le maintenant.

1. Développez **CloudFormation**.

1. Cliquez avec le bouton droit sur le nom de la pile AWS CloudFormation qui contient l'application sans serveur à supprimer, puis choisissez **Supprimer la pile CloudFormation**.  
![\[Choisir de supprimer la pile AWS CloudFormation d'une application sans serveur AWS à partir d'AWS Explorer\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-jetbrains/latest/userguide/images/sam-delete.png)

1. Entrez le nom de la pile pour confirmer la suppression, puis choisissez **OK**. Si la suppression de la pile réussit, la AWS Toolkit for JetBrains supprime le nom de la pile de la liste **CloudFormation** dans l'**explorateur AWS**. Si la suppression de la pile échoue, vous pouvez essayer d'en déterminer la raison en consultant les journaux d'événements de la pile.