「ValidationFailed. スキーマの検証に失敗しました。」の対処方法(JSONの解析)

Azure LogicApps

ロジックアプリを利用していて、このエラーにかなり苦戦したのでその解決方法をまとめてみました。

また、PowerAutomateでも同じような挙動になるかと思いますので参考にしてもらえればと思います。

 ※今回私が遭遇したエラーの原因は、複数あるエラーの中の1つだと思いますので、原因が異なる場合にはトラブルシューティングする際の確認すべきポイントとして参考にしていただければと思います。

広告

こんなエラーが出る

私の場合はロジックアップの [HTTP] にて仮想マシン一覧を取得して、その取得結果を「JSONの解析」を利用し、変数として利用しようとしたときにこのエラーが出てきました。

実行結果の画面からエラー表示を見てみると、以下のように表示されている状況です。

「JSONの解析」のエラー画面

また、エラーの出力の中身は以下のようになっていました。

[
  {
    "message": "Required properties are missing from object: properties.",
    "lineNumber": 0,
    "linePosition": 0,
    "path": "value[6].properties.networkProfile.networkInterfaces[0]",
    "value": [],
    "schemaId": "#/properties/value/items/properties/properties/properties/networkProfile/properties/networkInterfaces/items",
    "errorType": "required",
    "childErrors": []
  }
]

原因は?

今回の原因は、取得した結果(コンテンツ)の中に「JSONの解析」で定義したスキーマの値が存在しないものがあるからでした。

エラー表示を日本語に直訳してみると、
3行目は「必要なプロパティがオブジェクトにありません:プロパティ。」となります。

    "message": "Required properties are missing from object: properties.",

また、8~10行目を見てみるとエラーに関連する場所とエラータイプが表示されていました。

    "schemaId": 
"#/properties/value/items/properties/properties/properties/networkProfile/properties/networkInterfaces/items",
    "errorType": "required",

なので、さらにかみ砕いて原因を説明すると、スキーマ内で「この値はないとダメだ」と [required] というパラメータで定義した値が、取得した結果(コンテンツ)の中になかったために起きたエラーでした。

解決策

従って今回はこの [required] として定義された [properties] というパラメータを削除することで解決することができました。

参考までに私がエラーが出た時に利用していたスキーマを記載しておきます。
また、修正箇所についても★印で記載しています。

●エラーが出た時に設定していたスキーマ

{
    "properties": {
        "value": {
            "items": {
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "location": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "plan": {
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "product": {
                                "type": "string"
                            },
                            "publisher": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "properties": {
                        "properties": {
                            "diagnosticsProfile": {
                                "properties": {
                                    "bootDiagnostics": {
                                        "properties": {
                                            "enabled": {
                                                "type": "boolean"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            },
                            "hardwareProfile": {
                                "properties": {
                                    "vmSize": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "networkProfile": {
                                "properties": {
                                    "networkInterfaces": {
                                        "items": {
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "properties": {
                                                    "properties": {
                                                        "deleteOption": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "properties"  ←★★これが不要だった★★
                                            ],
                                            "type": "object"
                                        },
                                        "type": "array"
                                    }
                                },
                                "type": "object"
                            },
                            "osProfile": {
                                "properties": {
                                    "adminUsername": {
                                        "type": "string"
                                    },
                                    "allowExtensionOperations": {
                                        "type": "boolean"
                                    },
                                    "computerName": {
                                        "type": "string"
                                    },
                                    "requireGuestProvisionSignal": {
                                        "type": "boolean"
                                    },
                                    "secrets": {
                                        "type": "array"
                                    },
                                    "windowsConfiguration": {
                                        "properties": {
                                            "enableAutomaticUpdates": {
                                                "type": "boolean"
                                            },
                                            "enableVMAgentPlatformUpdates": {
                                                "type": "boolean"
                                            },
                                            "patchSettings": {
                                                "properties": {
                                                    "assessmentMode": {
                                                        "type": "string"
                                                    },
                                                    "enableHotpatching": {
                                                        "type": "boolean"
                                                    },
                                                    "patchMode": {
                                                        "type": "string"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "provisionVMAgent": {
                                                "type": "boolean"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            },
                            "provisioningState": {
                                "type": "string"
                            },
                            "storageProfile": {
                                "properties": {
                                    "dataDisks": {
                                        "type": "array"
                                    },
                                    "imageReference": {
                                        "properties": {
                                            "exactVersion": {
                                                "type": "string"
                                            },
                                            "offer": {
                                                "type": "string"
                                            },
                                            "publisher": {
                                                "type": "string"
                                            },
                                            "sku": {
                                                "type": "string"
                                            },
                                            "version": {
                                                "type": "string"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "osDisk": {
                                        "properties": {
                                            "caching": {
                                                "type": "string"
                                            },
                                            "createOption": {
                                                "type": "string"
                                            },
                                            "deleteOption": {
                                                "type": "string"
                                            },
                                            "managedDisk": {
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "osType": {
                                                "type": "string"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            },
                            "timeCreated": {
                                "type": "string"
                            },
                            "vmId": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "resources": {
                        "items": {
                            "properties": {
                                "id": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id"
                            ],
                            "type": "object"
                        },
                        "type": "array"
                    },
                    "tags": {
                        "properties": {},
                        "type": "object"
                    },
                    "type": {
                        "type": "string"
                    }
                },
                "required": [
                    "name",
                    "id",
                    "type",
                    "location",
                    "properties"
                ],
                "type": "object"
            },
            "type": "array"
        }
    },
    "type": "object"
}

[properties] というパラメータを削除後に実行すると、以下のように正常に実行できました。

正常に実行できた結果表示画面

さいごに

私の場合、一度httpの出力結果を取得したうえで、その出力結果を「JSONの解析」のサンプルのペイロードとして読み込ませてスキーマを作成したので、間違っているところがどこなのか全然わからずに苦戦していました。。

ですが、冷静になってエラー表示を見て少し納得できましたし解決することができました。

こういう時は「慌てずにエラー表示を見てその通りに改善するとよい」という、良い教訓になりました。

タイトルとURLをコピーしました