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

使用 EB CLI 以组的方式管理多个 AWS Elastic Beanstalk 环境

您可以使用 EB CLI 创建环境组,让每个环境分别运行服务导向型架构应用程序的一个独立组件。EB CLI 使用 ComposeEnvironments API 管理此类组。

注意

环境组不同于多容器 Docker 环境中的多个容器。使用环境组,您应用程序的各个组件运行在单独的 Elastic Beanstalk 环境中,具有自己的专用 Amazon EC2 实例集。每个组件可以单独扩展。借助多容器 Docker,您可以将应用程序的多个组件组合成单个环境。所有组件共享相同的一组 Amazon EC2 实例,每个实例运行多个 Docker 容器。根据应用程序的需求,选择这些架构之一。

有关多容器 Docker 的详细信息,请参阅多容器 Docker 环境

将您的应用程序组件组织到以下文件夹结构中:

~/project-name |-- component-a | `-- env.yaml `-- component-b `-- env.yaml

在每个子文件夹中,都包含在自有环境中运行的独立应用程序组件的源代码,以及一个名为 env.yaml 的环境定义文件。有关 env.yaml 格式的详细信息,请参阅环境清单 (env.yaml)

要使用 Compose Environments API,首先要从项目文件夹中运行 eb init,同时利用 --modules 选项通过各组件所在文件夹的名称来指定每个组件。

~/workspace/project-name$ eb init --modules component-a component-b

EB CLI 会提示您配置每个组件,然后在各组件文件夹中创建 .elasticbeanstalk 目录。EB CLI 不会在父目录中创建配置文件。

~/project-name |-- component-a | |-- .elasticbeanstalk | `-- env.yaml `-- component-b |-- .elasticbeanstalk `-- env.yaml

然后,使用要创建的环境的列表运行 eb create 命令,每个组件对应一个环境:

~/workspace/project-name$ eb create --modules component-a component-b --env-group-suffix group-name

此命令会为每个组件创建一个环境。环境名是用连字符将 EnvironmentName 文件中指定的 env.yaml 与组名串联起来得到的。这两个选项加连字符的总长度不得超过 23 个字符的环境名最大长度限制。

要更新环境,请使用 eb deploy 命令:

~/workspace/project-name$ eb deploy --modules component-a component-b

您可以单独更新每个组件,也可以成组更新。可使用 --modules 选项指定要更新的组件。

EB CLI 将您随 eb create 使用的组名称存储在 branch-defaults 下的 EB CLI 配置文件的 /.elasticbeanstalk/config.yml 部分中。要将您的应用程序部署到不同的组,请在运行 --env-group-suffix 时使用 eb deploy 选项。如果指定的组不存在,EB CLI 会创建一个新的环境组。

~/workspace/project-name$ eb deploy --modules component-a component-b --env-group-suffix group-2-name

要终止环境,请在每个模块的文件夹中运行 eb terminate。默认情况下,如果您尝试终止另一正在运行的环境所依赖的环境,EB CLI 会显示一条错误。请先终止依赖环境,或使用 --ignore-links 选项覆盖默认行为。

~/workspace/project-name/component-b$ eb terminate --ignore-links