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

配置 EB CLI

安装 EB CLI 后,就可以运行 eb init 来配置项目目录和 EB CLI 了。

下面的示例说明在名为 eb init 的项目文件夹中首次运行 eb 时的配置步骤。

初始化 EB CLI 项目

  1. 首先,EB CLI 会提示您选择一个区域。键入与要使用的区域对应的编号,然后按 Enter

    ~/eb $ eb init Select a default region 1) us-east-1 : 美国东部(弗吉尼亚北部) 2) us-west-1 : 美国西部(加利福尼亚北部) 3) us-west-2 : 美国西部(俄勒冈) 4) eu-west-1 : 欧洲(爱尔兰) 5) eu-central-1 : 欧洲(法兰克福) 6) ap-south-1 : 亚太地区(孟买) 7) ap-southeast-1 : 亚太区域(新加坡) 8) ap-southeast-2 : 亚太区域(悉尼) 9) ap-northeast-1 : 亚太区域(东京) 10) ap-northeast-2 : 亚太区域(首尔) 11) sa-east-1 : 南美洲(圣保罗) 12) cn-north-1 : 中国(北京) 13) cn-northwest-1 : 中国 (宁夏) 14) us-east-2 : 美国东部(俄亥俄州) 15) ca-central-1 : 加拿大 (中部) 16) eu-west-2 : 欧洲 (伦敦) 17) eu-west-3 : 欧洲 (巴黎) (default is 3): 3
  2. 然后,提供您的访问密钥和私有密钥以便 EB CLI 可以管理资源。访问密钥是在 AWS Identity and Access Management 控制台中创建的。如果您没有密钥,请参阅 Amazon Web Services 一般参考 中的如何获取安全凭证?

    You have not yet set up your credentials or your credentials are incorrect. You must provide your credentials. (aws-access-id): AKIAJOUAASEXAMPLE (aws-secret-key): 5ZRIrtTM4ciIAvd4EXAMPLEDtm+PiPSzpoK
  3. Elastic Beanstalk 中的应用程序是资源,其中包含一组与单个 Web 应用程序关联的应用程序版本 (源)、环境和保存的配置。每次您使用 EB CLI 将源代码部署到 Elastic Beanstalk 时,都会创建一个新的应用程序版本并将其添加到列表中。

    Select an application to use 1) [ Create new Application ] (default is 1): 1
  4. 默认应用程序名是您在其中运行 eb init 的文件夹的名称。输入可描述项目的任意名称。

    Enter Application Name (default is "eb"): eb Application eb has been created.
  5. 选择与您的 Web 应用程序的开发语言或框架相符的平台。如果您尚未开始开发应用程序,请选择您喜欢的平台。您将很快了解如何启动示例应用程序,并且以后随时可以更改该设置。

    Select a platform. 1) Node.js 2) PHP 3) Python 4) Ruby 5) Tomcat 6) IIS 7) Docker 8) Multi-container Docker 9) GlassFish 10) Go 11) Java (default is 1): 1
  6. 选择 yes (是) 以将 SSH 密钥对分配给 Elastic Beanstalk 环境中的实例。这允许您直接连接到它们以进行故障排除。

    Do you want to set up SSH for your instances? (y/n): y
  7. 选择现有密钥对或创建新密钥对。要使用 eb init 创建新的密钥对,ssh-keygen 必须已在本地计算机上安装且能够从命令行访问。EB CLI 向 Amazon EC2 注册新的密钥对,并将私有密钥存储在用户目录中名为 .ssh 的本地文件夹中。

    Select a keypair. 1) [ Create new KeyPair ] (default is 1): 1

您的 EB CLI 安装现已配置,可以使用。有关创建和使用 Elastic Beanstalk 环境的说明,请参阅使用 EB CLI 管理 Elastic Beanstalk 环境

使用 .ebignore 忽略文件

您可将 .ebignore 文件添加到目录中,告知 EB CLI 忽略您的项目目录中的某些文件。此文件的作用与 .gitignore 类似。当您将项目目录部署到 Elastic Beanstalk 并创建新的应用程序版本时,EB CLI 不会将 .ebignore 指定的文件包含在其创建的源包中。

如果 .ebignore 不存在,但存在 .gitignore,EB CLI 将忽略 .gitignore 中指定的文件。如果存在 .ebignore,EB CLI 将不会读取 .gitignore

如果 .ebignore 存在,EB CLI 不会使用 git 命令创建您的源包。这就意味着 EB CLI 将忽略 .ebignore 中指定的文件,并包括所有其他文件。具体而言,它会包括未提交的源文件。

注意

在 Windows 中,在创建源包时添加 .ebignore 将导致 EB CLI 访问符号链接并包含链接的文件。这是一个已知问题,将在未来的更新中得到修复。

使用命名配置文件

如果将凭证作为命名配置文件存储在 credentialsconfig 文件中,则可使用 --profile 选项显式指定配置文件。例如,以下命令将使用 user2 配置文件创建新应用程序。

$ eb init --profile user2

您也可以通过设置 AWS_EB_PROFILE 环境变量更改默认配置文件。设置此变量后,EB CLI 从指定的配置文件而不是 defaulteb-cli 读取凭证。

Linux, OS X, or Unix

$ export AWS_EB_PROFILE=user2

Windows

> set AWS_EB_PROFILE=user2

部署工件而不是项目文件夹

通过将以下行添加到项目文件夹中的 .elasticbeanstalk/config.yml,可以告诉 EB CLI 部署在单独构建过程中生成的 ZIP 文件或 WAR 文件。

deploy: artifact: path/to/buildartifact.zip

如果您在 Git 存储库中配置了 EB CLI,但未将工件提交到源,请使用 --staged 选项部署最新内部版本。

~/eb$ eb deploy --staged

配置设置和优先顺序

EB CLI 使用提供程序链 在很多不同位置查找 AWS 凭证,包括系统或用户环境变量以及本地 AWS 配置文件。

EB CLI 按以下顺序查找凭证和配置设置:

  1. 命令行选项 – 使用 --profile 指定命名配置文件来覆盖默认设置。

  2. 环境变量AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

  3. AWS 凭证文件 – 在 Linux 和 OS X 系统上位于 ~/.aws/credentials,在 Windows 系统上位于 C:\Users\USERNAME\.aws\credentials。除默认配置文件外,此文件还可包含多个命名配置文件。

  4. AWS CLI 配置文件 – 在 Linux 和 OS X 系统上位于 ~/.aws/config,在 Windows 系统上位于 C:\Users\USERNAME\.aws\config。此文件可以包含默认配置文件、命名配置文件和各自的 AWS CLI 特定配置参数。

  5. 传统 EB CLI 配置文件 – 在 Linux 和 OS X 系统上位于 ~/.elasticbeanstalk/config,在 Windows 系统上位于 C:\Users\USERNAME\.elasticbeanstalk\config

  6. 实例配置文件凭证 – 这些凭证可以通过分配的实例角色用于 Amazon EC2 实例,并通过 Amazon EC2 元数据服务进行提供。实例配置文件必须有权使用 Elastic Beanstalk。

如果凭证文件包含名为“eb-cli”的命名配置文件,则 EB CLI 优先选择该配置文件而不是默认配置文件。如果未找到配置文件或找到配置文件但无权使用 Elastic Beanstalk,则 EB CLI 会提示您输入密钥。

实例元数据

要从 Amazon EC2 实例使用 EB CLI,请创建一个对所需资源有访问权限的角色,然后在实例启动时将该角色分配给实例。启动实例并使用 pip 安装 EB CLI。

~$ sudo pip install awsebcli

pip 预安装在 Amazon Linux 上。

EB CLI 将从实例元数据读取凭证。有关更多信息,请参阅IAM 用户指南 中的向 Amazon EC2 实例中运行的应用程序授予访问 AWS 资源的权限