如何解決 CloudFormation 中的「模型驗證失敗」錯誤?

1 分的閱讀內容
0

當我使用 AWS CloudFormation 建立資源時,在堆疊事件中收到「模型驗證失敗」錯誤。

簡短描述

類型、允許值、最小值、最大值和模式值是使用 CloudFormation 範本建立資源屬性的接受標準。如果這些屬性值之一未正確定義,則您會收到以下「模型驗證失敗」錯誤之一:

  • Model Validation Failed (#PropertyName: Failed validation constraint for keyword [type]) (模型驗證失敗 (#PropertyName:[類型]關鍵字驗證限制失敗))
  • Model Validation Failed (#PropertyName: Failed validation constraint for keyword [pattern]) (模型驗證失敗 (#PropertyName:[模式]關鍵字驗證限制失敗))
  • Model validation failed (#PropertyName: expected type: Number, found: String) (模型驗證失敗 (#PropertyName:預期類型:數字,結果:字串))

注意:先前的錯誤訊息為範例。在您收到的錯誤中,會指明PropertyName

解決方案

  1. 在 CloudFormation 堆疊事件中,找出失敗的資源類型的屬性。例如,命名空間是資源 AWS::CloudWatch::Alarm 的屬性。
  2. 找出遭遇錯誤的資源類型。例如,AWS::CloudWatch::Alarm
  3. 查找資源的屬性
  4. 將範本中定義的屬性值與您在步驟 3 中找到的正確屬性值做比較。
    **注意:**某些屬性未包含最小或最大字元限制值。
  5. 如果資源的屬性值不符合接受標準,請使用所要求的值編輯範本。
  6. 使用新範本更新 CloudFormation 堆疊。

以下是資源類型 AWS::CloudWatch:Alarm命名空間屬性的接受標準範例:

必要項目:

類型:字串

最小值:1

最大值:255

模式:[^:].*

更新要求:無中斷

注意:若要命名空間標準被接受,則類型必須為字串,字元限制必須介於 1255 之間,模式必須為 [^:].*


AWS 官方
AWS 官方已更新 2 年前