Crea un bundle di sorgenti dell'applicazione Elastic Beanstalk - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea un bundle di sorgenti dell'applicazione Elastic Beanstalk

Questo argomento spiega come caricare i file sorgente dell'applicazione su Elastic Beanstalk in un pacchetto sorgente. Spiega i requisiti di un pacchetto sorgente, la struttura e gli approcci per crearne uno.

Quando si utilizza la AWS Elastic Beanstalk console per distribuire una nuova applicazione o una versione dell'applicazione, è necessario caricare i file dell'applicazione in un bundle di origine. Il tuo bundle di origine deve soddisfare i seguenti requisiti:

  • Deve essere costituito da un singolo file ZIP o dal file WAR (puoi includere più file WAR all'interno del file ZIP)

  • Non superare i 500 MB

  • Non includere una cartella padre o una directory di livello superiore (le sottodirectory vanno bene)

Se desideri distribuire un'applicazione lavoratore che elabora attività periodiche in background, il tuo bundle di origine dell'applicazione deve anche includere un file cron.yaml. Per ulteriori informazioni, consulta Attività periodiche.

Se stai distribuendo l'applicazione con Elastic Beanstalk Command Line Interface CLI (EB), Toolkit AWS for Eclipse o Toolkit AWS for Visual Studio, il file or verrà strutturato automaticamente correttamente. ZIP WAR Per ulteriori informazioni, consulta Utilizzo dell'interfaccia a riga di comando (EB) di Elastic Beanstalk CLI, Distribuzione di applicazioni Java con Elastic Beanstalk e Il AWS Toolkit for Visual Studio.

Creazione di un bundle di origine dalla riga di comando

Creazione di un bundle di origine tramite il comando zip. Per includere file e cartelle nascosti, utilizza un modello come il seguente.

~/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%)

Così facendo ci si assicura che i file di configurazione di Elastic Beanstalk e altri file e cartelle che iniziano con un punto siano inclusi nell'archivio.

Per le applicazioni Web Tomcat, utilizza jar per creare un archivio Web.

~/myapp$ jar -cvf myapp.war .

I comandi precedenti includono i file nascosti che potrebbe aumentare la dimensione del tuo bundle di origine inutilmente. Per un maggiore controllo, utilizza un modello di file più dettagliato, oppure crea il tuo bundle di origine con Git.

Creazione di un bundle di origine con Git

Se usi Git per gestire il codice sorgente della tua applicazione, utilizza il comando git archive per creare il bundle di origine.

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

git archive include solo i file che sono archiviati in git ed esclude i file ignorati e i file git. Questo ti aiuta a mantenere il tuo bundle di origine il più piccolo possibile. per ulteriori informazioni visita la pagina del manuale git-archive.

Compressione dei file in Mac OS X Finder o in Windows Explorer

Quando crei un file ZIP in Mac OS X Finder o Windows Explorer, assicurati di comprimere i file e le sottocartelle, invece di comprimere la cartella padre.

Nota

L'interfaccia utente grafica (GUI) nei sistemi operativi basati su Mac OS X e Linux non visualizza file e cartelle con nomi che iniziano con un punto (.). Utilizzate la riga di comando anziché la GUI per comprimere l'applicazione se il ZIP file deve includere una cartella nascosta, ad esempio. .ebextensions Per le procedure a riga di comando per creare un file ZIP su Mac OS X o su un sistema operativo basato su Linux, vedi Creazione di un bundle di origine dalla riga di comando.

Esempio

Supponiamo che tu abbia una cartella del progetto Python denominata myapp, che comprende i seguenti file e sottocartelle:

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

Come indicato nell'elenco dei requisiti qui sopra, il tuo bundle di origine deve essere compresso senza una cartella padre, in modo che la sua struttura decompressa non includa una directory con un ulteriore livello superiore. In questo esempio, non deve essere creata una cartella myapp quando i file vengono decompressi (o, alla riga di comando, nessun segmento myapp deve essere aggiunto ai percorsi dei file).

Questo esempio di struttura di file viene utilizzato in questo argomento per illustrare come comprimere i file.

Creazione di un pacchetto sorgente per un. NETapplicazione

Se usi Visual Studio, puoi utilizzare lo strumento di distribuzione incluso in AWS Toolkit for Visual Studio per distribuire il tuo. NETapplicazione su Elastic Beanstalk. Per ulteriori informazioni, consulta Distribuzione di applicazioni Elastic Beanstalk in. NETutilizzando lo strumento di distribuzione.

Se devi creare manualmente un pacchetto sorgente per il tuo. NETapplicazione, non è possibile creare semplicemente un ZIP file che contenga la directory del progetto. È necessario creare un pacchetto di distribuzione Web per il tuo progetto idoneo alla distribuzione su Elastic Beanstalk. Esistono diversi metodi per creare un pacchetto di distribuzione:

  • Crea il pacchetto di distribuzione utilizzando la procedura guidata Publish Web (Pubblicazione Web) in Visual Studio. Per ulteriori informazioni, andare su Come creare un pacchetto di distribuzione Web in Visual Studio.

    Importante

    Quando crei il pacchetto di distribuzione Web, è necessario iniziare il Site name (Nome del sito) con Default Web Site.

  • Se hai un. NETproject, è possibile creare il pacchetto di distribuzione utilizzando il msbuild comando come illustrato nell'esempio seguente.

    Importante

    Il parametro DeployIisAppPath deve iniziare con Default Web Site.

    C:/> msbuild <web_app>.csproj /t:Package /p:DeployIisAppPath="Default Web Site"
  • Se si dispone di un progetto di sito Web, è possibile utilizzare lo strumento IIS Web Deploy per creare il pacchetto di distribuzione. Per ulteriori informazioni, consulta la pagina relativa a creazione del pacchetto e ripristino di un sito Web.

    Importante

    Il parametro apphostconfig deve iniziare con Default Web Site.

Se stai distribuendo più applicazioni o un. ASP NETApplicazione principale, inserisci la .ebextensions cartella nella radice del pacchetto sorgente, accanto ai bundle dell'applicazione e al file manifest:

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

Test del bundle di origine

Può essere opportuno testare il tuo bundle di origine in locale prima di caricarlo su Elastic Beanstalk. Poiché Elastic Beanstalk utilizza essenzialmente la riga di comando per estrarre i file, è meglio eseguire i test dalla riga di comando anziché con uno strumento. GUI

Verifica che i file decompressi appaiano nella stessa cartella dell'archivio, invece che in una nuova cartella o directory di primo livello.