

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 构造自定义指标的 JSON
<a name="construct-json-custom-metrics"></a>

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

1. 要创建可直接从提供的其他 CloudWatch 指标 AWS 或您发布到的指标中获取数据的策略 CloudWatch，请参阅[包含自定义负载和扩缩指标的预测性扩缩策略示例（AWS CLI）](#custom-metrics-ex1)。

1. 要创建可查询多个 CloudWatch 指标并使用数学表达式根据这些指标创建新时间序列的策略，请参阅[使用指标数学表达式](using-math-expression-examples.md)。

## 包含自定义负载和扩缩指标的预测性扩缩策略示例（AWS CLI）
<a name="custom-metrics-ex1"></a>

要使用创建带有自定义负载和扩展指标的预测性扩展策略 AWS CLI，请将的参数存储`--predictive-scaling-configuration`在名为的 JSON 文件中`config.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}}"
            }
          }
        ]
      }
    }
  ]
}
```

有关更多信息，请参阅[MetricDataQuery](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_MetricDataQuery.html)《*亚马逊 EC2 Auto Scaling API 参考*》。

**注意**  
以下是一些其他资源，可以帮助您查找指标名称、命名空间、维度和指标 CloudWatch 统计信息：  
有关 AWS 服务的可用指标的信息，请参阅《*亚马逊 CloudWatch 用户指南*》中[发布 CloudWatch 指标的AWS 服务](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html)。
要使用获取指标的确切指标名称、命名空间和维度（如果适用） AWS CLI，请参阅[列表 CloudWatch ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/list-metrics.html)指标。

要创建此策略，请使用 JSON 文件作为输入运行[put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html)命令，如以下示例所示。

```
aws 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 资源名称（ARN）。

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