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

使用 Elastic Beanstalk 保存的配置

您可将环境的配置作为对象保存在 Amazon S3 中,以便在创建环境时应用于其他环境,或应用于正在运行的环境。保存的配置 是 YAML 格式的模板,用于定义环境的平台版本配置选项设置和标记。

在 Elastic Beanstalk 管理控制台中,从环境的当前状态创建保存的配置。

保存环境的配置

  1. 打开 Elastic Beanstalk 控制台

  2. 导航到您的环境的管理页

  3. 选择 Actions (操作),然后选择 Save Configuration (保存配置)

  4. 键入配置名称和描述,然后选择 Save (保存)

保存的配置包括已应用于具有控制台的环境或任何其他使用 Elastic Beanstalk API 的客户端的任何设置。您可以稍后将保存的配置应用于您的环境以将它还原为上一个状态,也可以在创建环境期间将保存的配置应用于新环境。

您可以使用 EB CLI eb config 命令下载配置,如以下示例所示:NAME 是保存的配置的名称。

eb config get NAME

在环境创建过程中应用保存的配置 (AWS 管理控制台)

  1. 打开 Elastic Beanstalk 控制台

  2. 选择应用程序。

  3. 选择保存的配置

  4. 选择已保存的配置,然后选择启动环境

  5. 继续执行向导以创建环境。

保存的配置不包括已与应用程序源代码中的配置文件一起应用的设置。如果在配置文件和保存的配置中应用相同的设置,则保存的配置中的设置优先。同样,在 AWS 管理控制台 中指定的选项将覆盖保存的配置中的选项。有关更多信息,请参阅优先顺序

保存的配置存储在 Elastic Beanstalk S3 存储桶中按照应用程序命名的文件夹中。例如,对于账号 123456789012,us-west-2 区域中名为 my-app 的应用程序的配置位于 s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app/

通过在文本编辑器中打开保存的配置,可以查看其内容。以下示例配置显示使用 Elastic Beanstalk 管理控制台启动的 Web 服务器环境的配置。

EnvironmentConfigurationMetadata: Description: Saved configuration from a multicontainer Docker environment created with the Elastic Beanstalk Management Console DateCreated: '1520633151000' DateModified: '1520633151000' Platform: PlatformArn: arn:aws-cn:elasticbeanstalk:us-west-2::platform/Java 8 running on 64bit Amazon Linux/2.5.0 OptionSettings: aws:elasticbeanstalk:command: BatchSize: '30' BatchSizeType: Percentage aws:elasticbeanstalk:sns:topics: Notification Endpoint: me@example.com aws:elb:policies: ConnectionDrainingEnabled: true ConnectionDrainingTimeout: '20' aws:elb:loadbalancer: CrossZone: true aws:elasticbeanstalk:environment: ServiceRole: aws-elasticbeanstalk-service-role aws:elasticbeanstalk:application: Application Healthcheck URL: / aws:elasticbeanstalk:healthreporting:system: SystemType: enhanced aws:autoscaling:launchconfiguration: IamInstanceProfile: aws-elasticbeanstalk-ec2-role InstanceType: t2.micro EC2KeyName: workstation-uswest2 aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateType: Health RollingUpdateEnabled: true EnvironmentTier: Type: Standard Name: WebServer AWSConfigurationTemplateVersion: 1.1.0.0 Tags: Cost Center: WebApp Dev

您可修改保存的配置的内容并将其保存在 Amazon S3 中的同一位置。存储在正确位置的任何格式正确的保存的配置均可使用 Elastic Beanstalk 管理控制台应用于环境。

支持以下键。

  • AWSConfigurationTemplateVersion(必需)– 配置模板版本 (1.1.0.0)。

    AWSConfigurationTemplateVersion: 1.1.0.0
  • 平台 – 环境的平台版本的 Amazon 资源名称 (ARN)。您可以按 ARN 或解决方案堆栈名称指定平台。

    Platform: PlatformArn: arn:aws-cn:elasticbeanstalk:us-west-2::platform/Java 8 running on 64bit Amazon Linux/2.5.0
  • SolutionStack – 用于创建环境的解决方案堆栈的全名。

    SolutionStack: 64bit Amazon Linux 2017.03 v2.5.0 running Java 8
  • OptionSettings – 要应用到环境的配置选项设置。例如,下面的条目将实例类型设为 t2.micro。

    OptionSettings: aws:autoscaling:launchconfiguration: InstanceType: t2.micro
  • Tags – 多达 47 个标签,应用于在环境中创建的资源。

    Tags: Cost Center: WebApp Dev
  • EnvironmentTier – 要创建的环境的类型。对于 Web 服务器环境,您可不包含此部分 (Web 服务器为默认值)。对于工作线程环境,请使用以下设置。

    EnvironmentTier: Name: Worker Type: SQS/HTTP
  • CName – 环境的别名记录。在名称末尾包含一个 + 号以启用组。

    CName: front-A08G28LG+
  • EnvironmentName – 要创建的环境的名称。在名称末尾包含一个 + 号以启用组。

    EnvironmentName: front+

    如果启用组,则在创建环境时必须指定组名称。Elastic Beanstalk 使用连字符将组名称追加到环境名称。例如,对于环境名称 front+ 和组名称 dev,Elastic Beanstalk 会创建名为 front-dev 的环境。

  • EnvironmentLinks – 变量名称与依赖项环境名称的映射。下面的示例使 worker+ 环境成为依赖项并告知 Elastic Beanstalk 将链接信息保存到名为 WORKERQUEUE 的变量。

    EnvironmentLinks: "WORKERQUEUE" : "worker+"

    链接变量的值因被链接环境的类型而异。对于 Web 服务器环境,链接为环境的别名记录。对于工作线程环境,链接为环境的 Amazon SQS 队列的名称。

CNameEnvironmentNameEnvironmentLinks 键可用于创建环境组指向其他环境的链接。在使用 EB CLI、AWS CLI 或软件开发工具包时,这些功能当前受支持。在使用这些功能时,您可将保存的配置作为环境清单包含在源代码中,而不是引用 Amazon S3 中存储的保存的配置。有关更多信息,请参阅相应主题。

有关创建和应用保存的配置的替代方法,请参阅下列主题。