本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 Elastic Beanstalk 应用程序源包
本主题介绍如何将应用程序源文件上传到源包中的 Elastic Beanstalk。它介绍了源包的要求、结构以及创建源包的方法。
当您使用 AWS Elastic Beanstalk 控制台部署新的应用程序或应用程序版本时,您需要将应用程序的文件上传到源包中。源包必须符合以下要求:
-
由单个
ZIP
文件或WAR
文件组成 (您可以在WAR
文件中包含多个ZIP
文件) -
不超过 500 MB
-
不包含父文件夹或顶级目录 (可包含子目录)
如果您要部署处理定期后台任务的工作线程应用程序,您的应用程序源包还必须包括一个 cron.yaml
文件。有关更多信息,请参阅 定期任务。
如果您使用 Elastic Beanstalk Command Line Interface (EB CLI)、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
文件必须包含隐藏文件夹 (如 .ebextensions
),应使用命令行而不是 GUI 来压缩应用程序。有关在 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) 向导创建部署包。有关更多信息,请转至如何:在 Visual Studio 中创建 Web 部署程序包
。 重要
创建 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 部署工具创建部署包。有关更多信息,请参阅打包和还原网站
。 重要
apphostconfig
参数必须以Default Web Site
开头。
如果您要部署多个应用程序或 ASP.NET Core 应用程序,请将 .ebextensions
文件夹放在源包的根目录中,与应用程序包和清单文件并排放置:
~/workspace/source-bundle/
|-- .ebextensions
| |-- environmentvariables.config
| `-- healthcheckurl.config
|-- AspNetCore101HelloWorld.zip
|-- AspNetCoreHelloWorld.zip
|-- aws-windows-deployment-manifest.json
`-- VS2015AspNetWebApiApp.zip
测试源包
您可能需要先本地对源包进行测试,然后再将其上传到 Elastic Beanstalk。由于 Elastic Beanstalk 基本上使用命令行提取文件,因此最好是从命令行(而不是使用 GUI 工具)进行测试。
确保解压缩的文件出现在与存档本身相同的文件夹中,而不是出现在新的顶级文件夹或目录中。