以前「Azure Synapse AnalyticsのPipeline機能を使ってみた」というテーマで記事を作成したのですが、その際に以下のようなエラーに遭遇しました。
このエラーの解消は少し分かりづらく、対処法が分からない方もいらっしゃるかと思ったため、今回はこのエラーのトラブルシューティングについて紹介させていただきます。
Azure Synapse AnalyticsのPipeline機能(以下、Synapse Pipeline)を利用していて、パイプラインのデバック時に同じようなエラーに遭遇された方は、ぜひご一読ください!
今回のケース
今回はエラーを意図的に再現するケースとして、以下の様に「1秒待機⇒2秒待機」というシンプルなものを想定しました。
実際にこのパイプラインを検証してみると「エラーが見つかりませんでした。」との文言が表示されます。
しかしここでデバックを実行してみると、以下のように「パイプラインを実行できませんでした」というエラーが発生してしまいます。
[エラーの詳細を表示]を押してみると以下のようにBadRequestエラーが確認できます。
本エラーの原因
今回このようなエラーがでた原因は、実は1つ目の[待機]アクティビティの名前の最後に空白が入っているからです。
こちらのMicrosoft公式ドキュメントのトラブルシューティングに以下のように書かれています。
management.azure.com にヒットした JSON ペイロードが破損しているために発生するユーザー エラーです。
よって、本エラーは、余計な空白が入っていてJSONペイロードが破損したことが原因ということが分かります。
トラブルシューティング
原因が分かったので、実際に余分な空白を削除してデバックを実施してみます。
この空白を削除してから検証とデバックを実行すると、エラーなく実行されることが確認できました。
まとめ
今回のケースでのBadRequestのエラーはアクテビティ名の末尾に空白が含まれているからということが分かりました。
アクテビティ名を別の所からコピー&ペーストしている場合はこういった不要な空白が含まれてしまう可能性がありますし、検証とエラーメッセージだけでは原因究明がしづらいかと思います。
同じエラーに遭遇された方は、ぜひ今一度アクテビティ名の末尾をご確認ください!
岩間 義尚(日本ビジネスシステムズ株式会社)
2021年度新卒入社後、Hadoopを中心に複数のデータ基盤の開発/運用を経験。 現在はSnowflakeやAzureでのデータエンジニアリングをメインに担当しています。
担当記事一覧