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

使用 AWS Elastic Beanstalk Ruby 平台

AWS Elastic Beanstalk Ruby 平台是一组环境配置,适用于可在 Puma 或 Passenger 应用程序服务器下的 nginx 代理服务器后方运行的 Ruby Web 应用程序。每个配置对应于一个 Ruby 版本。

Elastic Beanstalk 提供配置选项,可供您用于自定义在 Elastic Beanstalk 环境中的 EC2 实例上运行的软件。您可以配置应用程序所需的环境变量并启用到 Amazon S3 的日志轮换。该平台还预定义了一些与 Rails 和 Rack 相关的常见环境变量,便于发现和使用。

在 AWS 管理控制台中提供了平台特定的配置选项,可用于修改运行环境的配置。要避免在终止环境时丢失环境配置,可以使用保存的配置来保存您的设置,并在以后将这些设置应用到其他环境。

要保存源代码中的设置,您可以包含配置文件。在您每次创建环境或部署应用程序时,会应用配置文件中的设置。您还可在部署期间使用配置文件来安装程序包、运行脚本以及执行其他实例自定义操作。

如果使用了 RubyGems,您可以将 Gemfile 文件包含在源包中以在部署期间安装程序包。

AWS 管理控制台中应用的设置覆盖配置文件中的相同设置(如果存在)。这让您可以在配置文件中包含默认设置,并使用控制台中的特定环境设置加以覆盖。如需了解有关优先顺序和其他设置更改方法的更多信息,请参阅配置选项

配置 Ruby 环境

您可以使用 AWS 管理控制台启用到 Amazon S3 的日志轮换并配置应用程序可从该环境中读取的变量。

访问相应环境的软件配置设置

  1. 打开 Elastic Beanstalk 控制台

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

  3. 选择 Configuration

  4. Software 配置卡上,选择 Modify

日志选项

“日志选项”部分有两个设置:

  • 实例配置文件 – 指定有权访问 Amazon S3 存储桶的实例配置文件,该存储桶与应用程序关联。

  • Enable log file rotation to Amazon S3 - 指定应用程序的 Amazon EC2 实例的日志文件是否应复制到与应用程序相关联的 Amazon S3 存储桶。

环境属性

环境属性部分,您可以在运行应用程序的 Amazon EC2 实例上指定环境配置设置。环境属性会以密钥值对的形式传递到应用程序。

Ruby 平台为环境配置定义了以下属性:

  • BUNDLE_WITHOUT – 从 Gemfile 安装依赖项时所忽略的组的冒号分隔列表。

  • RAILS_SKIP_ASSET_COMPILATION – 设置为 true 可在部署期间跳过运行 rake assets:precompile

  • RAILS_SKIP_MIGRATIONS – 设置为 true 可在部署期间跳过运行 rake db:migrate

  • RACK_ENV – 指定 Rack 的环境阶段。例如,developmentproductiontest

在运行于 Elastic Beanstalk 中的 Ruby 环境内,可通过使用 ENV 对象访问环境变量。例如,您可以使用以下代码将名为 API_ENDPOINT 的属性读取到某个变量:

endpoint = ENV['API_ENDPOINT']

参阅 环境属性和其他软件设置 了解更多信息。

Ruby 配置命名空间

您可以使用配置文件设置配置选项并在部署期间执行其他实例配置。配置选项可以通过您使用的 Elastic Beanstalk 服务或平台定义并组织到命名空间中。

Ruby 平台不定义任何额外的命名空间。相反,它为常见的 Rails 和 Rack 选项定义环境属性。以下配置文件将设置每个平台定义的环境属性,还设置名为 LOGGING 的附加环境属性。

例 .ebextensions/ruby-settings.config

option_settings: aws:elasticbeanstalk:application:environment: BUNDLE_WITHOUT: test RACK_ENV: development RAILS_SKIP_ASSET_COMPILATION: true RAILS_SKIP_MIGRATIONS: true LOGGING: debug

Elastic Beanstalk 提供许多配置选项来自定义您的环境。除了配置文件之外,您还可使用控制台、保存的配置、EB CLI 或 AWS CLI 来配置选项。参阅 配置选项 了解更多信息。