使用 Amazon ECS 为预测式扩缩自定义指标构建 JSON - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon ECS 为预测式扩缩自定义指标构建 JSON

以下部分包含了有关如何配置预测行扩缩以从 CloudWatch 查询数据的示例。配置此选项有两种不同的方法,您选择的方法会影响您为预测性扩缩策略构造 JSON 时使用的格式。使用指标数学时,JSON 格式会根据所执行的指标数学进一步变化。

  1. 要创建直接从 Amazon 提供的其他 CloudWatch 指标或您发布到 CloudWatch 的指标中获取数据的策略,请参阅 包含自定义负载和扩缩指标的预测式扩缩策略示例(使用 Amazon CLI)

包含自定义负载和扩缩指标的预测式扩缩策略示例(使用 Amazon CLI)

要通过 Amazon CLI 使用自定义负载和扩缩指标创建预测性扩缩策略,请将 --predictive-scaling-configuration 的参数存储在名为 config.json 的 JSON 文件中。

您可以将以下示例中的可替换值替换为您的指标和目标利用率值,从而开始添加自定义指标。

{ "MetricSpecifications": [ { "TargetValue": 50, "CustomizedScalingMetricSpecification": { "MetricDataQueries": [ { "Id": "scaling_metric", "MetricStat": { "Metric": { "MetricName": "MyUtilizationMetric", "Namespace": "MyNameSpace", "Dimensions": [ { "Name": "MyOptionalMetricDimensionName", "Value": "MyOptionalMetricDimensionValue" } ] }, "Stat": "Average" } } ] }, "CustomizedLoadMetricSpecification": { "MetricDataQueries": [ { "Id": "load_metric", "MetricStat": { "Metric": { "MetricName": "MyLoadMetric", "Namespace": "MyNameSpace", "Dimensions": [ { "Name": "MyOptionalMetricDimensionName", "Value": "MyOptionalMetricDimensionValue" } ] }, "Stat": "Sum" } } ] } } ] }

有关更多信息,请参阅《Amazon EC2 Auto Scaling API 参考》中的 MetricDataQuery

注意

以下是一些可以帮助您查找 CloudWatch 指标的指标名称、命名空间、维度和统计数据的其他资源:

  • 有关 Amazon 服务可用指标的更多信息,请参阅 Amazon CloudWatch 用户指南中的发布 CloudWatch 指标的 Amazon 服务

  • 要获取带有 Amazon CLI 的 CloudWatch 指标的确切指标名称、命名空间和维度(如果适用),请参阅列出指标

要创建此策略,请运行 put-scaling-policy 命令并将此 JSON 文件作为输入,如下例所示。

aws application-autoscaling put-scaling-policy --policy-name my-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

如果成功,此命令将返回策略的 Amazon Resource Name (ARN)。

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-predictive-scaling-policy", "Alarms": [] }