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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

您可以使用 EB CLI 创建一组 AWS Elastic Beanstalk 环境,每个环境运行面向服务的架构应用程序的一个单独组件。EB CLI 使用 ComposeEnvironments API 管理此类组。

注意

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

有关多容器 Docker 的详细信息,请参阅在 Elastic Beanstalk 中使用 ECS 托管 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