建立 Elastic Beanstalk 應用程式來源套件 - AWS Elastic Beanstalk

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立 Elastic Beanstalk 應用程式來源套件

本主題說明如何在來源套件中將應用程式來源檔案上傳至 Elastic Beanstalk。它說明了來源套件的要求、結構和建立資源套件的方法。

當您使用 AWS Elastic Beanstalk 主控台部署新的應用程式或應用程式版本時,您需要在來源套件 中上傳應用程式的 檔案。您的原始碼套件必須符合下列要求:

  • 內含單一 ZIP 檔案或 WAR 檔案 (您可於 WAR 檔案納入多個 ZIP 檔案)

  • 不超過 500 MB

  • 不含父資料夾或最上層目錄 (可包含子目錄)

若您想要部署會定期處理背景任務的工作者應用程式,您的應用程式原始碼套件務必納入 cron.yaml 檔案。如需詳細資訊,請參閱周期性任務

如果您使用 Elastic Beanstalk 命令列介面 (EBCLI)、 AWS Toolkit for Eclipse 或 AWS Toolkit for Visual Studio 部署應用程式,則 ZIP或 WAR 檔案會自動正確建構。如需詳細資訊,請參閱使用 Elastic Beanstalk 指令列介面 (EB) CLI使用 Elastic Beanstalk 部署 Java 應用程式AWS Toolkit for Visual Studio

自命令列建立原始碼套件

使用 zip 命令來建立原始碼套件。欲包含隱藏檔案和資料夾,需使用的模式如下。

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

如此可確保 Elastic Beanstalk 組態檔案與其他以句點 (.) 為首的檔案和資料夾,均包含在封存中。

以 Tomcat Web 應用程式而言,請使用 jar 來建立 Web 封存檔。

~/myapp$ jar -cvf myapp.war .

上述命令納入的隱藏檔案,可能會增加原始碼套件不必要的大小。如需其他控制,請使用更詳細的檔案模式,或透過 Git 建立您的原始碼套件

透過 Git 建立原始碼套件

若您透過 Git 管理您的應用程式原始碼,請使用 git archive 命令來建立您的原始碼套件。

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

git archive 僅納入存放於 Git 的檔案,且會排除忽略檔案和 Git 檔案,如此將盡可能減少原始碼套件的大小。如需詳細資訊,請前往 git-archive 手冊頁面

於 Mac OS X Finder 或 Windows 檔案總管壓縮檔案

當您於 Mac OS X Finder 或 Windows 檔案總管建立 ZIP 檔案,請確保您壓縮的是檔案和子資料夾本身,而非壓縮父資料夾。

注意

Mac OS X 和 Linux 作業系統上的圖形使用者介面 (GUI) 不會顯示名稱開頭為句點 (.) 的檔案和資料夾。如果ZIP檔案必須包含隱藏的資料夾,例如 ,請使用命令列而不是 GUI來壓縮應用程式.ebextensions。如需於 Mac OS X 或 Linux 作業系統上透過命令列程序建立 ZIP 檔案的詳細資訊,請參閱 自命令列建立原始碼套件

範例

假設您有一個標記為 myapp 的 Python 專案資料夾,其中包含下列檔案和子資料夾:

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

如上列要求,您壓縮的原始碼套件不得包含父資料夾,因此其解壓縮後的結構,不會出現額外的最上層目錄。在此範例中,檔案解壓縮時不應建立 myapp 資料夾 (,或者,不應於命令列將 myapp 區段新增至檔案路徑)。

本主題全程採用此範例檔案結構,藉此說明如何壓縮檔案。

為 .NET 應用程式建立來源套件

如果您使用 Visual Studio,您可以使用 中包含的部署工具 AWS Toolkit for Visual Studio ,將 .NET 應用程式部署至 Elastic Beanstalk。如需詳細資訊,請參閱在中部署 Elastic Beanstalk 應用程式。 NET使用部署工具

如果您需要手動為 .NET 應用程式建立來源套件,則無法僅建立包含專案目錄ZIP的檔案。您必須為您的專案建立能夠部署至 Elastic Beanstalk 的 Web 部署套件。建立部署套件可採用多種方法:

  • 使用 Visual Studio 內的 Publish Web (發佈 Web) 精靈,藉此建立部署套件。如需詳細資訊,請前往 How to: Create a Web Deployment Package in Visual Studio

    重要

    建立 Web 部署套件時,Site name (網站名稱) 開頭必須為 Default Web Site

  • 如果您有 .NET 專案,您可以使用 msbuild命令建立部署套件,如下列範例所示。

    重要

    DeployIisAppPath 參數開頭必須為 Default Web Site

    C:/> msbuild <web_app>.csproj /t:Package /p:DeployIisAppPath="Default Web Site"
  • 如果您有網站專案,您可以使用 IIS Web Deploy 工具來建立部署套件。如需詳細資訊,請前往 Packaging and Restoring a Web site

    重要

    apphostconfig 參數開頭必須為 Default Web Site

如果您要部署多個應用程式或 ASP。NET 核心應用程式,將您的.ebextensions資料夾與應用程式套件和資訊清單檔案並列放在來源套件的根中:

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

測試您的原始碼套件

建議您先於本機測試來源套件,之後再上傳至 Amazon Elastic Beanstalk。由於 Elastic Beanstalk 基本上使用命令列來擷取檔案,因此最好從命令列執行測試,而不是使用GUI工具。

請確認解壓縮的檔案與封存檔出現在相同的資料夾,而非在新的最上層資料夾或目錄。