1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Azure Data Factoryでアクティビティのエラーメッセージを取得する方法

Last updated at Posted at 2022-12-12

概要

Azure Data Factory(ADF)でアクティビティのエラーメッセージを取得する方法を調べた際のメモです。
ADFではアクティビティのsuccess, fail, skip, completeというステータスコードを条件に依存関係を定義できるので、エラーが起きたら通知用のパイプラインを呼び出すといった実装は容易にできます。
ただ、直前のアクティビティでのエラーメッセージの取得には少し工夫が必要です。

実装方法

今回は、Execute Pipelineアクティビティにおけるエラーメッセージを取得する方法を紹介します。
※他のアクティビティでも同様に実装が可能だと思います。

まず、Failアクティビティのみを実行するraise_errパイプライン(c_raise_err.json)を作成します。
Failアクティビティではエラーコード408timeoutというエラーメッセージを出力するよう設定します。
※先頭のc, pはchild, parentの頭文字です。

c_raise_err.json
{
	"name": "raise_err",
	"properties": {
		"activities": [
			{
				"name": "raise-err",
				"type": "Fail",
				"dependsOn": [],
				"userProperties": [],
				"typeProperties": {
					"message": "timeout",
					"errorCode": "408"
				}
			}
		],
		"folder": {
			"name": "sample"
		},
		"annotations": []
	}
}

次にraise_errパイプラインを呼び出し、そのエラーメッセージを変数errに設定するmainパイプライン(p_main.json)を作成します。

p_main.json
{
	"name": "main",
	"properties": {
		"activities": [
			{
				"name": "set-err-msg",
				"type": "SetVariable",
				"dependsOn": [
					{
						"activity": "exec-pipeline",
						"dependencyConditions": [
							"Failed"
						]
					}
				],
				"userProperties": [],
				"typeProperties": {
					"variableName": "err",
					"value": {
						"value": "@activity('exec-pipeline').error.Message",
						"type": "Expression"
					}
				}
			},
			{
				"name": "exec-pipeline",
				"type": "ExecutePipeline",
				"dependsOn": [],
				"userProperties": [],
				"typeProperties": {
					"pipeline": {
						"referenceName": "raise_err",
						"type": "PipelineReference"
					},
					"waitOnCompletion": true
				}
			}
		],
		"variables": {
			"err": {
				"type": "String"
			}
		},
		"folder": {
			"name": "sample"
		},
		"annotations": []
	}

ADFコンソール(GUI)では以下の表示になります。
pipeline.png
上記2つのパイプラインを作成後に実行します。
すると、ADFコンソールで変数errを確認すると、アクティビティのエラーメッセージが取得できていることを確認できました。
set-err-msg-comp.png

最後に

ADFではアクティビティの入出力はjsonで記述されています。
基本、アクティビティの出力結果はJSONPathでクエリできると思っておけば大丈夫です。

参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?