本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 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工具。
請確認解壓縮的檔案與封存檔出現在相同的資料夾,而非在新的最上層資料夾或目錄。