當我使用 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。
解決方案
- 在 CloudFormation 堆疊事件中,找出失敗的資源類型的屬性。例如,命名空間是資源 AWS::CloudWatch::Alarm 的屬性。
- 找出遭遇錯誤的資源類型。例如,AWS::CloudWatch::Alarm。
- 查找資源的屬性。
- 將範本中定義的屬性值與您在步驟 3 中找到的正確屬性值做比較。
**注意:**某些屬性未包含最小或最大字元限制值。
- 如果資源的屬性值不符合接受標準,請使用所要求的值編輯範本。
- 使用新範本更新 CloudFormation 堆疊。
以下是資源類型 AWS::CloudWatch:Alarm 的命名空間屬性的接受標準範例:
必要項目:否
類型:字串
最小值:1
最大值:255
模式:[^:].*
更新要求:無中斷
注意:若要命名空間標準被接受,則類型必須為字串,字元限制必須介於 1 到 255 之間,模式必須為 [^:].*。