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

为环境配置增强型运行状况规则

Elastic Beanstalk 增强型运行状况报告依靠一组规则来确定环境的运行状况。其中一些规则可能不适合您的特定应用程序。举例而言,一种常见情况是预计由于使用客户端测试工具,导致出现频繁的 HTTP 客户端 (4xx) 错误。

默认情况下,Elastic Beanstalk 在确定环境的运行状况时包括所有应用程序 HTTP 4xx 错误,因此它根据错误比率,将环境运行状况从正常更改为警告已降级严重。要正确处理这种情况,Elastic Beanstalk 允许您配置此规则并忽略环境实例上的应用程序 HTTP 4xx 错误。本主题介绍了进行此配置更改的方法。

注意

目前,这是唯一可用的增强型运行状况规则自定义设置。您无法配置增强型运行状况来忽略环境的负载均衡器返回的 HTTP 错误,或者除了 4xx 之外的其他 HTTP 错误。

使用 Elastic Beanstalk 控制台 配置增强型运行状况规则

您可以使用 Elastic Beanstalk 控制台 在环境中配置增强型运行状况规则。

使用 AWS 管理控制台 忽略 HTTP 4xx 状态代码

  1. 打开 Elastic Beanstalk 控制台

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

  3. 选择 Configuration

  4. 监控配置卡上,选择修改

  5. Health monitoring rule customization (运行状况监控规则自定义) 下,启用 Ignore HTTP 4xx (忽略 HTTP 4xx) 选项。

    
            Elastic Beanstalk 控制台“Monitoring configuration (监控配置)”页面的“Health monitoring rule customization (运行状况监控规则自定义)”部分
  6. 选择 Apply

使用 EB CLI 配置增强型运行状况规则

您可以通过以下方法使用 EB CLI 配置增强型运行状况规则:在本地保存您的环境的配置,添加用于配置增强型运行状况规则的条目,然后将该配置上传到 Elastic Beanstalk。您可以在环境创建期间或创建后将保存的配置应用于环境。

使用 EB CLI 和保存的配置忽略应用程序 HTTP 4xx 状态代码

  1. 使用 eb init 初始化您的项目文件夹。

  2. 通过运行 eb create 命令创建环境。

  3. 通过运行 eb config save 命令在本地保存配置模板。以下示例使用 --cfg 选项指定配置的名称。

    $ eb config save --cfg 01-base-state Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml
  4. 在文本编辑器中打开保存的配置文件。

  5. OptionSettings > aws:elasticbeanstalk:healthreporting:system: 下,添加 ConfigDocument 键以列出要配置的各个增强型运行状况规则。以下 ConfigDocument 禁止检查应用程序 HTTP 4xx 状态代码(当前唯一可用于自定义的规则)。

    OptionSettings: ... aws:elasticbeanstalk:healthreporting:system: ConfigDocument: Rules: Environment: Application: ApplicationRequests4xx: Enabled: false Version: 1 SystemType: enhanced ...

    注意

    您可在同一个 ConfigDocument 选项设置中结合 RulesCloudWatchMetrics为环境发布 Amazon CloudWatch 自定义指标中介绍了 CloudWatchMetrics

    如果您以前启用了 CloudWatchMetrics,则您使用 eb config save 命令检索的配置文件在 ConfigDocument 部分中已经具有 CloudWatchMetrics 键。请勿删除它 — 将 Rules 部分添加到相同的 ConfigDocument 选项值中。

  6. 保存配置文件,关闭文本编辑器。在此示例中,更新的配置文件使用与下载的配置文件不同的名称 (02-cloudwatch-enabled.cfg.yml) 保存。这将在上传文件时创建一个单独保存的配置。您可以使用与下载的文件相同的名称覆盖现有配置而无需创建新名称。

  7. 使用 eb config put 命令将更新的配置文件上传到 Elastic Beanstalk。

    $ eb config put 02-cloudwatch-enabled

    当将 eb config getput 命令用于保存的配置时,请勿包含文件名扩展名。

  8. 将保存的配置应用于正在运行的环境。

    $ eb config --cfg 02-cloudwatch-enabled

    --cfg 选项指定一个应用于环境的命名配置文件。您可在本地或在 Elastic Beanstalk 中保存配置文件。如果两个位置中都存在带有指定名称的配置文件,则 EB CLI 将使用本地文件。

使用配置文档配置增强型运行状况规则

用于增强型运行状况规则的配置 (config) 文档是列出要配置的规则的 JSON 文档。以下示例说明禁止检查应用程序 HTTP 4xx 状态代码的配置文档(当前唯一可用于自定义的规则)。

{ "Rules": { "Environment": { "Application": { "ApplicationRequests4xx": { "Enabled": false } } } }, "Version": 1 }

对于 AWS CLI,您将文档作为 Value 键的值传入选项设置参数,该参数本身是一个 JSON 对象。在这种情况下,您必须对所嵌入文档中的引号进行转义。以下命令检查配置设置是否有效。

$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[ { "Namespace": "aws:elasticbeanstalk:healthreporting:system", "OptionName": "ConfigDocument", "Value": "{\"Rules\": { \"Environment\": { \"Application\": { \"ApplicationRequests4xx\": { \"Enabled\": false } } } }, \"Version\": 1 }" } ]'

对于采用 YAML 的 .ebextensions 配置文件,您可以按原样提供 JSON 文档。

option_settings: - namespace: aws:elasticbeanstalk:healthreporting:system option_name: ConfigDocument value: { "Rules": { "Environment": { "Application": { "ApplicationRequests4xx": { "Enabled": false } } } }, "Version": 1 }