AWS CloudFormation でリソースを作成すると、スタックイベントで「Model Validation Failed」(モデルの検証に失敗しました) というエラーが表示されます。
簡単な説明
[Type] (タイプ)、[Allowed values] (許可される値)、[Minimum] (最小)、[Maximum] (最大)、および [Pattern] (パターン) の値は、CloudFormation テンプレートを使用してリソースプロパティを作成する際に許容される基準です。これらのプロパティ値のいずれかが正しく定義されていない場合、次のいずれかの「Model Validation Failed」(モデルの検証に失敗しました) というエラーが表示されます。
- Model Validation Failed (#PropertyName: Failed validation constraint for keyword [type]) (モデルの検証に失敗しました (#PropertyName: キーワード [type] の制約の検証に失敗しました))
- Model Validation Failed (#PropertyName: Failed validation constraint for keyword [pattern]) (モデルの検証に失敗しました (#PropertyName: キーワード [pattern] の制約の検証に失敗しました))
- Model validation failed (#PropertyName: expected type: Number, found: String) (モデルの検証に失敗しました (#PropertyName: 想定されるタイプ: [Number] (数値)、見つかったタイプ: [String] (文字列))
注: 前述のエラーメッセージは例です。表示されたエラーでは、PropertyName が明示されています。
解決方法
- CloudFormation スタックイベントで、失敗したリソースタイプのプロパティを特定します。例えば、Namespace はリソース AWS::CloudWatch::Alarm のプロパティです。
- エラーが発生しているリソースタイプを特定します。例えば、AWS::CloudWatch::Alarm などです。
- リソースのプロパティを確認します。
- テンプレートで定義されているプロパティ値を、ステップ 3 で確認した正しいプロパティ値と比較します。
注: 一部のプロパティには、最小文字数または最大文字数の制限の値が含まれていません。
- リソースのプロパティ値が許容される基準を満たしていない場合は、要求されている値に基づいてテンプレートを編集します。
- CloudFormation スタックを新しいテンプレートで更新します。
リソースタイプ AWS::CloudWatch:Alarm の Namespace プロパティの許容される基準の例を次に示します。
Required (必須): No (いいえ)
Type (タイプ): String (文字列)
Minimum (最小): 1
Maximum (最大): 255
Pattern (パターン): [^:].*
Update requires (更新が必要): No interruption (中断なし)
注: Namespace の基準が許容されるためには、[Type] (タイプ) が [String] (文字列) で、文字数が 1~255 の制限の範囲内にあり、[Pattern] (パターン) が [^:].* である必要があります。