Cloudformation テンプレートで Cloudwatch アラームの数式を定義できません 質問する

Cloudformation テンプレートで Cloudwatch アラームの数式を定義できません 質問する

最近AWSは、Cloudwatchアラームがメトリクスに数式を使用できると発表しました。私は、2つの単一メトリクスの合計を特定のしきい値と比較するアラームを作成することにしました。これは、AWS ドキュメント私の式は SUM([m1,m2]) で、m1 と m2 は 2 つの単一のメトリックです。また、このアイデアを cloudformation テンプレート (yaml) を使用して実装することにしました。これが Cloudwatch アラームの定義です。

BillingAlarmExpression:
  Type: AWS::CloudWatch::Alarm
  Properties:
    AlarmActions:
      - !Ref BillingAlertTopic
    AlarmDescription: String
    ComparisonOperator: GreaterThanOrEqualToThreshold
    EvaluationPeriods: 1
    Metrics:
      - Id: m1
        MetricStat:
          Metric:
            Dimensions:
              - Name: ServiceName
                Value: AmazonEC2
              - Name: Currency
                Value: USD
            MetricName: Estimated­Charges
            Namespace: AWS/Billing
          Period: 86400
          Stat: Maximum
        ReturnData: False
      - Id: m2
        MetricStat:
          Metric:
            Dimensions:
              - Name: ServiceName
                Value: AmazonCloudwatch
              - Name: Currency
                Value: USD
            MetricName: Estimated­Charges
            Namespace: AWS/Billing
          Period: 86400
          Stat: Maximum
        ReturnData: False
      - Id: Expr1
        Expression: SUM([m1,m2])
        Label: Yeap
    Threshold: 100
    TreatMissingData: ignore

単一のメトリクス m1 と m2 は、EC2 と Cloudwatch サービスの課金コストに関係しています。私が確認したいのは、これら 2 つのサービスの課金コストが 100 ドルのしきい値を超えたかどうかです。(課金コストは N.Virginia リージョンにのみ保存されるため、上記のテンプレートを N.Virginia にデプロイしようとしたことに注意してください)。このテンプレートのデプロイ中に、Cloudformation は次のエラーで応答します。

"Invalid metrics list (Service: AmazonCloudWatch; Status Code: 400; Error Code: ValidationError; Request ID: c0748047-0378-11e9-ac36-5b1829988d18)"

Cloudformation が「metrics list」と言う場合、それは m1、m2、Expr1 の定義を参照します。さらに奇妙なのは、aws cli から上記の metrics-list 定義を使用すると、課金データが正常に返されることです。

aws cloudwatch get-metric-data --metric-data-queries file://./metric-data.json --start-time 2018-12-03T03:00:00Z --end-time 2018-12-10T04:30:00Z

ここで、metric-data.json は上記の metrics-list です。

テンプレートを作成するために、次のガイドを使用しました。https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.htmlそしてhttps://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html

Cloudformation がこのエラーを返す理由をご存知ですか? ありがとうございます!

ベストアンサー1

Id小文字で始まる必要がある場合Expr1は に変更しますexpr1

からドキュメント:

Id の値を変更できます。数字、文字、アンダースコアを含めることができ、小文字で始まる必要があります。

おすすめ記事