AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

将 EB CLI 与 Git 配合使用

EB CLI 提供了与 Git 的集成。本部分概述如何将 Git 与 EB CLI 配合使用。

安装 Git 并初始化 Git 存储库

  1. 转至 http://git-scm.com 下载最新版的 Git

  2. 通过键入以下命令初始化您的 Git 存储库:

    ~/eb$ git init

    EB CLI 现在将识别出您的应用程序已设置 Git。

  3. 如果您尚未运行 eb init,请立即运行:

    ~/eb$ eb init

将 Elastic Beanstalk 环境与 Git 分支关联

您可以将不同的环境与各个代码分支关联。在签出分支时,更改将部署到关联的环境。例如,您可以键入以下内容以将生产环境与主分支关联,并将单独的开发环境与开发分支关联:

~/eb$ git checkout master ~/eb$ eb use prod ~/eb$ git checkout develop ~/eb$ eb use dev

部署更改

默认情况下,EB CLI 将在当前分支中部署最新提交,使用提交 ID 和消息分别作为应用程序版本标签和描述。如果要在不提交的情况下部署到环境,可使用 --staged 选项来部署已添加到暂存区域的更改。

在不提交的情况下部署更改

  1. 将新文件和更改后的文件添加到暂存区域:

    ~/eb$ git add .
  2. 使用 eb deploy 部署暂存的更改:

    ~/eb$ eb deploy --staged

如果您已配置 EB CLI 以部署工件,并且未将工件提交到 Git 存储库,则使用 --staged 选项来部署最新版本。

使用 Git 子模块

通过包含 Git 子模块获益的一些代码项目 — 顶级存储库中的存储库。在使用 eb createeb deploy 部署代码时,EB CLI 可在应用程序版本 zip 文件中包含子模块,并将这些子模块与剩余代码一起上传。

您可以使用项目文件夹中的 EB CLI 配置文件 .elasticbeanstalk/config.ymlglobal 部分中的 include_git_submodules 选项来控制子模块的包含。

要包含子模块,请将此选项设置为 true

global: include_git_submodules: true

include_git_submodules 选项缺失或设置为 false 时,EB CLI 不会在上传的 zip 文件中包含子模块。

有关 Git 子模块的更多详细信息,请参阅 Git 工具 - 子模块

默认行为

当您运行 eb init 以配置项目时,EB CLI 会添加 include_git_submodules 选项,并将其设置为 true。这将确保您的部署中包含项目中已有的所有子模块。

EB CLI 并不总是支持包含子模块。为了避免对添加子模块支持之前已存在的项目进行意外的不必要更改,EB CLI 在缺少 include_git_submodules 选项时不包含子模块。如果您拥有这些现有项目之一,并且希望在部署中包含子模块,请添加此选项并将其设置为 true,如本部分中所述。

CodeCommit 行为

Elastic Beanstalk 与 AWS CodeCommit 的集成目前不支持子模块。如果您允许环境与 AWS CodeCommit 集成,子模块将不会包含在部署中。

将 Git 标签分配给您的应用程序版本

您可使用 Git 标签作为您的版本标签来标识正在您的环境中运行的应用程序版本。例如,请键入以下命令:

~/eb$ git tag -a v1.0 -m "My version 1.0"