为环境配置增强型运行状况规则 - AWS Elastic Beanstalk
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

AWS Elastic Beanstalk 增强型运行状况报告依靠一组规则来确定环境的运行状况。其中一些规则可能不适合您的特定应用程序。以下是一些常见的示例:

  • 您使用客户端测试工具。在这种情况下,预计会频繁出现 HTTP 客户端 (4xx) 错误。

  • 您将 AWS WAF 与环境的 Application Load Balancer 结合使用来阻止不需要的传入流量。在这种情况下,Application Load Balancer 为每条被拒绝的传入消息返回 HTTP 403。

默认情况下,Elastic Beanstalk 在确定环境的运行状况时会将所有应用程序 HTTP 4xx 错误纳入考虑。它会根据错误率将环境运行状况从 OK (良好) 更改为 Warning (警告)Degraded (降级)Severe (严重)。您可以通过 Elastic Beanstalk 配置一些增强型运行状况规则,以便正确处理诸如我们提到的示例这样的情况。您可以选择忽略环境实例上的应用程序 HTTP 4xx 错误,或者忽略环境负载均衡器返回的 HTTP 4xx 错误。本主题介绍如何进行这些配置更改。

注意

目前,这些是唯一可用的增强型运行状况规则自定义设置。您无法配置增强型运行状况规则来忽略除 4xx 之外的其他 HTTP 错误。

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

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

使用 Elastic Beanstalk控制台配置 HTTP 4xx 状态代码检查

  1. 打开 Elastic Beanstalk 控制台,然后在 Regions (区域)列表中选择您的 AWS 区域。

  2. 在导航窗格中,选择 Environments (环境),然后从列表中选择环境的名称。

    注意

    如果您有多个环境,请使用搜索栏筛选环境列表。

  3. 在导航窗格中,选择 Configuration (配置)

  4. Monitoring (监控) 配置类别中,选择 Edit (编辑)

  5. Health monitoring rule customization (运行状况监控规则自定义) 下,启用或禁用所需的 Ignore (忽略) 选项。

    
            Elastic Beanstalk 控制台的“监控配置”页面上的“运行状况监控规则自定义”部分
  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 状态代码检查,同时保持启用负载均衡器 HTTP 4xx 代码检查。

    OptionSettings: ... aws:elasticbeanstalk:healthreporting:system: ConfigDocument: Rules: Environment: Application: ApplicationRequests4xx: Enabled: false ELB: ELBRequests4xx: Enabled: true 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 状态代码检查,并启用负载均衡器 HTTP 4xx 状态代码检查。

{ "Rules": { "Environment": { "Application": { "ApplicationRequests4xx": { "Enabled": false } }, "ELB": { "ELBRequests4xx": { "Enabled": true } } } }, "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 } }, \"ELB\": { \"ELBRequests4xx\": {\"Enabled\": true } } } }, \"Version\": 1 }" } ]'

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

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