Création d'une solution groupée d'application - AWS Elastic Beanstalk

Création d'une solution groupée d'application

Lorsque vous utilisez la console AWS Elastic Beanstalk pour déployer une nouvelle application ou une version de l'application, vous avez besoin de télécharger un groupe 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 512 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.

Si vous déployez votre application avec l'interface ligne de commande Elastic Beanstalk, AWS Toolkit pour Eclipse ou AWS Toolkit pour Visual Studio, le fichier ZIP ou WAR sera automatiquement structuré correctement. Pour de plus amples informations, veuillez consulter Utilisation de l'interface de ligne de commande Elastic Beanstalk (EB), Création et déploiement d'applications Java sur Elastic Beanstalk et AWS Toolkit for Visual Studio.

Création d'une solution groupée source à partir de la ligne de commande

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

Création d'une solution groupée source avec Git

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.

Compression de fichiers dans le Finder de Mac OS X ou l'Explorateur Windows

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.

Exemple

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.

Pour compresser des fichiers dans le Finder de Mac OS X

  1. Ouvrez votre dossier de projet de niveau supérieur et sélectionnez tous les fichiers et sous-dossier qui s'y trouvent. Ne sélectionnez pas le dossier de niveau supérieur lui-même.

    
            Fichiers sélectionnés dans le Finder de Mac OS X
  2. Effectuez un clic droit sur les fichiers sélectionnés, puis choisissez Compresser X items, où X correspond au nombre de fichiers et de sous-dossiers que vous avez sélectionnés.

    
            Compression de fichiers dans le Finder de Mac OS X

Pour compresser des fichiers dans l'Explorateur Windows

  1. Ouvrez votre dossier de projet de niveau supérieur et sélectionnez tous les fichiers et sous-dossier qui s'y trouvent. Ne sélectionnez pas le dossier de niveau supérieur lui-même.

    
            Fichiers sélectionnés dans l'Explorateur Windows
  2. Effectuez un clic droit sur les fichiers sélectionnés, choisissez Envoyer vers, puis Compressed (zipped) folder (Dossier compressé).

    
            Compression de fichiers dans l'Explorateur Windows

Création d'une solution groupée source pour une application .NET

Si vous utilisez Visual Studio, vous pouvez utiliser l'outil de déploiement inclus dans AWS Toolkit for Visual Studio pour déployer votre application .NET sur Elastic Beanstalk. Pour plus d'informations, consultez Déploiement d'applications Elastic Beanstalk dans .NET à l'aide de l'outil de déploiement.

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.

    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.

    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

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.

Pour tester l'extraction du fichier dans Mac OS X ou Linux

  1. Ouvrez une fenêtre de terminal (Mac OS X) ou connectez-vous au serveur Linux. Accédez au répertoire qui contient votre groupe source.

  2. A l'aide de la commande unzip ou tar xf, décompressez l'archive.

  3. 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.

    Note

    Si vous utilisez le Finder de Mac OS X pour décompresser l'archive, un dossier de niveau supérieur sera créé, quelle que soit la manière dont vous avez structuré l'archive elle-même. Pour obtenir de meilleurs résultats, utilisez la ligne de commande.

Pour tester l'extraction de fichier sous Windows

  1. Téléchargez ou installez un programme qui vous permet d'extraire des fichiers compressés via la ligne de commande. Par exemple, vous pouvez télécharger le programme gratuit unzip.exe depuis http://stahlforce.com/dev/index.php?tool=zipunzip.

  2. Si nécessaire, copiez le fichier exécutable dans le répertoire qui contient votre groupe source. Si vous avez installé un outil à l'échelle du système, vous pouvez ignorer cette étape.

  3. A l'aide de la commande adéquate, décompressez l'archive. Si vous avez téléchargé unzip.exe à l'aide du lien à l'étape 1, la commande est unzip <archive-name>.

  4. 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.