

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.

# Création d'un bundle de sources d'applications Elastic Beanstalk
<a name="applications-sourcebundle"></a>

Cette rubrique explique comment télécharger les fichiers source de votre application vers Elastic Beanstalk dans un bundle de sources. Il explique les exigences d'un ensemble de sources, sa structure et les approches pour en créer un.

Lorsque vous utilisez la AWS Elastic Beanstalk console pour déployer une nouvelle application ou une version d'application, vous devez télécharger les fichiers de l'application dans un *bundle source*. Votre groupe source doit répondre aux critères suivants : 
+ Se compose d'un seul fichier `ZIP` ou fichier `WAR` (vous pouvez inclure plusieurs fichiers `WAR` à l'intérieur de votre fichier `ZIP`)
+ Ne dépasse pas 62,5 Mo
+ N'inclut pas un dossier parent ou un répertoire de niveau supérieur (sous-répertoires acceptés)

Si vous souhaitez déployer une application de travail qui traite des tâches en arrière-plan de façon périodique, votre groupe source d'application doit également inclure un fichier `cron.yaml`. Pour de plus amples informations, veuillez consulter [Tâches périodiques](using-features-managing-env-tiers.md#worker-periodictasks).

Si vous déployez votre application à l'aide de l'interface de ligne de commande Elastic Beanstalk (EB CLI), du Toolkit AWS for Eclipse ou du Toolkit for AWS Visual Studio, le fichier ZIP ou WAR sera automatiquement structuré correctement. Pour plus d’informations, consultez [Configuration de l'interface de ligne de commande EB (EB CLI) pour gérer Elastic Beanstalk](eb-cli3.md), [Déploiement d'applications Java avec Elastic Beanstalk](create_deploy_Java.md) et [Le AWS Toolkit for Visual Studio](dotnet-toolkit.md).

**Topics**
+ [Création d'une solution groupée source à partir de la ligne de commande](#using-features.deployment.source.commandline)
+ [Création d'une solution groupée source avec Git](#using-features.deployment.source.git)
+ [Compression de fichiers dans le Finder de Mac OS X ou l'Explorateur Windows](#using-features.deployment.source.gui)
+ [Création d'une solution groupée source pour une application .NET](#using-features.deployment.source.dotnet)
+ [Test de votre solution groupée source](#using-features.deployment.source.test)

## Création d'une solution groupée source à partir de la ligne de commande
<a name="using-features.deployment.source.commandline"></a>

Créer un bundle de fichiers source à l'aide de la commande `zip`. Pour inclure les fichiers et les dossiers cachés, utilisez un schéma semblable au suivant.

```
~/myapp$ zip ../myapp.zip -r * .[^.]*
  adding: app.js (deflated 63%)
  adding: index.js (deflated 44%)
  adding: manual.js (deflated 64%)
  adding: package.json (deflated 40%)
  adding: restify.js (deflated 85%)
  adding: .ebextensions/ (stored 0%)
  adding: .ebextensions/xray.config (stored 0%)
```

Cela permet de garantir que les [fichiers de configuration](ebextensions.md) Elastic Beanstalk et d'autres fichiers et dossiers qui commencent par un point sont inclus dans l'archive.

Pour les applications web Tomcat, utilisez `jar` pour créer une archive web.

```
~/myapp$ jar -cvf {{myapp}}.war .
```

Les commandes ci-dessus incluent des fichiers masqués qui peuvent augmenter la taille du bundle de fichiers source inutilement. Pour plus de contrôle, utilisez un modèle de fichier plus détaillé ou [créez votre bundle source avec Git](#using-features.deployment.source.git).

## Création d'une solution groupée source avec Git
<a name="using-features.deployment.source.git"></a>

Si vous utilisez Git pour gérer le code source de votre application, utilisez la commande `git archive` pour créer votre groupe source.

```
$ git archive -v -o {{myapp}}.zip --format=zip HEAD
```

`git archive` comprend uniquement les fichiers qui sont stockés dans Git, et exclut les fichiers ignorés et Git. Cela vous aide à conserver un bundle de fichiers source le plus petit possible. Pour plus d'informations, consultez la [page de manuel git-archive](http://git-scm.com/docs/git-archive).

## Compression de fichiers dans le Finder de Mac OS X ou l'Explorateur Windows
<a name="using-features.deployment.source.gui"></a>

Lorsque vous créez un fichier `ZIP` dans le Finder de Mac OS X ou l'Explorateur Windows, assurez-vous de compresser les fichiers et les sous-dossiers eux-mêmes, plutôt que de compresser le dossier parent. 

**Note**  
L'interface utilisateur graphique (GUI) sur les systèmes d'exploitation basés sur Mac OS X et sur Linux n'affiche pas les fichiers et les dossiers dont les noms commencent par un point (.). Utilisez la ligne de commande au lieu de l'interface utilisateur graphique pour compresser votre application si le fichier `ZIP` doit inclure un dossier masqué, comme `.ebextensions`. Pour que les procédures de ligne de commande créent un fichier `ZIP` sur un système d'exploitation basé sur Linux ou sur Mac OS X, consultez [Création d'une solution groupée source à partir de la ligne de commande](#using-features.deployment.source.commandline).

**Example**  
Supposons que vous avez un dossier de projet Python intitulé `myapp` qui inclut les fichiers et les sous-dossiers suivants :   

```
myapplication.py
README.md
static/
static/css
static/css/styles.css
static/img
static/img/favicon.ico
static/img/logo.png
templates/
templates/base.html
templates/index.html
```
Comme indiqué dans la liste des exigences ci-dessus, votre groupe source doit être compressé sans un dossier parent, afin que sa structure décompressée n'inclue pas un répertoire supplémentaire de niveau supérieur. Dans cet exemple, aucun dossier `myapp` ne doit être créé lorsque les fichiers sont décompressés (ou, dans la ligne de commande, aucun segment `myapp` ne doit être ajouté aux chemins d'accès aux fichiers).   
Cet exemple de structure de fichiers est utilisé dans cette rubrique pour illustrer comment compresser des fichiers.

## Création d'une solution groupée source pour une application .NET
<a name="using-features.deployment.source.dotnet"></a>

Si vous utilisez Visual Studio, vous pouvez utiliser l'outil de déploiement inclus dans le AWS Toolkit for Visual Studio pour déployer votre application .NET sur Elastic Beanstalk. Pour de plus amples informations, veuillez consulter [Déploiement d'applications Elastic Beanstalk dans .NET à l'aide d'outils de déploiement AWS](deploy_NET_standalone_tool.md).

Si vous avez besoin de créer manuellement un groupe source pour votre application .NET, vous ne pouvez pas créer simplement un fichier `ZIP` contenant le répertoire du projet. Vous devez créer un package de déploiement web pour votre projet convenant pour le déploiement sur Elastic Beanstalk. Il existe plusieurs méthodes que vous pouvez utiliser pour créer un package de déploiement :
+ Créez le package de déploiement à l'aide de l'assistant **Publier le site Web** dans Visual Studio. Pour de plus amples informations, veuillez consulter [Comment : créer un Package de déploiement Web dans Visual Studio](http://msdn.microsoft.com/en-us/library/dd465323.aspx).
**Important**  
Lorsque vous créez le package de déploiement web, le **nom du site** doit commencer par `Default Web Site`.
+ Si vous avez un projet .NET, vous pouvez créer le package de déploiement à l'aide de la commande **msbuild**, comme illustré dans l'exemple suivant. 
**Important**  
Le paramètre `DeployIisAppPath` doit commencer par `Default Web Site`.

  ```
  C:/> msbuild {{<web_app>.csproj}} /t:Package /p:DeployIisAppPath="Default Web Site"
  ```
+ Si vous avez un projet de site web, vous pouvez utiliser l'outil Web Deploy IIS pour créer le package de déploiement. Pour plus d'informations, consultez [Packaging and Restoring a Web site](http://www.iis.net/learn/publish/using-web-deploy/packaging-and-restoring-a-web-site).
**Important**  
Le paramètre `apphostconfig` doit commencer par `Default Web Site`.

Si vous déployez plusieurs applications ou une application ASP.NET Core, placez votre dossier `.ebextensions` à la racine de votre bundle de fichiers source, côte à côte avec les ensembles d'applications et le fichier manifeste :

```
~/workspace/source-bundle/
|-- .ebextensions
|   |-- environmentvariables.config
|   `-- healthcheckurl.config
|-- AspNetCore101HelloWorld.zip
|-- AspNetCoreHelloWorld.zip
|-- aws-windows-deployment-manifest.json
`-- VS2015AspNetWebApiApp.zip
```

## Test de votre solution groupée source
<a name="using-features.deployment.source.test"></a>

Vous pouvez souhaiter tester votre groupe source localement avant de le télécharger dans Elastic Beanstalk. Étant donné qu'Elastic Beanstalk utilise essentiellement la ligne de commande pour extraire les fichiers, il est préférable de réaliser vos tests à partir de la ligne de commande, plutôt qu'avec un outil GUI. 

Assurez-vous que les fichiers décompressés s'affichent dans le même dossier que l'archive elle-même, plutôt que dans un nouveau répertoire ou dossier de niveau supérieur.