

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 vers AWS
<a name="deployment-chapt"></a>

Le Toolkit for Visual Studio prend en charge le déploiement d'applications sur AWS Elastic Beanstalk des conteneurs ou des CloudFormation piles.

**Note**  
Si vous utilisez Visual Studio Express Edition :  
Vous pouvez utiliser la [CLI Docker](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.use-ecr.html) pour déployer des applications sur des conteneurs Amazon ECS.
Vous pouvez utiliser la [console de AWS gestion](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deployment.newapp.html) pour déployer des applications dans des conteneurs Elastic Beanstalk.
Pour les déploiements d'Elastic Beanstalk, vous devez d'abord créer un package de déploiement Web. Pour plus d'informations, consultez [Comment : créer un Package de déploiement Web dans Visual Studio](http://msdn.microsoft.com/en-us/library/dd465323.aspx). Pour le déploiement d'Amazon ECS, vous devez disposer d'une image Docker. Pour en savoir plus, consultez [Outils Visual Studio pour Docker](http://docs.microsoft.com/en-us/aspnet/core/publishing/visual-studio-tools-for-docker).

**Topics**
+ [Publier sur AWS](publish-experience.md)
+ [AWS Lambda](lambda-cli-publish.md)
+ [Déploiement vers AWS Elastic Beanstalk](deployment-beanstalk.md)
+ [Déploiement sur Amazon EC2 Container Service](deployment-ecs.md)

# Utilisation de Publish to AWS dans Visual Studio
<a name="publish-experience"></a>

**Publish to AWS** est une expérience de déploiement interactive qui vous aide à publier vos applications .NET sur des cibles de AWS déploiement, en prenant en charge les applications ciblant .NET Core 3.1 et versions ultérieures. Utilisez Publish pour AWS maintenir votre flux de travail dans Visual Studio en rendant ces fonctionnalités de déploiement disponibles, directement depuis votre IDE :
+ La possibilité de déployer votre application en un seul clic.
+ Recommandations de déploiement basées sur votre application.
+ Création automatique de Dockerfile, selon ce qui est pertinent et requis par l'environnement de votre destination de déploiement (cible de déploiement).
+ Paramètres optimisés pour créer et empaqueter vos applications, conformément à votre objectif de déploiement.

**Note**  
Pour plus d'informations sur la publication d'applications .NET Framework, consultez le guide [Création et déploiement d'applications .NET sur Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.html)  
Vous pouvez également accéder à Publish to AWS depuis la CLI .NET. Pour plus d'informations, consultez le AWS guide [Déployer des applications .NET sur](https://aws.github.io/aws-dotnet-deploy/).

**Topics**
+ [Prérequis](#publish-experience-prerequisities)
+ [Types d'applications pris en charge](#publish-experience-apptypes)
+ [Publication d'applications vers AWS des cibles](#publish-experience-deployment)

## Prérequis
<a name="publish-experience-prerequisities"></a>

Pour publier correctement des applications .NET sur un AWS service, installez ce qui suit sur votre appareil local :
+ .NET Core 3.1\$1 (qui inclut. NET5 et. NET6) : Pour plus d'informations sur ces produits et des informations de téléchargement, visitez le [site de téléchargement de Microsoft](https://dotnet.microsoft.com/download). 
+ Node.js 14.x ou version ultérieure : Node.js est requis pour fonctionner AWS Cloud Development Kit (AWS CDK). Pour télécharger ou obtenir plus d'informations sur Node.js, visitez le [site de téléchargement de Node.js](https://nodejs.org/en/download/).
**Note**  
Publiez dans AWS des applications AWS CDK pour déployer votre application et l'ensemble de son infrastructure de déploiement dans le cadre d'un seul projet. Pour plus d'informations sur le Cloud Development Kit, AWS CDK consultez le guide [Cloud Development Kit](https://docs.aws.amazon.com/cdk/v1/guide/home.html).
+ (Facultatif) Docker est utilisé lors du déploiement vers un service basé sur des conteneurs tel qu'Amazon ECS. Pour plus d'informations et pour télécharger Docker, consultez le site de [téléchargement de Docker](https://docs.docker.com/get-docker/).

## Types d'applications pris en charge
<a name="publish-experience-apptypes"></a>

Avant de publier sur une cible nouvelle ou existante, commencez par créer ou ouvrir l'un des types de projets suivants dans Visual Studio :
+ Application ASP.NET Core
+ Application de console .NET
+ Application Blazor WebAssembly 

## Publication d'applications vers AWS des cibles
<a name="publish-experience-deployment"></a>

Lorsque vous publiez vers une nouvelle cible, Publish to AWS vous guide tout au long du processus en formulant des recommandations et en utilisant des paramètres courants. Si vous devez publier sur une cible précédemment configurée, vos préférences sont enregistrées et peuvent être ajustées, ou elles sont immédiatement disponibles pour un déploiement en un clic.

**Note**  
**Intégration des boîtes à outils avec le serveur .NET CLI :**  
La publication lance un processus de serveur .NET sur l'hôte local pour exécuter le processus de publication.

### Publier vers une nouvelle cible
<a name="publish-experience-deployment-newtarget"></a>

Ce qui suit décrit comment configurer vos préférences de publication selon AWS le déploiement, lorsque vous publiez sur une nouvelle cible.

1. Dans l'**AWS explorateur**, développez le menu déroulant **Identifiants**, puis choisissez le AWS profil correspondant à la région et AWS aux services requis pour votre déploiement.

1. Développez le menu déroulant **Région**, puis choisissez la AWS région qui contient les AWS services nécessaires à votre déploiement.

1. Dans le volet Visual Studio **Solutions Explorer**, ouvrez le menu contextuel (cliquez avec le bouton droit) pour le nom du projet, puis choisissez **Publier sur AWS**. Cela ouvrira **Publier sur AWS**.

1. Dans **Publier vers AWS**, choisissez **Publier vers une nouvelle cible** pour configurer un nouveau déploiement.
**Note**  
Pour modifier vos informations d'identification de déploiement par défaut, choisissez ou cliquez sur le lien **Modifier** situé à côté de la section **Informations d'identification**, dans **Publier sur AWS**.  
Pour contourner le processus de configuration cible, choisissez **Publier sur une cible existante**, puis choisissez votre configuration préférée dans la liste de vos cibles de déploiement précédentes.

1. Dans le volet **Publish Targets**, choisissez un AWS service pour gérer le déploiement de votre application. 

1. Lorsque vous êtes satisfait de votre configuration, choisissez **Publier** pour démarrer le processus de déploiement.
**Note**  
Après avoir lancé un déploiement, **Publish to AWS** affiche les mises à jour de statut suivantes :  
Au cours du processus de déploiement, **Publish to AWS** affiche des informations sur la progression du déploiement.
À l'issue du processus de déploiement, **Publier sur AWS** indique si le déploiement a réussi ou échoué.
Une fois le déploiement réussi, le panneau **Ressources** fournit des informations supplémentaires sur la ressource créée. Ces informations varient en fonction du type d'application et de la configuration de déploiement.

### Publier sur une cible existante
<a name="publish-experience-deployment-existingtarget"></a>

Ce qui suit décrit comment republier votre application .NET sur une AWS cible existante.

1. Dans l'**AWS explorateur**, développez le menu déroulant **Identifiants**, puis choisissez le AWS profil correspondant à la région et AWS aux services requis pour votre déploiement.

1. Développez le menu déroulant **Région**, puis choisissez la AWS région qui contient les AWS services nécessaires à votre déploiement.

1. Dans le volet Visual Studio **Solutions Explorer**, cliquez avec le bouton droit sur le nom du projet et choisissez **Publier AWS** pour ouvrir **Publier sur AWS**.

1. Dans **Publier vers AWS**, choisissez **Publier sur une cible existante** pour sélectionner votre environnement de déploiement dans une liste de cibles existantes.
**Note**  
Si vous avez récemment publié des applications dans le AWS cloud, celles-ci sont affichées dans Publier sur AWS.

1. Sélectionnez la cible de publication vers laquelle vous souhaitez déployer votre application, puis cliquez sur **Publier** pour démarrer le processus de déploiement.

# Déploiement d'un AWS Lambda projet avec la CLI .NET Core
<a name="lambda-cli-publish"></a>

 AWS Toolkit for Visual Studio Inclut des modèles de projet AWS Lambda .NET Core pour Visual Studio. Vous pouvez déployer des fonctions Lambda intégrées à Visual Studio à l'aide de l'interface de ligne de commande (CLI) .NET Core.

**Topics**
+ [Conditions préalables](#lambda-cli-prereqs)
+ [Rubriques en relation](#lambda-cli-related)
+ [Liste des commandes Lambda disponibles via la CLI .NET Core](#listing-the-lam-commands-available-through-the-cli)
+ [Publication d'un projet Lambda .NET Core à partir de la CLI .NET Core](#publishing-a-net-core-lam-project-from-the-net-core-cli)

## Conditions préalables
<a name="lambda-cli-prereqs"></a>

Avant d'utiliser la CLI .NET Core pour déployer des fonctions Lambda, vous devez remplir les conditions préalables suivantes :
+ Assurez-vous que Visual Studio 2015 Update 3 est installé.
+ Installez [.NET Core pour Windows](https://dotnet.microsoft.com/download#windowsvs2015).
+ Configurez la CLI .NET Core pour qu'elle fonctionne avec Lambda. Pour plus d'informations, consultez la section [.NET Core CLI](https://docs.aws.amazon.com//lambda/latest/dg/csharp-package-cli.html) dans le *manuel du AWS Lambda développeur*.
+ Installez le Toolkit for Visual Studio. Pour de plus amples informations, veuillez consulter [Installation du AWS Toolkit for Visual Studio](setup.md#install).

## Rubriques en relation
<a name="lambda-cli-related"></a>

Les rubriques connexes suivantes peuvent être utiles lorsque vous utilisez la CLI .NET Core pour déployer des fonctions Lambda :
+ Pour plus d'informations sur les fonctions Lambda, voir [Qu'est-ce que AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ? dans le *Guide AWS Lambda du développeur*.
+ Pour plus d'informations sur la création de fonctions Lambda dans Visual Studio, consultez. [AWS Lambda](lambda-index.md)
+ Pour plus d'informations sur Microsoft .NET Core, consultez [.NET Core](https://docs.microsoft.com/en-us/dotnet/articles/core/) dans la documentation en ligne de Microsoft.

## Liste des commandes Lambda disponibles via la CLI .NET Core
<a name="listing-the-lam-commands-available-through-the-cli"></a>

Pour répertorier les commandes Lambda disponibles via la CLI .NET Core, procédez comme suit.

1. Ouvrez une fenêtre d'invite de commande et accédez au dossier contenant un projet Visual Studio .NET Core Lambda.

1. Saisissez `dotnet lambda --help`.

```
C:\Lambda\AWSLambda1\AWSLambda1>dotnet lambda --help AWS Lambda Tools for .NET Core functions
    Project Home: https://github.com/aws/aws-lambda-dotnet
    .
    Commands to deploy and manage Lambda functions:
    .
            deploy-function         Deploy the project to Lambda
            invoke-function         Invoke the function in Lambda with an optional input
            list-functions          List all of your Lambda functions
            delete-function         Delete a Lambda function
            get-function-config     Get the current runtime configuration for a Lambda function
            update-function-config  Update the runtime configuration for a Lambda function
    .
    Commands to deploy and manage AWS serverless applications using AWS CloudFormation:
    .
            deploy-serverless       Deploy an AWS serverless application
            list-serverless         List all of your AWS serverless applications
            delete-serverless       Delete an AWS serverless application
    .
    Other Commands:
    .
            package                 Package a Lambda project into a .zip file ready for deployment
    .
    To get help on individual commands, run the following:

            dotnet lambda help <command>
```

## Publication d'un projet Lambda .NET Core à partir de la CLI .NET Core
<a name="publishing-a-net-core-lam-project-from-the-net-core-cli"></a>

Les instructions suivantes supposent que vous avez créé une fonction AWS Lambda .NET Core dans Visual Studio.

1. Ouvrez une fenêtre d'invite de commande et accédez au dossier contenant votre projet Visual Studio .NET Core Lambda.

1. Saisissez `dotnet lambda deploy-function`.

1. Lorsque vous y êtes invité, entrez le nom de la fonction à déployer. Il peut s'agit d'un nouveau nom ou de celui d'une fonction existante.

1. Lorsque vous y êtes invité, entrez la AWS région (la région dans laquelle votre fonction Lambda sera déployée).

1. Lorsque vous y êtes invité, sélectionnez ou créez le rôle IAM que Lambda assumera lors de l'exécution de la fonction.

En cas d'exécution réussie, le message **New Lambda function created (Nouvelle fonction Lambda créée)** s'affiche.

```
C:\Lambda\AWSLambda1\AWSLambda1>dotnet lambda deploy-function
Executing publish command
... invoking 'dotnet publish', working folder 'C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish'
... publish: Publishing AWSLambda1 for .NETCoreApp,Version=v1.0
... publish: Project AWSLambda1 (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing
... publish: Compiling AWSLambda1 for .NETCoreApp,Version=v1.0
... publish: Compilation succeeded.
... publish:     0 Warning(s)
... publish:     0 Error(s)
... publish: Time elapsed 00:00:01.2479713
... publish:
... publish: publish: Published to C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish
... publish: Published 1/1 projects successfully
Zipping publish folder C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish to C:\Lambda\AWSLambda1\AWSLamb
da1\bin\Release\netcoreapp1.0\AWSLambda1.zip
Enter Function Name: (AWS Lambda function name)
DotNetCoreLambdaTest
Enter AWS Region: (The region to connect to AWS services)
us-west-2
Creating new Lambda function
Select IAM Role that Lambda will assume when executing function:
    1) lambda_exec_LambdaCoreFunction
    2) *** Create new IAM Role ***
1
New Lambda function created
```

Si vous déployez une fonction existante, la fonction de déploiement demande uniquement la AWS région.

```
C:\Lambda\AWSLambda1\AWSLambda1>dotnet lambda deploy-function
Executing publish command
Deleted previous publish folder
... invoking 'dotnet publish', working folder 'C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish'
... publish: Publishing AWSLambda1 for .NETCoreApp,Version=v1.0
... publish: Project AWSLambda1 (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
... publish: publish: Published to C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish
... publish: Published 1/1 projects successfully
Zipping publish folder C:\Lambda\AWSLambda1\AWSLambda1\bin\Release\netcoreapp1.0\publish to C:\Lambda\AWSLambda1\AWSLamb
da1\bin\Release\netcoreapp1.0\AWSLambda1.zip
Enter Function Name: (AWS Lambda function name)
DotNetCoreLambdaTest
Enter AWS Region: (The region to connect to AWS services)
us-west-2
Updating code for existing function
```

Une fois votre fonction Lambda déployée, elle est prête à être utilisée. Pour plus d'informations, consultez [Exemples d'utilisation de AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/use-cases.html).

Lambda surveille automatiquement les fonctions Lambda pour vous, en fournissant des statistiques via Amazon. CloudWatch Pour surveiller et résoudre les problèmes liés à votre fonction Lambda, [consultez Résolution des problèmes et surveillance des fonctions AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html) avec Amazon. CloudWatch

# Déploiement AWS Elastic Beanstalk dans Visual Studio à l'aide de AWS Toolkit for Visual Studio avec Amazon Q
<a name="deployment-beanstalk"></a>

AWS Elastic Beanstalk est un service qui simplifie le processus de mise en service des AWS ressources pour votre application. Elastic Beanstalk fournit toute l'infrastructure requise pour AWS déployer votre application. Cette infrastructure comprend :
+ Instances Amazon EC2 hébergeant les exécutables et le contenu de votre application.
+ Un groupe Auto Scaling chargé de maintenir le nombre approprié d'instances Amazon EC2 pour prendre en charge votre application.
+ Un équilibreur de charge Elastic Load Balancing qui achemine le trafic entrant vers l'instance Amazon EC2 disposant du plus de bande passante.

Cette rubrique du guide de l'utilisateur explique comment utiliser l'assistant Elastic Beanstalk dans le Toolkit avec Amazon Q. Pour obtenir AWS des informations détaillées spécifiques à Elastic Beanstalk, consultez le manuel du développeur. [AWS Elastic Beanstalk](https://docs.aws.amazon.com//elasticbeanstalk/latest/dg/Welcome.html) L'assistant Elastic Beanstalk pour AWS le Toolkit avec Amazon Q est décrit dans les sections thématiques suivantes.

**Topics**
+ [Déployer une application ASP.NET (traditionnelle)](deployment-beanstalk-traditional.md)
+ [Déployer une application ASP.NET (.NET Core) (Legacy)](deployment-beanstalk-netcore.md)
+ [Spécifier les AWS identifiants](deployment-beanstalk-specify-credentials.md)
+ [Republier sur Elastic Beanstalk (Legacy)](deployment-beanstalk-republish.md)
+ [Déploiements personnalisés (traditionnels)](deployment-beanstalk-custom.md)
+ [Déploiements personnalisés (.NET Core)](deployment-beanstalk-custom-netcore.md)
+ [Prise en charge de plusieurs applications](deployment-beanstalk-multiple-application.md)

# Déploiement d'une application ASP.NET traditionnelle sur Elastic Beanstalk
<a name="deployment-beanstalk-traditional"></a>

Cette section décrit comment utiliser l'assistant de **publication sur Elastic Beanstalk**, fourni dans le cadre du Toolkit for Visual Studio, pour déployer une application via Elastic Beanstalk. Pour vous exercer, vous pouvez utiliser le projet de démarrage de l'instance d'une application web intégré à Visual Studio ou votre propre projet.

**Note**  
L'assistant prend également en charge le déploiement des applications ASP.NET Core. Pour plus d'informations sur ASP.NET Core, consultez le guide de l'[outil de déploiement AWS .NET](https://aws.github.io/aws-dotnet-deploy/) et la mise à jour de la AWS table des matières [Deploying to](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-chapt.html).

**Note**  
Avant de pouvoir utiliser l'assistant **Publish to Elastic Beanstalk (Publier dans Elastic Beanstalk)**, vous devez télécharger et installer [Web Deploy](http://www.microsoft.com/en-us/download/details.aspx?id=39277). L'assistant s'appuie sur Web Deploy pour déployer des applications et des sites web sur des serveurs web IIS (Internet Information Services).

## Pour créer un exemple de projet de démarrage d'une application web
<a name="to-create-a-sample-web-application-starter-project"></a>

1. Dans Visual Studio, dans le menu **Fichier**, choisissez **Nouveau**, puis choisissez **Projet**.

1. Dans le panneau de navigation de la boîte de dialogue **New Project (Nouveau projet)**, développez **Installations**, développez **Modèles**, développez **Visual C\$1**, puis choisissez **Web**.

1. Dans la liste des modèles de projet web, choisissez-en un contenant les mots `Web` et `Application` dans sa description. Pour cet exemple, choisissez **ASP.NET Web Forms Application (Application de formulaires web ASP.NET)**.  
![\[New Project window showing ASP.NET web application templates for Visual C# in .NET Framework 4.5.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-new-web-project-console.png)

1. Dans la case **Nom**, tapez `AEBWebAppDemo`.

1. Dans la zone **Emplacement**, saisissez le chemin vers un dossier de solution sur votre machine de développement ou choisissez **Parcourir**, puis naviguez jusqu'à un dossier de solution, choisissez-le, et choisissez **Select Folder (Sélectionner un dossier)**.

1. Vérifiez que la case **Create directory for solution (Créer un répertoire pour la solution)** est cochée. Dans la liste déroulante **Solution**, vérifiez que la case **Create new solution (Créer une nouvelle solution)** est cochée, et choisissez **OK**. Visual Studio crée une solution et un projet basés sur le modèle de projet ASP.NET Web Forms Application. Ensuite, Visual Studio affiche l'Explorateur de solutions dans lequel apparaissent la nouvelle solution et le nouveau projet.  
![\[Solution Explorer window showing project structure with folders and files for a web application.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-web-app-solution-explorer-console.png)

## Pour déployer une application à l'aide de l'assistant Publish to Elastic Beanstalk (Publier dans Elastic Beanstalk)
<a name="to-deploy-an-application-by-using-the-publish-to-elastic-beanstalk-wizard"></a>

1. Dans l'Explorateur de solutions, ouvrez le menu contextuel (clic droit) du dossier de **AEBWebAppDemo**projet du projet que vous avez créé dans la section précédente, ou ouvrez le menu contextuel du dossier de projet pour votre propre application, puis choisissez **Publish to AWS Elastic Beanstalk**.  
![\[Solution Explorer context menu showing "Publish to AWS..." option for AEBWebAppDemo project.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-publish-to-aws-console.png)

   L'assistant **Publish to Elastic Beanstalk (Publier dans Elastic Beanstalk)** s'ouvre.  
![\[Publish to AWS Elastic Beanstalk wizard interface for creating or redeploying an application environment.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-aeb-wizard-app-console.png)

1. Dans **Profil**, dans la liste déroulante **Profil de compte à utiliser pour le déploiement**, choisissez le profil de AWS compte que vous souhaitez utiliser pour le déploiement.

   Facultativement, si vous avez un AWS compte que vous souhaitez utiliser, mais que vous n'avez pas encore créé de profil de AWS compte pour celui-ci, vous pouvez cliquer sur le bouton avec le symbole plus (`+`) pour ajouter un profil de AWS compte.

1. Dans la liste déroulante **Région**, choisissez la région dans laquelle vous souhaitez qu'Elastic Beanstalk déploie l'application.

1. Dans **Cible de déploiement**, vous pouvez choisir **Create a new application environment (Créer un nouvel environnement d’application)** pour procéder au déploiement initial d'une application ou **Redeploy to an existing environment (Redéployer vers un environnement existant)** pour redéployer une application précédemment déployée. (Les déploiements précédents ont peut-être été effectués à l'aide de l'assistant ou de l'outil de déploiement autonome obsolète.) Si vous choisissez **Redeploy to an existing environment (Redéployer vers un environnement existant)**, il vous faudra sans doute patienter le temps que l'assistant récupère les informations des déploiements précédents actuellement en cours d'exécution.
**Note**  
Si vous choisissez **Redeploy to an existing environment (Redéployer vers un environnement existant)**, choisissez un environnement dans la liste, puis choisissez **Suivant**, l'assistant vous amène directement à la page **Application Options (Options de l'application)**. Si vous choisissez cette option, ignorez les instructions fournies ultérieurement dans cette section qui décrivent comment utiliser la page **Application Options (Options de l'application)**.

1. Choisissez **Suivant**.  
![\[Application Environment setup page for AWS with fields for name, environment, and URL.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-aeb-wizard-env-console.png)

1. Sur la page **Application Environment (Environnement de l’application)**, dans la zone **Application**, la liste déroulante **Nom** propose un nom par défaut pour l'application. Vous pouvez le modifier en en choisissant un différent de celui de la liste déroulante.

1. Dans la zone **Environnement**, dans la liste déroulante **Nom**, saisissez le nom de votre environnement Elastic Beanstalk. Dans ce contexte, le terme *environnement* fait référence à l'infrastructure mise en place par Elastic Beanstalk pour votre application. Un nom par défaut peut-être déjà proposé dans cette liste déroulante. Si un nom par défaut n'est pas déjà proposé, vous pouvez en saisir un ou en choisir un dans la liste déroulante, si des noms supplémentaires sont disponibles. Le nom de l'environnement ne peut pas dépasser 23 caractères.

1. Dans la zone **URL**, le champ propose un sous-domaine par défaut `.elasticbeanstalk.com` qui correspond à l'URL de votre application web. Vous pouvez modifier le sous-domaine par défaut en en saisissant un nouveau.

1. Choisissez **Vérifier la disponibilité** pour vous assurer que l'URL de votre application web n'est pas déjà utilisée.

1. Si vous pouvez l'utiliser, choisissez **Suivant**.

![\[AWS EC2 launch configuration settings for deploying an application to Amazon Web Services.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-aeb-wizard-ec2-console.png)


1. Sur la page **AWS Options**, dans **Configuration du lancement d'Amazon EC2**, dans la liste déroulante des types de **conteneurs, choisissez un type** d'image machine Amazon (AMI) qui sera utilisé pour votre application.

1. Dans la liste déroulante **Type d'instance**, spécifiez le type d'instance Amazon EC2 à utiliser. Pour cet exemple, nous vous conseillons d'utiliser **Micro**. Cela permettra de minimiser les coûts associés à l'exécution de l'instance. Pour plus d'informations sur les coûts d'Amazon EC2, rendez-vous sur la page de tarification d'Amazon [EC2.](https://aws.amazon.com/ec2/pricing/)

1. Dans la liste déroulante des **paires de clés**, choisissez une paire de clés d'instance Amazon EC2 à utiliser pour vous connecter aux instances qui seront utilisées pour votre application.

1. Dans le champ **Use custom AMI (Utiliser une AMI personnalisée)**, vous pouvez éventuellement spécifier une AMI personnalisée qui remplacera celle indiquée dans la liste déroulante **Container type (Type de conteneur)**. Pour plus d'informations sur la création d'une AMI personnalisée, consultez la section [Using Custom AMIs](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.customami.html) du manuel [AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/) Developer Guide [et la section Création d'une AMI à partir d'une instance Amazon EC2](tkv-create-ami-from-instance.md).

1. Si vous souhaitez éventuellement lancer vos instances dans un VPC, cochez la case **Use a VPC (Utiliser un VPC)**.

1. Facultativement, si vous souhaitez lancer une seule instance Amazon EC2 puis y déployer votre application, cochez la case **Environnement d'instance unique**.

   Si vous cochez cette case, Elastic Beanstalk créera tout de même un groupe Auto Scaling, mais ne le configurera pas. Si vous souhaitez configurer le groupe Auto Scaling ultérieurement, vous pouvez utiliser le AWS Management Console.

1. Si vous souhaitez éventuellement contrôler les conditions de déploiement de votre application sur les instances, cochez la case **Enable Rolling Deployments (Autoriser la propagation des déploiements)**. Vous pouvez cochez cette case uniquement si vous n'avez pas coché la case **Single instance environment (Environnement à instance unique)**.

1. Si votre application utilise des AWS services tels qu'Amazon S3 et DynamoDB, le meilleur moyen de fournir des informations d'identification est d'utiliser un rôle IAM. Dans la zone **Autorisations des applications déployées**, vous pouvez choisir un rôle IAM existant ou en créer un que l'assistant utilisera pour lancer votre environnement. Les applications utilisant le AWS SDK pour .NET utiliseront automatiquement les informations d'identification fournies par ce rôle IAM lorsqu'elles soumettront une demande à un AWS service.

1. Si votre application accède à une base de données Amazon RDS, dans la liste déroulante de la zone **Accès à la base de données relationnelle**, cochez les cases à côté des groupes de sécurité Amazon RDS que l'assistant mettra à jour afin que vos instances Amazon EC2 puissent accéder à cette base de données.

1. Choisissez **Suivant**.
   + Si vous avez coché la case **Use a VPC (Utiliser un VPC)**, la page **VPC Options (Options du VPC)** apparaît.
   + Si vous avez coché la case **Enable Rolling Deployments (Autoriser la propagation des déploiements)**, mais pas la case **Use a VPC (Utiliser un VPC)**, la page **Rolling Deployments (Propagation des déploiements)** apparaît. Ignorez les instructions fournies ultérieurement dans cette section qui décrivent comment utiliser la page **Rolling Deployments (Propagation des déploiements)**.
   + Si vous n'avez pas coché la case **Use a VPC (Utiliser un VPC)** ou **Enable Rolling Deployments (Autoriser la propagation des déploiements)**, la page **Application Options (Options de l’application)** apparaît. Ignorez les instructions fournies ultérieurement dans cette section qui décrivent comment utiliser la page **Application Options (Options de l'application)**.

1. Si vous avez coché la case **Use a VPC (Utiliser un VPC)**, spécifiez les informations sur la page **VPC Options (Options du VPC)** pour lancer votre application dans un VPC.  
![\[VPC Options interface for configuring AWS Elastic Beanstalk application deployment settings.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-aeb-wizard-vpc-console.png)

   Le VPC doit déjà avoir été créé. Si vous avez créé le VPC dans le Toolkit for Visual Studio, le Toolkit for Visual Studio remplira cette page pour vous. Si vous avez créé le VPC dans la [console de AWS gestion](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo-vpc-basic.html), saisissez les informations relatives à votre VPC sur cette page.

## Principaux éléments à prendre en compte pour le déploiement sur un VPC
<a name="key-considerations-for-deployment-to-a-vpc"></a>
+ Votre VPC a besoin d'au moins un sous-réseau public et un sous-réseau privé.
+ Dans la liste déroulante *ELB Subnet (Sous-réseau ELB)*, spécifiez le sous-réseau public. Le Toolkit for Visual Studio déploie l'équilibreur de charge Elastic Load Balancing pour votre application sur le sous-réseau public. Le sous-réseau public est associé à une table de routage possédant une entrée qui pointe vers une passerelle Internet. Vous pouvez identifier une passerelle Internet car son ID commence par `igw-` (par exemple, `igw-83cddaex`). Les sous-réseaux publics que vous créez à l'aide du Toolkit for Visual Studio possèdent des valeurs de balise qui les identifient comme publics.
+ Dans la liste déroulante *Instances Subnet (Sous-réseau d’instances)*, spécifiez le sous-réseau privé. Le Toolkit for Visual Studio déploie les instances Amazon EC2 de votre application sur le sous-réseau privé.
+ Les instances Amazon EC2 de votre application communiquent depuis le sous-réseau privé vers Internet via une instance Amazon EC2 du sous-réseau public qui effectue la traduction d'adresses réseau (NAT). Pour activer cette communication, vous avez besoin d'un [groupe de sécurité VPC](https://console.aws.amazon.com/vpc/home) qui autorise le trafic à circuler du sous-réseau privé vers l'instance NAT. Spécifiez ce groupe de sécurité VPC dans la liste déroulante *Groupe de sécurité*.

Pour plus d'informations sur le déploiement d'une application Elastic Beanstalk sur un VPC, consultez le manuel Elastic Beanstalk [AWS Developer](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/) Guide.

1. Une fois que vous avez rempli toutes les informations sur la page **VPC Options (Options du VPC)**, choisissez **Suivant**.
   + Si vous avez coché la case **Enable Rolling Deployments (Autoriser la propagation des déploiements)**, la page **Rolling Deployments (Propagation des déploiements)** apparaît.
   + Si vous n'avez pas coché la case **Enable Rolling Deployments (Autoriser la propagation des déploiements)**, la page **Application Options (Options de l’application)** apparaît. Ignorez les instructions fournies ultérieurement dans cette section qui décrivent comment utiliser la page **Application Options (Options de l'application)**.

1. Si vous avez coché la case **Enable Rolling Deployments (Autoriser la propagation des déploiements)**, vous spécifiez les informations sur la page **Rolling Deployments (Propagation des déploiements)** pour configurer le déploiement des nouvelles versions de vos applications sur les instances d'un environnement à charge équilibrée. Par exemple, si vous disposez de quatre instances dans votre environnement et que vous souhaitez modifier le type d'instance, vous pouvez configurer l'environnement pour modifier deux instances à la fois. Ceci permet de veiller à ce que votre application soit toujours en cours d'exécution pendant que vous y apportez des modifications.  
![\[Rolling Deployments configuration interface for AWS application updates and environment settings.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-aeb-wizard-rolling-console.png)

1. Dans la zone *Versions de l'application*, choisissez une option pour contrôler les déploiements sur un pourcentage ou un nombre d'instances à la fois. Spécifiez le pourcentage ou le nombre souhaité.

1. (Facultatif) Dans la zone *Configuration de l'environnement*, cochez la case si vous souhaitez éventuellement spécifier le nombre d'instances qui restent en service pendant les déploiements. Si vous cochez cette case, spécifiez le nombre maximum d'instances qui doivent être modifiées à la fois, le nombre minimum d'instances qui doivent rester en service à la fois, ou les deux.

1. Choisissez *Suivant*.

1. Sur la page **Application Options (Options de l'application)**, vous spécifiez les informations sur les paramètres de génération, d'Internet Information Services (IIS) et d'application.  
![\[Application Options interface for configuring build and deployment settings for AWS.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-aeb-wizard-options-console.png)

1. Dans la zone **Build and IIS Deployment Settings (Paramètres de déploiement build et IIS)**, dans la liste déroulante **Project build configuration (Configuration de la génération de projet)**, choisissez la configuration de la génération cible. Si l'assistant peut la trouver, **Publier** apparaît, sinon la configuration active s'affiche dans cette zone.

1. Dans la liste déroulante **App pool (Groupe d’applications)**, choisissez la version .NET Framework requise pour votre application. La version .NET Framework correcte doit déjà être affichée.

1. Si votre application est en 32 bits, cochez la case **Activer les applications 32 bits**.

1. Dans le champ **App path (Chemin d’application)**, spécifiez le chemin que les IIS utiliseront pour déployer l'application. Par défaut, **Default Web Site/(Site Internet par défaut/)** est spécifié, ce qui se traduit généralement par le chemin `c:\inetpub\wwwroot`. Si vous spécifiez un chemin différent de **Default Web Site/(Site Internet par défaut/)**, l'assistant place une redirection dans le chemin **Default Web Site/(Site Internet par défaut/)** qui pointe vers le chemin que vous avez spécifié.

1. Dans la zone **Paramètres de l'application**, dans la zone **URL de vérification de l'état de santé**, tapez une URL à vérifier par Elastic Beanstalk afin de déterminer si votre application Web est toujours réactive. Cette URL est relative à l'URL du serveur racine. L'URL du serveur racine est spécifiée par défaut. Par exemple, si l'URL complète est `example.com/site-is-up.html`, vous saisirez `/site-is-up.html`.

1. Dans la zone **Clé** et **Valeur**, vous pouvez spécifier n'importe quelle paire clé/valeur que vous souhaitez ajouter au fichier `Web.config` de votre application.
**Note**  
Bien que cela ne soit pas recommandé, vous pouvez utiliser la zone **Clé** et **Valeur** pour spécifier les AWS informations d'identification sous lesquelles votre application doit s'exécuter. L'approche recommandée consiste à spécifier un rôle IAM dans la liste déroulante **Identity and Access Management** Role de la page **AWS Options**. Toutefois, si vous devez utiliser des AWS informations d'identification au lieu d'un rôle IAM pour exécuter votre application, dans la ligne **Clé**, sélectionnez **AWSAccessClé**. Sur la ligne **Valeur**, saisissez la clé d'accès. Répétez ces étapes pour **AWSSecretKey**.

1. Choisissez **Suivant**.  
![\[Review window for publishing an application to AWS Elastic Beanstalk with deployment details.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-aeb-wizard-review-console.png)

1. Sur la page **Révision**, examinez les options que vous avez configuré, et cochez la case **Open environment status window when wizard closes (Ouvrir la fenêtre du statut de l’environnement quand l’assistant ferme)**.

1. Si tout vous paraît correct, choisissez **Déploiement**.
**Note**  
Lorsque vous déployez l'application, le compte actif sera débité pour les AWS ressources utilisées par l'application.

   Les informations sur le déploiement apparaissent dans la barre d'état Visual Studio et la fenêtre **Sortie**. Cette opération peut prendre plusieurs minutes. Lorsque le déploiement est terminé, un message de confirmation s'affiche dans la fenêtre **Sortie**.

1. **Pour supprimer le déploiement, dans AWS Explorer, développez le nœud **Elastic Beanstalk**, ouvrez le menu contextuel (clic droit) du sous-nœud du déploiement, puis choisissez Supprimer.** Le processus de suppression peut prendre quelques minutes.

# Déploiement d'une application ASP.NET Core sur Elastic Beanstalk (Legacy)
<a name="deployment-beanstalk-netcore"></a>

**Important**  
Cette documentation fait référence aux services et fonctionnalités existants. Pour obtenir des guides et du contenu mis à jour, consultez le guide de l'[outil de déploiement AWS .NET](https://aws.github.io/aws-dotnet-deploy/) et la AWS table des matières mise [à jour de Deploying](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-chapt.html) to.

AWS Elastic Beanstalk est un service qui simplifie le processus de mise en service des AWS ressources pour votre application. AWS Elastic Beanstalk fournit toute l' AWS infrastructure requise pour déployer votre application.

Le Toolkit for Visual Studio prend en charge le déploiement d'applications ASP.NET Core à AWS l'aide d'Elastic Beanstalk. ASP.NET Core est la nouvelle version d'ASP.NET avec une architecture modularisée qui réduit les frais généraux et rationalise l'exécution de votre application dans le cloud.

AWS Elastic Beanstalk permet de déployer facilement des applications dans différentes langues sur AWS. Elastic Beanstalk prend en charge à la fois les applications ASP.NET traditionnelles et les applications ASP.NET Core. Cette rubrique décrit le déploiement des applications ASP.NET Core.

## Utilisation de l'assistant de déploiement
<a name="tkv-deploy-using-wizard-netcore"></a>

Le moyen le plus simple de déployer des applications ASP.NET Core sur Elastic Beanstalk est d'utiliser le Toolkit for Visual Studio.

Si vous avez utilisé la boîte à outils avant pour déployer l’ASP traditionnel. applications ASP.NET traditionnelles, vous trouverez l'expérience avec les applications ASP.NET Core assez semblable. Dans les étapes ci-dessous, nous allons examiner l'expérience de déploiement.

Si vous n'avez jamais utilisé le kit d'outils auparavant, la première chose à faire après l'avoir installé est d'enregistrer vos AWS informations d'identification auprès du kit d'outils. Consultez la documentation [Comment spécifier les informations d'identification de AWS sécurité pour votre application](deployment-beanstalk-specify-credentials.md#tkv-deploy-specify-credentials-for-application) pour Visual Studio pour plus de détails sur la procédure à suivre.

Pour déployer une application Web ASP.NET Core, cliquez avec le bouton droit sur le projet dans l'explorateur de solutions et sélectionnez **Publier sur AWS...**

Sur la première page de l'assistant de AWS Elastic Beanstalk déploiement Publish to, choisissez de créer une nouvelle application Elastic Beanstalk. Une application Elastic Beanstalk est un ensemble logique de composants Elastic Beanstalk, y compris des environnements, des versions, et des configurations d'environnement. L'assistant de déploiement génère une application qui, en retour, contient un ensemble de versions de l'application et d'environnements. Les environnements contiennent les AWS ressources réelles qui exécutent une version d'application. Chaque fois que vous déployez une application, une nouvelle version de l'application est créée et l'assistant pointe l'environnement vers cette version. Pour en savoir plus sur ces concepts, consultez [Composants Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.components.html).

Ensuite, définissez les noms de l'application et de son premier environnement. Chaque environnement possède un CNAME unique qui lui est associé et que vous pouvez utiliser pour accéder à l'application à la fin du déploiement.

La page suivante, **AWS Options**, vous permet de configurer le type de AWS ressources à utiliser. Dans cet exemple, conservez les valeurs par défaut, sauf pour la section **Paire de clés**. Les paires de clés vous permettent de récupérer le mot de passe administrateur Windows, afin que vous puissiez vous connecter à la machine. Si vous n'avez pas encore créé de paire de clés, sélectionnez **Créer une paire de clés**.

## Permissions
<a name="tkv-deploy-using-wizard-netcore-permissions"></a>

La page **Autorisations** est utilisée pour attribuer des AWS informations d'identification aux instances EC2 qui exécutent votre application. Ceci est important si votre application utilise le AWS SDK pour .NET pour accéder à d'autres AWS services. Si vous n'utilisez pas d'autres services depuis votre application, conservez les valeurs par défaut sur cette page.

## Options de l'application
<a name="tkv-deploy-using-wizard-netcore-app-options"></a>

Les détails sur la page **Application Options (Options de l'application)** sont différents de ceux spécifiés lors du déploiement d'applications ASP.NET traditionnelles. Ici, vous spécifiez la configuration et l'infrastructure de la génération utilisées pour empaqueter l'application ainsi que le chemin de ressource IIS pour l'application.

Après avoir renseigné la page **Application Options (Options de l'application)**, cliquez sur **Suivant** pour examiner les paramètres, puis cliquez sur **Déploiement** pour lancer le processus de déploiement.

## Vérification de l'état de l'environnement
<a name="tkv-deploy-using-wizard-netcore-check-status"></a>

Une fois l'application empaquetée et téléchargée AWS, vous pouvez vérifier l'état de l'environnement Elastic Beanstalk en ouvrant la vue d'état de l'environnement AWS depuis l'explorateur de Visual Studio.

Les événements sont affichés dans la barre d'état à mesure que l'environnement est mis en service. Une fois que tout est terminé, l'environnement passe en état sain. Vous pouvez cliquer sur l'URL pour afficher le site. À partir de là, vous pouvez également extraire les journaux de l'environnement ou du poste de travail distant vers les instances Amazon EC2 qui font partie de votre environnement Elastic Beanstalk.

Le premier déploiement d'une application prendra un peu plus de temps que les redéploiements suivants, car il crée de nouvelles AWS ressources. À mesure que vous itérez sur votre application pendant le développement, vous pouvez rapidement redéployer en réutilisant l'assistant, ou en sélectionnant l'option **Republish (Republier)** lorsque vous cliquez avec le bouton droit sur le projet.

Republiez les packages de votre application en utilisant les paramètres de l'exécution précédente via l'assistant de déploiement et télécharge le bundle d'applications dans l'environnement Elastic Beanstalk existant.

# Comment spécifier les informations d'identification AWS de sécurité pour votre application
<a name="deployment-beanstalk-specify-credentials"></a>

Le AWS compte que vous spécifiez dans l'assistant de **publication sur Elastic Beanstalk** AWS est le compte que l'assistant utilisera pour le déploiement sur Elastic Beanstalk.

Bien que cela ne soit pas recommandé, vous devrez peut-être également spécifier les informations d'identification du AWS compte que votre application utilisera pour accéder aux AWS services après son déploiement. L'approche préférée consiste à spécifier un rôle IAM. **Dans l'assistant **Publish to Elastic Beanstalk**, vous pouvez le faire via la liste déroulante **Identity and Access Management** Role de la page Options.AWS ** Dans l'ancien assistant **de publication sur Amazon Web Services**, vous pouvez le faire via la liste déroulante des **rôles IAM** sur la page **AWS Options**.

Si vous devez utiliser les informations d'identification du AWS compte au lieu d'un rôle IAM, vous pouvez spécifier les informations d'identification du AWS compte pour votre application de l'une des manières suivantes :
+ Référencez un profil correspondant aux informations d'identification du AWS compte dans l'`appSettings`élément du `Web.config` fichier du projet. (Pour créer un profil, voir [Configuration des AWS informations d'identification](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-config-creds.html).) L'exemple suivant spécifie les informations d'identification dont le nom de profil est `myProfile`.

  ```
  <appSettings>
    <!-- AWS CREDENTIALS -->
    <add key="AWSProfileName" value="myProfile"/>
  </appSettings>
  ```
+ **Si vous utilisez l'assistant de **publication sur Elastic Beanstalk**, **sur la page Options de l'application, dans la** **ligne Clé de la zone** Clé et **valeur**, sélectionnez. **AWS AccessKey**** Sur la ligne **Valeur**, saisissez la clé d'accès. Répétez ces étapes pour **AWS SecretKey**.
+ Si vous utilisez l'assistant existant **Publish to Amazon Web Services (Publier dans Amazon Web Services)**, sur la page **Application Options (Options de l’application)**, dans la zone **Application Credentials (Informations d’identification de l’application)**, choisissez **Use these credentials (Utiliser ces informations d’identification)**, puis saisissez la clé d'accès et la clé d'accès secrète dans les zones **Clé d'accès** et **Clé secrète**.

# Comment republier votre application dans un environnement Elastic Beanstalk (ancien)
<a name="deployment-beanstalk-republish"></a>

**Important**  
Cette documentation fait référence aux services et fonctionnalités existants. Pour obtenir des guides et du contenu mis à jour, consultez le guide de l'[outil de déploiement AWS .NET](https://aws.github.io/aws-dotnet-deploy/).

Vous pouvez itérer sur votre application en apportant des modifications discrètes, puis en republiant une nouvelle version dans votre environnement Elastic Beanstalk déjà lancé.

1. Dans l'Explorateur de solutions, ouvrez le menu contextuel (clic droit) du dossier de **AEBWebAppDemo**projet du projet que vous avez publié dans la section précédente, puis choisissez **Publier** dans AWS Elastic Beanstalk.  
![\[Solution Explorer context menu showing "Publish to AWS..." option for AEBWebAppDemo project.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-publish-to-aws-console.png)

   L'assistant **Publish to Elastic Beanstalk (Publier dans Elastic Beanstalk)** s'ouvre.  
![\[Publish to AWS Elastic Beanstalk dialog with profile and deployment options.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-aeb-wizard-app-console2.png)

1. Sélectionnez **Redeploy to an existing environment (Redéployer dans un environnement existant)** et choisissez l'environnement dans lequel vous avez effectué la publication précédemment. Cliquez sur **Suivant**.

   L'assistant **Révision** apparaît.  
![\[Review wizard showing deployment details for an AWS Elastic Beanstalk application.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/tkv-aeb-wizard-app-review.png)

1. Cliquez sur **Déploiement**. L'application sera redéployée dans le même environnement.

Vous ne pouvez pas republier si votre application est en cours de lancement ou de mise hors service.

# Déploiements personnalisés d'applications Elastic Beanstalk
<a name="deployment-beanstalk-custom"></a>

Cette rubrique décrit comment le manifeste de déploiement du conteneur Microsoft Windows d'Elastic Beanstalk prend en charge les déploiements d'applications personnalisées.

Les déploiements d'applications personnalisées constituent une fonctionnalité puissante pour les utilisateurs avancés qui souhaitent tirer parti de la puissance d'Elastic Beanstalk pour créer et AWS gérer leurs ressources, tout en gardant un contrôle total sur la manière dont leur application est déployée. Pour un déploiement d'application personnalisé, vous créez des PowerShell scripts Windows pour les trois actions différentes qu'Elastic Beanstalk exécute. L'action d'installation est utilisée lorsqu'un déploiement est lancé, le redémarrage est utilisé lorsque l'API `RestartAppServer` est appelée depuis la boîte à outils ou la console web, et la désinstallation est appelée sur n'importe quel déploiement antérieur à chaque nouveau déploiement.

Par exemple, vous pouvez disposer d'une application ASP.NET que vous souhaitez déployer tandis que votre équipe de documentation écrit un site web statique qu'elle souhaite inclure au déploiement. Pour ce faire, écrivez votre manifeste de déploiement comme suit :

```
{
  "manifestVersion": 1,
  "deployments": {

    "msDeploy": [
      {
        "name": "app",
        "parameters": {
          "appBundle": "CoolApp.zip",
          "iisPath": "/"
        }
      }
    ],
    "custom": [
      {
        "name": "PowerShellDocs",
        "scripts": {
          "install": {
            "file": "install.ps1"
          },
          "restart": {
            "file": "restart.ps1"
          },
          "uninstall": {
            "file": "uninstall.ps1"
          }
        }
      }
    ]
  }
}
```

Les scripts répertoriés pour chaque action doivent se trouver dans la solution groupée d'applications associée au fichier manifeste de déploiement. Dans cet exemple, la solution groupée d'applications renferme également un fichier documentation.zip qui contient un site web statique créé par votre équipe de documentation.

Le script `install.ps1` extrait le fichier zip et configure le champ IIS.

```
Add-Type -assembly "system.io.compression.filesystem"
[io.compression.zipfile]::ExtractToDirectory('./documentation.zip', 'c:\inetpub\wwwroot\documentation')

powershell.exe -Command {New-WebApplication -Name documentation -PhysicalPath  c:\inetpub\wwwroot\documentation -Force}
```

Étant donné que votre application s'exécute dans IIS, l'action de redémarrage appellera une réinitialisation d'IIS.

```
iisreset /timeout:1
```

Pour désinstaller des scripts, il est important de nettoyer tous les paramètres et les fichiers utilisés pendant la phase d'installation. De cette façon, lors de la phase d'installation de la nouvelle version, vous pouvez éviter toute collision avec des déploiements précédents. Dans cet exemple, vous devez supprimer l'application IIS pour le site web statique et supprimer les fichiers de ce dernier.

```
powershell.exe -Command {Remove-WebApplication -Name documentation}
Remove-Item -Recurse -Force 'c:\inetpub\wwwroot\documentation'
```

Avec ces fichiers de script et le fichier documentation.zip inclus dans votre solution groupée d'applications, le déploiement crée l'application ASP.NET et déploie le site de la documentation.

Pour cet exemple, nous avons choisi un exemple simple qui déploie un site Web statique simple, mais avec le déploiement d'applications personnalisées, vous pouvez déployer n'importe quel type d'application et laisser Elastic AWS Beanstalk gérer les ressources correspondantes.

# Déploiements personnalisés d'ASP.NET Core Elastic Beanstalk
<a name="deployment-beanstalk-custom-netcore"></a>

Cette rubrique décrit le fonctionnement du déploiement et ce que vous pouvez faire pour personnaliser les déploiements lors de la création d'applications ASP.NET Core avec Elastic Beanstalk et le Toolkit for Visual Studio.

Une fois que vous avez terminé l'assistant de déploiement du Toolkit for Visual Studio, celui-ci regroupe l'application et l'envoie à Elastic Beanstalk. La première étape de la création d’une solution groupée d'applications consiste à utiliser la nouvelle interface de ligne de commande dotnet afin de préparer l'application pour la publication à l'aide de la commande **publish**. L'infrastructure et la configuration sont transmises depuis les paramètres de l'assistant vers la commande **publish**. Ainsi, si vous avez sélectionné **Publier** pour `configuration` et **netcoreapp1.0** pour `framework`, la boîte à outils exécute la commande suivante :

 `dotnet publish --configuration Release --framework netcoreapp1.0` 

Lorsque la commande **publish** est terminée, la boîte à outils écrit le nouveau manifeste de déploiement dans le dossier de publication. Le manifeste de déploiement est un fichier JSON nommé **aws-windows-deployment-manifest.json**, que le conteneur Windows Elastic Beanstalk (version 1.2 ou ultérieure) lit pour déterminer comment déployer l'application. Par exemple, pour une application ASP.NET Core que vous souhaitez déployer à la racine d'IIS, la boîte à outils génère un fichier manifeste semblable à ce qui suit :

```
{
  "manifestVersion": 1,
  "deployments": {

    "aspNetCoreWeb": [
      {
        "name": "app",
        "parameters": {
          "appBundle": ".",
          "iisPath": "/",
          "iisWebSite": "Default Web Site"
        }
      }
    ]
  }
}
```

La propriété `appBundle` indique l'endroit où les bits de l'application sont en lien avec le fichier manifeste. Cette propriété peut pointer vers un annuaire ou une archive ZIP. Les propriétés `iisPath` et `iisWebSite` indiquent l'endroit où héberger l'application dans IIS.

## Personnalisation du manifeste
<a name="tkv-deploy-beanstalk-custom-netcore-manifest"></a>

La boîte à outils écrit uniquement le fichier manifeste s'il n'existe pas déjà dans le dossier de publication. Si le fichier existe, la boîte à outils met à jour les propriétés `appBundle`, `iisPath` et `iisWebSite` dans la première application répertoriée sous la section `aspNetCoreWeb` du manifeste. Cela vous permet d'ajouter le **aws-windows-deployment-manifestfichier .json** à votre projet et de personnaliser le manifeste. Pour ce faire, pour une application Web ASP.NET Core dans Visual Studio, ajoutez un nouveau fichier JSON à la racine du projet et nommez-le **aws-windows-deployment-manifest.json**.

Le manifeste doit être nommé **aws-windows-deployment-manifest.json** et il doit se trouver à la racine du projet. Le conteneur Elastic Beanstalk recherche le manifeste à la racine et, s'il le trouve, invoquera les outils de déploiement. **Si le fichier n'existe pas, le conteneur Elastic Beanstalk revient à l'ancien outil de déploiement, qui suppose que l'archive est une archive msdeploy.**

Pour veiller à ce que la commande `publish` de l'interface de ligne de commande dotnet inclut le manifeste, mettez à jour le fichier `project.json` pour y inclure le fichier manifeste dans la section inclure sous `include` dans `publishOptions`.

```
{
   "publishOptions": {
     "include": [
       "wwwroot",
       "Views",
       "Areas/**/Views",
       "appsettings.json",
       "web.config",
       "aws-windows-deployment-manifest.json"
     ]
   }
 }
```

Maintenant que vous avez déclaré le manifeste de façon à ce qu'il soit inclus dans la solution groupée d'applications, vous pouvez configurer la façon dont vous souhaitez déployer l'application. Vous pouvez personnaliser le déploiement au-delà de ce que prend en charge l'assistant de déploiement. AWS a défini un schéma JSON pour le **fichier aws-windows-deployment-manifest .json**, et lorsque vous avez installé le Toolkit for Visual Studio, le programme d'installation a enregistré l'URL du schéma.

Lorsque vous ouvrez `windows-deployment-manifest.json`, vous voyez l'URL du schéma sélectionnée dans la zone déroulante Schema. Vous pouvez accéder à l'URL pour obtenir une description complète de ce qui peut être défini dans le manifeste. Une fois le schéma sélectionné, Visual Studio le fournira IntelliSense pendant que vous modifiez le manifeste.

Vous pouvez procéder à une personnalisation en configurant le groupe d'applications IIS sous lequel l'application sera exécutée. L'exemple suivant montre comment vous pouvez définir un groupe d'applications IIS (« customPool ») qui recycle le processus toutes les 60 minutes, et l'attribuer à l'application à l'aide de `"appPool": "customPool"`.

```
{
  "manifestVersion": 1,
  "iisConfig": {
    "appPools": [
      {
        "name": "customPool",
        "recycling": {
          "regularTimeInterval": 60
        }
      }
    ]
  },
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "app",
        "parameters": {
          "appPool": "customPool"
        }
      }
    ]
  }
}
```

En outre, le manifeste peut déclarer que les PowerShell scripts Windows doivent être exécutés avant et après les actions d'installation, de redémarrage et de désinstallation. Par exemple, le manifeste suivant exécute le PowerShell script Windows `PostInstallSetup.ps1` pour poursuivre le travail de configuration après le déploiement de l'application ASP.NET Core sur IIS. Lorsque vous ajoutez des scripts de ce type, veillez à ce qu'ils soient ajoutés dans la section inclure sous publishOptions dans le fichier `project.json`, comme vous l'aviez fait avec le fichier `aws-windows-deployment-manifest.json`. Sinon, les scripts ne seront pas inclus dans le cadre de la commande **publish** de l'interface de ligne de commande dotnet.

```
{
  "manifestVersion": 1,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "app",
        "scripts": {
          "postInstall": {
            "file": "SetupScripts/PostInstallSetup.ps1"
          }
        }
      }
    ]
  }
}
```

## Qu'en est-il des .ebextensions ?
<a name="tkv-deploy-beanstalk-custom-netcore-ebextensions"></a>

Les fichiers de configuration .ebextensions d'**Elastic** Beanstalk sont pris en charge comme tous les autres conteneurs Elastic Beanstalk. Pour inclure des .ebextensions dans une application ASP.NET Core, ajoutez l'annuaire `.ebextensions` à la section `include` sous `publishOptions` dans le fichier `project.json`. Pour plus d'informations sur les .ebextensions, consultez le [Manuel du développeur Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html).

# Support de plusieurs applications pour .NET et Elastic Beanstalk
<a name="deployment-beanstalk-multiple-application"></a>

Le manifeste de déploiement vous permet de déployer plusieurs applications dans le même environnement Elastic Beanstalk.

Le manifeste de déploiement prend en charge les applications web [ASP.NET Core](http://www.asp.net/core) ainsi que les archives msdeploy pour les applications ASP.NET traditionnelles. Imaginez un scénario dans lequel vous avez écrit une nouvelle application incroyable en utilisant ASP.NET Core pour le serveur frontal et une API web pour une API d'extension. Vous disposez également d'une application d'administration que vous avez écrite à l'aide d'ASP.NET traditionnel.

L'assistant de déploiement de la boîte à outils se concentre sur le déploiement d'un seul projet. Pour profiter du déploiement de plusieurs applications, vous devez créer manuellement la solution groupée d'applications. Pour commencer, écrivez le manifeste. Dans cet exemple, vous allez écrire le manifeste à la racine de votre solution.

La section de déploiement du manifeste possède deux enfants : un éventail d'applications web ASP.NET Core à déployer et un éventail d'archives msdeploy à déployer. Pour chaque application, vous définissez le chemin IIS et l'emplacement des bits de l'application relatifs au manifeste.

```
{
  "manifestVersion": 1,
  "deployments": {

    "aspNetCoreWeb": [
      {
        "name": "frontend",
        "parameters": {
          "appBundle": "./frontend",
          "iisPath": "/frontend"
        }
      },
      {
        "name": "ext-api",
        "parameters": {
          "appBundle": "./ext-api",
          "iisPath": "/ext-api"
        }
      }
    ],
    "msDeploy": [
      {
        "name": "admin",
        "parameters": {
          "appBundle": "AmazingAdmin.zip",
          "iisPath": "/admin"
        }
      }
    ]
  }
}
```

Une fois le manifeste écrit, vous utiliserez Windows PowerShell pour créer le bundle d'applications et mettre à jour un environnement Elastic Beanstalk existant pour l'exécuter. Le script est écrit en supposant qu'il sera exécuté depuis le dossier contenant votre solution Visual Studio.

La première chose à faire dans le script est de configurer un espace de travail dans lequel créer la solution groupée d'applications.

```
$publishFolder = "c:\temp\publish"

$publishWorkspace = [System.IO.Path]::Combine($publishFolder, "workspace")
$appBundle = [System.IO.Path]::Combine($publishFolder, "app-bundle.zip")

If (Test-Path $publishWorkspace){
  Remove-Item $publishWorkspace -Confirm:$false -Force
}
If (Test-Path $appBundle){
  Remove-Item $appBundle -Confirm:$false -Force
}
```

Une fois le dossier créé, il est temps de préparer le serveur frontal. Comme avec l'assistant de déploiement, utilisez l'interface de ligne de commande dotnet pour publier l'application.

```
Write-Host 'Publish the ASP.NET Core frontend'
$publishFrontendFolder = [System.IO.Path]::Combine($publishWorkspace, "frontend")
dotnet publish .\src\AmazingFrontend\project.json -o $publishFrontendFolder -c Release -f netcoreapp1.0
```

Notez que le sous-dossier « serveur frontal » a été utilisé pour le dossier de sortie, qui correspond à celui que vous avez défini dans le manifeste. Maintenant, vous devez faire de même pour le projet d'API web.

```
Write-Host 'Publish the ASP.NET Core extensibility API'
$publishExtAPIFolder = [System.IO.Path]::Combine($publishWorkspace, "ext-api")
dotnet publish .\src\AmazingExtensibleAPI\project.json -o $publishExtAPIFolder -c Release -f netcoreapp1.0
```

Le site d'administration est une application ASP.NET traditionnelle, vous ne pouvez donc pas utiliser l'interface de ligne de commande dotnet. Pour l'application d'administration, vous devez utiliser msbuild, en spécifiant le package de build cible pour créer l'archive msdeploy. Par défaut, le package cible crée l'archive msdeploy sous le dossier `obj\Release\Package`, vous devrez donc la copier dans l'espace de travail de publication.

```
Write-Host 'Create msdeploy archive for admin site'
msbuild .\src\AmazingAdmin\AmazingAdmin.csproj /t:package /p:Configuration=Release
Copy-Item .\src\AmazingAdmin\obj\Release\Package\AmazingAdmin.zip $publishWorkspace
```

Pour indiquer à l'environnement Elastic Beanstalk ce qu'il doit faire avec toutes ces applications, copiez le manifeste de votre solution dans l'espace de travail de publication, puis compressez le dossier.

```
Write-Host 'Copy deployment manifest'
Copy-Item .\aws-windows-deployment-manifest.json $publishWorkspace

Write-Host 'Zipping up publish workspace to create app bundle'
Add-Type -assembly "system.io.compression.filesystem"
[io.compression.zipfile]::CreateFromDirectory( $publishWorkspace, $appBundle)
```

Maintenant que vous avez le bundle d'applications, vous pouvez accéder à la console Web et télécharger l'archive dans un environnement Elastic Beanstalk. Vous pouvez également continuer à utiliser les AWS PowerShell applets de commande pour mettre à jour l'environnement Elastic Beanstalk avec le bundle d'applications. Assurez-vous que le profil et la région actuels correspondent au profil et à la région contenant votre environnement Elastic Beanstalk à l'aide des applets de commande and. `Set-AWSCredentials` `Set-DefaultAWSRegion`

```
Write-Host 'Write application bundle to S3'
# Determine S3 bucket to store application bundle
$s3Bucket = New-EBStorageLocation
Write-S3Object -BucketName $s3Bucket -File $appBundle


$applicationName = "ASPNETCoreOnAWS"
$environmentName = "ASPNETCoreOnAWS-dev"
$versionLabel = [System.DateTime]::Now.Ticks.ToString()

Write-Host 'Update Beanstalk environment for new application bundle'
New-EBApplicationVersion -ApplicationName $applicationName -VersionLabel $versionLabel -SourceBundle_S3Bucket $s3Bucket -SourceBundle_S3Key app-bundle.zip
Update-EBEnvironment -ApplicationName $applicationName -EnvironmentName $environmentName -VersionLabel $versionLabel
```

Vérifiez maintenant l'état de la mise à jour à l'aide de la page d'état de l'environnement Elastic Beanstalk du kit d'outils ou de la console Web. Une fois terminé, vous pourrez accéder à chacune des applications que vous avez déployées vers le chemin IIS défini dans le manifeste de déploiement.

# Déploiement sur Amazon EC2 Container Service
<a name="deployment-ecs"></a>

**Important**  
La nouvelle AWS fonctionnalité **Publier sur** est conçue pour simplifier la façon dont vous publiez des applications .NET sur AWS. Il vous sera peut-être demandé si vous souhaitez passer à cette expérience de publication après avoir sélectionné **Publish Container to AWS**. Pour de plus amples informations, veuillez consulter [Utilisation de Publish to AWS dans Visual Studio](publish-experience.md).

Amazon Elastic Container Service est un service de gestion de conteneurs hautement évolutif et performant qui prend en charge les conteneurs Docker et vous permet d'exécuter facilement des applications sur un cluster géré d' EC2 instances Amazon.

Pour déployer des applications sur Amazon Elastic Container Service, les composants de votre application doivent être développés pour s'exécuter dans un conteneur Docker. Un conteneur Docker est une unité standardisée pour le développement logiciel, contenant tout ce dont votre application logicielle a besoin pour être exécutée : code, exécutable, outils système, bibliothèques système, etc.

Le Toolkit for Visual Studio fournit un assistant qui simplifie la publication d'applications via Amazon ECS. Cet assistant est décrit dans les sections suivantes.

Pour plus d'informations sur Amazon ECS, consultez la [documentation d'Elastic Container Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html). Elle inclut une présentation des [principes de base de Docker](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html) et de la [création d'un cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html).

**Topics**
+ [Spécifier les AWS identifiants](deployment-ecs-specify-credentials.md)
+ [Déployer une application ASP.NET Core 2.0 (Fargate) (Legacy)](deployment-ecs-aspnetcore-fargate.md)
+ [Déployer une application ASP.NET Core 2.0 (EC2)](deployment-ecs-aspnetcore-ec2.md)

# Spécifiez les AWS informations d'identification pour votre application ASP.NET Core 2
<a name="deployment-ecs-specify-credentials"></a>

Il existe deux types d'informations d'identification lorsque vous déployez votre application dans un conteneur Docker : les informations d'identification de déploiement et les informations d'identification d'instance.

Les informations d'identification de déploiement sont utilisées par l' AWS assistant de publication du conteneur pour créer l'environnement dans Amazon ECS. Elles incluent des éléments tels que des tâches, des services, des rôles IAM, un référentiel de conteneur Docker et, éventuellement, un équilibreur de charge.

Les informations d'identification de l'instance sont utilisées par l'instance (y compris votre application) pour accéder à différents AWS services. Par exemple, si votre application ASP.NET Core 2.0 lit et écrit sur des objets Amazon S3, elle aura besoin des autorisations appropriées. Vous pouvez fournir diverses informations d'identification en utilisant des méthodes différentes selon l'environnement. Par exemple, votre application ASP.NET Core 2 peut cibler des environnements de *Développement* et de *Production*. Vous pouvez utiliser une instance Docker locale et des informations d'identification pour le développement, ainsi qu'un rôle défini en production.

## Spécification des informations d'identification de déploiement
<a name="tkv-ecs-deploy-creds"></a>

Le AWS compte que vous spécifiez dans l' AWS assistant **de publication du conteneur** est le AWS compte que l'assistant utilisera pour le déploiement sur Amazon ECS. Le profil du compte doit disposer d'autorisations sur Amazon Elastic Compute Cloud, Amazon Elastic Container Service et Gestion des identités et des accès AWS.

Si vous remarquez que des options manquent dans des listes déroulantes, cela peut être dû au fait que vous ne disposez pas des autorisations adéquates. Par exemple, si vous avez créé un cluster pour votre application mais que vous ne le voyez pas sur la page **Publier le conteneur vers** le cluster de l' AWS assistant. Si cela se produit, ajoutez les autorisations manquantes et relancez l'assistant.

## Spécification des informations d'identification d'instance de développement
<a name="tkv-ecs-dev-creds"></a>

Pour les environnements autres que de production, vous pouvez configurer vos informations d'identification dans le fichier appsettings.<environment>.json. Par exemple, pour configurer vos informations d'identification dans le fichier appsettings.Development.json dans Visual Studio 2017 :

1. Ajoutez les AWSSDK .Extensions. NETCore.Configurez NuGet le package pour votre projet.

1. Ajoutez des AWS paramètres à AppSettings.development.json. La configuration ci-dessous définit `Profile` et `Region`.

   ```
   {
       "AWS": {
           "Profile": "local-test-profile",
           "Region": "us-west-2"
       }
   }
   ```

## Spécification des informations d'identification d'instance de production
<a name="id1"></a>

Pour les instances de production, nous vous recommandons d'utiliser un rôle IAM pour contrôler les accès auxquels votre application (et le service) peuvent accéder. Par exemple, pour configurer un rôle IAM avec Amazon ECS en tant que principal de service avec des autorisations sur Amazon Simple Storage Service et Amazon DynamoDB AWS Management Console depuis :

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

1. Dans le volet de navigation de la console IAM, choisissez Rôles, puis Créer un rôle.

1. Choisissez le type **AWS de rôle de service**, puis choisissez **EC2 Container Service**.

1. Choisissez le cas d'utilisation **EC2 Container Service Task (Tâche EC2 Container Service)**. Les cas d'utilisation sont définis par le service pour inclure la politique d'approbation nécessaire au service. Choisissez ensuite **Suivant : Autorisations**.

1. Choisissez les politiques relatives à **Amazon S3 FullAccess** et **AmazonDynamoDBFullaux autorisations d'accès**. Cochez la case en regard de chaque stratégie, puis choisissez **Next: Review (Suivant : Vérification)**.

1. Pour **Nom de rôle**, tapez un nom de rôle ou le suffixe d'un nom de rôle vous permettant d'identifier l'objectif du rôle. Les noms de rôle de votre compte AWS doivent être uniques. Ils ne sont pas distingués au cas par cas. Par exemple, vous ne pouvez pas créer deux rôles nommés `PRODROLE` et `prodrole`. Différentes entités peuvent référencer le rôle et il n'est donc pas possible de modifier son nom après sa création.

1. (Facultatif) Dans le champ **Role description (Description du rôle)**, saisissez la description du nouveau rôle.

1. Passez en revue les informations du rôle, puis choisissez **Créer un rôle**.

Vous pouvez utiliser ce rôle comme rôle de **tâche** sur la page de **définition des tâches ECS** de l' AWS assistant **Publish Container to**.

Pour en savoir plus, consultez [Utilisation des rôles liés à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html).

# Déploiement d'une application ASP.NET Core 2.0 sur Amazon ECS (Fargate) (Legacy)
<a name="deployment-ecs-aspnetcore-fargate"></a>

**Important**  
Cette documentation fait référence aux services et fonctionnalités existants. Pour obtenir des guides et du contenu mis à jour, consultez le guide de l'[outil de déploiement AWS .NET](https://aws.github.io/aws-dotnet-deploy/) et la AWS table des matières mise [à jour de Deploying](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-chapt.html) to.

Cette section décrit comment utiliser l' AWS assistant **Publish Container to**, fourni dans le cadre du Toolkit for Visual Studio, pour déployer une application ASP.NET Core 2.0 conteneurisée ciblant Linux via Amazon ECS à l'aide du type de lancement Fargate. Dans la mesure où une application web est destinée à s'exécuter en continu, elle sera déployée sous la forme d'un service.

## Avant de publier votre conteneur
<a name="tkv-deploy-ecs-netcore-prerequisites"></a>

Avant d'utiliser l' AWS assistant **de publication du conteneur** pour déployer votre application ASP.NET Core 2.0 :
+  [Spécifiez vos AWS informations d'identification](deployment-ecs-specify-credentials.md) et [configurez Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html).
+  [Installez Docker](https://docs.docker.com/engine/installation). Vous disposez de plusieurs options d'installation différentes, notamment [Docker pour Windows](https://docs.docker.com/docker-for-windows/install/).
+ Dans Visual Studio, créez (ou ouvrez) un projet pour une application conteneurisée ASP.NET Core 2.0 ciblant Linux.

## Accès à l' AWS assistant de publication du conteneur
<a name="tkv-deployment-ecs-netcore-accessing"></a>

Pour déployer une application conteneurisée ASP.NET Core 2.0 ciblant Linux, cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions et sélectionnez **Publier** le conteneur sur. AWS

![\[Context menu showing "Publish Container to AWS" option highlighted for deployment.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step0a.png)


Vous pouvez également sélectionner **Publier le conteneur AWS** sur dans le menu Visual Studio Build.

## Publier le conteneur dans AWS Wizard
<a name="tkv-deploy-ecs-pubtoaws"></a>

![\[AWS Publish Container interface showing profile, Docker image, and deployment options for ECR.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step1.png)


 **Account profile to use (Profil de compte à utiliser)** - Sélectionnez un profil de compte à utiliser.

 **Région** - Choisissez la région du déploiement. Le profil et la région sont utilisés pour configurer les ressources de votre environnement de déploiement et pour sélectionner le registre Docker par défaut.

 **Configuration** - Sélectionnez la configuration de génération de l'image Docker.

 **Docker Repository (Référentiel Docker)** - Choisissez un référentiel Docker existant ou saisissez le nom d'un nouveau référentiel pour le créer. Il s'agit du référentiel auquel le conteneur de génération est envoyé.

 **Balise** - Sélectionnez une balise existante ou saisissez le nom d'une nouvelle balise. Les balises peuvent suivre des détails importants, tels que la version, les options ou d'autres éléments de configuration uniques du conteneur Docker.

 **Cible du déploiement** - Sélectionnez **Service on an ECS Cluster (Service sur un cluster ECS)**. Utilisez cette option de déploiement lorsque votre application est destinée à être de longue durée (comme une application web ASP.NET).

 **Enregistrer les paramètres dans `aws-docker-tools-defaults.json` et configurer le projet pour un déploiement de ligne de commande)** - Cochez cette option si vous voulez profiter de la flexibilité du déploiement à partir de la ligne de commande. Utilisez `dotnet ecs deploy` dans le répertoire de votre projet pour déployer et publier le conteneur via `dotnet ecs publish`.

## Page Configuration de lancement
<a name="tkv-deploy-ecs-launch-configuration"></a>

![\[AWS Launch Configuration interface for creating an empty ECS cluster with FARGATE launch type.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step2.png)


 **ECS Cluster (Cluster ECS)** - Sélectionnez le cluster qui exécutera votre image Docker. Si vous choisissez de créer un cluster vide, indiquez un nom pour votre nouveau cluster.

 **Type de lancement** - Choisissez **FARGATE**.

 **CPU Maximum (vCPU) (UC maximum (processeur virtuel))** - Choisissez la capacité de calcul maximale nécessaire à votre application. Pour voir les plages autorisées pour les valeurs d'UC et de mémoire, consultez [taille de tâche](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html).

 **Memory Maximum (GB) (Mémoire maximale (Go))** - Sélectionnez la taille maximale de mémoire disponible pour votre application.

 **VPC Subnets (Sous-réseaux VPC)** - Choisissez un ou plusieurs sous-réseaux sous un seul VPC. Si vous choisissez plusieurs sous-réseaux, vos tâches seront réparties entre eux. Cela peut améliorer la disponibilité. Pour en savoir plus, consultez [VPC par défaut et sous-réseaux par défaut](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html).

 **Groupes de sécurité** - Choisissez un groupe de sécurité.

Un groupe de sécurité fait office de pare-feu pour les instances Amazon EC2 associées, en contrôlant le trafic entrant et le trafic sortant au niveau de l'instance.

 Les [groupes de sécurité par défaut](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html) sont configurés pour autoriser le trafic entrant provenant d'instances assignées au même groupe de sécurité et l'ensemble du trafic sortant IPv4 . Le trafic sortant doit être autorisé pour que le service puisse atteindre le référentiel de conteneur.

 **Assign Public IP Address (Attribuer une adresse IP publique)** - Cochez cette case pour que votre tâche soit accessible depuis Internet.

## Page Configuration de service
<a name="tkv-deploy-ecs-service"></a>

![\[AWS Service Configuration interface for deploying an application with customizable parameters.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step3.png)


 **Service** - Sélectionnez l'un des services dans le menu déroulant pour déployer votre conteneur dans un service existant. Vous pouvez également choisir **Créer** pour créer un nouveau service. Les noms de service doivent être uniques au sein d'un cluster, mais des services peuvent porter des noms similaires dans des clusters différents d'une même région ou de plusieurs régions.

 **Number of Tasks (Nombre de tâches)** - Nombre de tâches à déployer et qui doivent continuer à s'exécuter sur votre cluster. Chaque tâche est une instance de votre conteneur.

 **Minimum Healthy Percent (Pourcentage minimum d'instances saines)** - Pourcentage de tâches qui doivent rester à l'état `RUNNING` lors d'un déploiement, arrondi à la hausse à l'entier le plus proche.

 **Maximum Percent (Pourcentage maximum)** - Pourcentage de tâches autorisées à l'état `RUNNING` ou `PENDING` lors d'un déploiement, arrondi à la baisse à l'entier le plus proche.

## Page Équilibreur de charge d'application
<a name="tkv-deploy-ecs-app-load-balancer"></a>

![\[Application Load Balancer configuration interface for AWS with options for load balancer and target group settings.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step4.png)


 **Configure Application Load Balancer (Configurer un équilibreur de charge d'application)** - Cochez cette case pour configurer un équilibreur de charge d'application.

 **Équilibreur de charge** - Sélectionnez un équilibreur de charge existant ou choisissez **Créer** et saisissez le nom du nouvel équilibreur de charge.

 **Port d’écoute** - Sélectionnez un port d'écoute existant ou choisissez **Créer** et saisissez un numéro de port. Le port par défaut, `80`, est approprié pour la plupart des applications web.

 **Groupe cible** : sélectionnez le groupe cible auprès duquel Amazon ECS enregistrera les tâches auprès du service.

 **Modèle de chemin** - L'équilibreur de charge utilisera le routage basé sur le chemin d'accès. Acceptez la barre oblique `/` par défaut ou indiquez un autre modèle. Le modèle de chemin est sensible à la casse, peut comporter jusqu'à 128 caractères et contient un [jeu de caractères sélectionné](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions).

 **Chemin de vérification de l'état** - Chemin de ping, c'est-à-dire destination des vérifications de l'état sur les cibles. Par défaut, il s'agit de `/`. Entrez un chemin différent si nécessaire. Si le chemin que vous saisissez n'est pas valide, la vérification de l'état échoue et il est considéré comme non sain.

Si vous déployez plusieurs services et que chacun d'eux est déployé dans un chemin ou un emplacement différent, vous avez besoin de chemins de vérification personnalisés.

## Page Définition de tâche
<a name="tkv-deploy-ecs-task-definition"></a>

![\[AWS Task Definition interface for configuring Docker container parameters and permissions.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step5.png)


 **Définition de tâche** - Sélectionnez une définition de tâche existante ou choisissez **Créer** et saisissez le nom de la nouvelle définition de tâche.

 **Conteneur** - Sélectionnez un conteneur existant ou choisissez **Créer** et saisissez le nom du nouveau conteneur.

 **Rôle de tâche** : sélectionnez un rôle IAM doté des informations d'identification dont votre application a besoin pour accéder aux AWS services. Il s'agit de la manière dont les informations d'identification sont transmises à votre application. Découvrez [comment définir les informations d'identification AWS de sécurité pour votre application](deployment-ecs-specify-credentials.md).

 **Rôle d'exécution des tâches** : sélectionnez un rôle autorisé à extraire des images privées et à publier des journaux. AWS Fargate l'utilisera en votre nom.

 **Port Mapping (Mappage de port)** - Choisissez le numéro de port sur le conteneur qui est lié au port hôte affecté automatiquement.

 **Variables d'environnement** - Ajoutez, modifiez ou supprimez des variables d'environnement pour le conteneur. Vous pouvez les modifier en fonction de votre déploiement.

Lorsque la configuration vous satisfait, cliquez sur **Publier** pour commencer le processus de déploiement.

## Conteneur de publication vers AWS
<a name="tkv-deploy-ecs-publishing"></a>

![\[AWS container publishing progress window showing steps for deploying to ECS and ECR.\]](http://docs.aws.amazon.com/fr_fr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step6.png)


Des événements sont affichés pendant le déploiement. L'assistant se ferme automatiquement une fois l'opération terminée avec succès. Pour modifier cela, décochez la case située en bas de la page.

Vous pouvez trouver l'URL de vos nouvelles instances dans l' AWS explorateur. Développez Amazon ECS and Clusters, puis cliquez sur votre cluster.

# Déploiement d'une application ASP.NET Core 2.0 sur Amazon ECS (EC2)
<a name="deployment-ecs-aspnetcore-ec2"></a>

Cette section décrit comment utiliser l' AWS assistant **Publish Container to**, fourni dans le cadre du Toolkit for Visual Studio, pour déployer une application ASP.NET Core 2.0 conteneurisée ciblant Linux via Amazon ECS à l'aide du type de lancement EC2. Comme une application Web est censée fonctionner en continu, elle sera déployée en tant que service.

## Avant de publier votre conteneur
<a name="tkv-deploy-ecs-netcore-prerequisites"></a>

Avant d'utiliser le **conteneur de publication AWS** pour déployer votre application ASP.NET Core 2.0 :
+  [Spécifiez vos AWS informations d'identification](deployment-ecs-specify-credentials.md) et [configurez Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html).
+  [Installez Docker](https://docs.docker.com/engine/installation). Vous disposez de plusieurs options d'installation différentes, notamment [Docker pour Windows](https://docs.docker.com/docker-for-windows/install/).
+  [Créez un cluster Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-cluster.html) en fonction des besoins de votre application web. Il suffit de quelques étapes pour effectuer cette opération.
+ Dans Visual Studio, créez (ou ouvrez) un projet pour une application conteneurisée ASP.NET Core 2.0 ciblant Linux.

## Accès à l' AWS assistant de publication du conteneur
<a name="tkv-deployment-ecs-netcore-accessing"></a>

Pour déployer une application conteneurisée ASP.NET Core 2.0 ciblant Linux, cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions et sélectionnez **Publier** le conteneur sur. AWS

Vous pouvez également sélectionner **Publier le conteneur AWS** sur dans le menu Visual Studio Build.

## Publier le conteneur dans AWS Wizard
<a name="tkv-deploy-ecs-pubtoaws"></a>

 **Account profile to use (Profil de compte à utiliser)** - Sélectionnez un profil de compte à utiliser.

 **Région** - Choisissez une région de déploiement. Le profil et la région sont utilisés pour configurer les ressources de votre environnement de déploiement et pour sélectionner le registre Docker par défaut.

 **Configuration** - Sélectionnez la configuration de génération de l'image Docker.

 **Docker Repository (Référentiel Docker)** - Choisissez un référentiel Docker existant ou saisissez le nom d'un nouveau référentiel pour le créer. Il s'agit du référentiel auquel l'image du conteneur de génération est envoyée.

 **Balise** - Sélectionnez une balise existante ou saisissez le nom d'une nouvelle balise. Les balises peuvent suivre des détails importants, tels que la version, les options ou d'autres éléments de configuration uniques du conteneur Docker.

 **Déploiement** - Sélectionnez **Service on an ECS Cluster (Service sur un cluster ECS)**. Utilisez cette option de déploiement lorsque votre application est destinée à être de longue durée (comme une application web ASP.NET Core 2.0).

 **Enregistrer les paramètres dans `aws-docker-tools-defaults.json` et configurer le projet pour un déploiement de ligne de commande)** - Cochez cette option si vous voulez profiter de la flexibilité du déploiement à partir de la ligne de commande. Utilisez `dotnet ecs deploy` dans le répertoire de votre projet pour déployer et publier le conteneur via `dotnet ecs publish`.

## Page Configuration de lancement
<a name="tkv-deploy-ecs-launch-config"></a>

 **ECS Cluster (Cluster ECS)** - Sélectionnez le cluster qui exécutera votre image Docker. Vous pouvez [créer un cluster ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html) à l'aide de la console AWS de gestion.

 **Type de lancement** - Choisissez EC2. Pour utiliser le type de lancement Fargate, consultez [Déploiement d'une application ASP.NET Core 2.0 sur Amazon ECS (Fargate)](deployment-ecs-aspnetcore-fargate.md).

## Page Configuration de service
<a name="tkv-deploy-ecs-service"></a>

 **Service** - Sélectionnez l'un des services dans le menu déroulant pour déployer votre conteneur dans un service existant. Vous pouvez également choisir **Créer** pour créer un nouveau service. Les noms de service doivent être uniques au sein d'un cluster, mais des services peuvent porter des noms similaires dans des clusters différents d'une même région ou de plusieurs régions.

 **Number of Tasks (Nombre de tâches)** - Nombre de tâches à déployer et qui doivent continuer à s'exécuter sur votre cluster. Chaque tâche est une instance de votre conteneur.

 **Minimum Healthy Percent (Pourcentage minimum d'instances saines)** - Pourcentage de tâches qui doivent rester à l'état `RUNNING` lors d'un déploiement, arrondi à la hausse à l'entier le plus proche.

 **Maximum Percent (Pourcentage maximum)** - Pourcentage de tâches autorisées à l'état `RUNNING` ou `PENDING` lors d'un déploiement, arrondi à la baisse à l'entier le plus proche.

 **Placement Templates (Modèles de placement)** - Sélectionnez un modèle de placement de tâche.

Lorsque vous lancez une tâche dans un cluster, Amazon ECS doit déterminer où la placer en fonction des exigences spécifiées dans la définition de tâche, par exemple l'UC et la mémoire. De la même manière, lorsque vous réduisez le nombre de tâches, Amazon ECS doit déterminer quelles tâches doivent être résiliées.

Le modèle de placement contrôle la manière dont les tâches sont lancées dans un cluster :
+ AZ Balanced Spread (Répartition équilibrée par AZ) – Permet de répartir les tâches entre les zones de disponibilité et les instances de conteneur dans la zone de disponibilité.
+ AZ Balanced BinPack  : répartissez les tâches entre les zones de disponibilité et entre les instances de conteneur disposant du moins de mémoire disponible.
+ BinPack - répartissez les tâches en fonction de la quantité minimale de processeur ou de mémoire disponible.
+ One Task Per Host (Une tâche par hôte) – Permet de placer au maximum une tâche du service sur chaque instance de conteneur.

Pour en savoir plus, consultez [Placement des tâches Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html).

## Page Équilibreur de charge d'application
<a name="tkv-deploy-ecs-app-load-balancer"></a>

 **Configure Application Load Balancer (Configurer un équilibreur de charge d'application)** - Cochez cette case pour configurer un équilibreur de charge d'application.

 **Select IAM role for service (Sélectionner un rôle IAM pour le service)** - Sélectionnez un rôle existant ou choisissez **Créer** pour créer un nouveau rôle.

 **Équilibreur de charge** - Sélectionnez un équilibreur de charge existant ou choisissez **Créer** et saisissez le nom du nouvel équilibreur de charge.

 **Port d’écoute** - Sélectionnez un port d'écoute existant ou choisissez **Créer** et saisissez un numéro de port. Le port par défaut, `80`, est approprié pour la plupart des applications web.

 **Groupe cible** - Par défaut, l'équilibreur de charge envoie des demandes à des cibles enregistrées à l'aide du port et du protocole que vous avez spécifiés pour le groupe cible. Vous pouvez remplacer ce port lorsque vous enregistrez chaque cible auprès du groupe cible.

 **Modèle de chemin** - L'équilibreur de charge utilisera le routage basé sur le chemin d'accès. Acceptez la barre oblique `/` par défaut ou indiquez un autre modèle. Le modèle de chemin est sensible à la casse, peut comporter jusqu'à 128 caractères et contient un [jeu de caractères sélectionné](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions).

 **Chemin de vérification de l'état** - Chemin de ping, c'est-à-dire destination des vérifications de l'état sur les cibles. Par défaut, il s'agit de `/`, qui est approprié pour les applications web. Entrez un chemin différent si nécessaire. Si le chemin que vous saisissez n'est pas valide, la vérification de l'état échoue et il est considéré comme non sain.

Si vous déployez plusieurs services et que chacun d'eux est déployé dans un chemin ou un emplacement différent, vous aurez peut-être besoin de chemins de vérification personnalisés.

## Page Définition de tâche ECS
<a name="tkv-deploy-ecs-task-definition"></a>

 **Définition de tâche** - Sélectionnez une définition de tâche existante ou choisissez **Créer** et saisissez le nom de la nouvelle définition de tâche.

 **Conteneur** - Sélectionnez un conteneur existant ou choisissez **Créer** et saisissez le nom du nouveau conteneur.

 **Mémoire (Mio)** - Fournissez des valeurs pour **Limite flexible** et/ou **Limite stricte**.

La *limite flexible* (en MiB) de mémoire à réserver pour le conteneur. Docker tente de conserver la mémoire du conteneur sous la limite flexible. Le conteneur peut consommer davantage de mémoire, jusqu'à la limite stricte spécifiée avec le paramètre de mémoire (le cas échéant), ou la totalité de la mémoire disponible sur l'instance de conteneur, le premier des deux prévalant.

La *limite stricte* (en Mio) de la mémoire à présenter le conteneur. Si votre conteneur tente de dépasser la mémoire spécifiée ici, il sera désactivé.

 **Rôle de tâche** : sélectionnez un rôle de tâche pour un rôle IAM qui autorise le conteneur à appeler en votre nom les éléments spécifiés dans ses politiques associées. AWS APIs Il s'agit de la manière dont les informations d'identification sont transmises à votre application. Découvrez [comment définir les informations d'identification AWS de sécurité pour votre application](deployment-ecs-specify-credentials.md).

 **Port Mapping (Mappage de port)** - Ajoutez, modifiez ou supprimez des mappages de port pour le conteneur. Si un équilibreur de charge est activé, le port hôte est 0 par défaut et l'affectation de port est dynamique.

 **Variables d'environnement** - Ajoutez, modifiez ou supprimez des variables d'environnement pour le conteneur.

Lorsque la configuration vous satisfait, cliquez sur **Publier** pour commencer le processus de déploiement.

## Conteneur de publication vers AWS
<a name="tkv-deploy-ecs-publishing"></a>

Des événements sont affichés pendant le déploiement. L'assistant se ferme automatiquement une fois l'opération terminée avec succès. Pour modifier cela, décochez la case située en bas de la page.

Vous pouvez trouver l'URL de vos nouvelles instances dans l' AWS explorateur. Développez Amazon ECS and Clusters, puis cliquez sur votre cluster.