Azure Purview データカタログのビジネス用語に対する承認ワークフローを作成する

## はじめに

Azure Purview では、データに紐づけるビジネス用語の作成/変更/削除プロセスやデータアクセスの承認プロセスを自動化する、ワークフロー機能がプレビューされています（2022 年 4 月現在）。

今回は、Azure Purview におけるワークフローの概要を調査し、実際にビジネス用語に対する承認ワークフローを作成・実行して機能を検証しました。

## 想定読者

- Azure Purview の使用経験がある方
- Azure Purview でビジネス用語を作成し、設定した経験のある方
- Azure Purview にスキャンされたデータの所有者あるいは責任者にあたる方

Azure Purview では、データアセットに対してユーザが独自に定義した用語を設定できます。

これにより、データの参照や分類が容易になり、組織内での円滑なデータ活用とデータガバナンスの推進に役立ちます。
詳細は下記のドキュメントを参照ください。
[Microsoft Purview のビジネス用語集機能についての理解](https://docs.microsoft.com/ja-jp/azure/purview/concept-business-glossary)

## 前提条件

ワークフローを作成・実行するには、**対象のコレクションに対するワークフロー管理者のロールが必要**です。
![スクリーンショット 2022-04-28 200420.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/dabe0979-1eb1-01d1-dd78-0d9c08549036.png)

また、2022 年 4 月現在、東日本リージョンではワークフロー機能がサポートされていないのでご注意ください。

## Azure Purview におけるワークフロー

### テンプレート

冒頭で説明にしたように、ワークフローは自動化された承認プロセスです。

現在、Azure Purview では 2 種類のワークフローがテンプレートとして用意されており、ユーザは GUI 上から簡単にワークフローを作成できます。

- データカタログ
  - データカタログのアセットに対して、ビジネス用語を作成/変更/削除操作をする際の承認プロセスを自動化
- データガバナンス
  - データカタログのアセットに対して、ユーザがアクセスを要求した際の承認プロセスを自動化
  - Azure Purview で設定したポリシーとの連携が可能

### 構成要素

Azure Purview のワークフローは、コネクタと呼ばれる処理ブロックで構成されています。

テンプレートでは既に複数のコネクタが組み合わされた状態で提供されますが、用途に応じてユーザ自身でコネクタを組み合わせることも可能です。

現在、Azure Purviewでは以下のコネクタからワークフローを作成できます。

- 承認コネクタ
  - 特定のユーザあるいはAzure ADに承認リクエストを割り当てる
  - 承認の種類：必要な承認が1人 or 全員のどちらかを設定
  ![workflow_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/bba4a925-1904-bc1e-706f-2f42f6cac917.png)
- タスクコネクタ
  - 特定のユーザあるいはAzure ADにタスクを作成する
  - 例：ビジネス用語を作成する、など
  ![workflow_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/2ef89d4a-2ca1-0961-7a1b-71af96da479d.png)
- 条件コネクタ
  - 条件に応じた分岐を作成する
  - 例：承認の有無によって以降の処理を分岐する、など
  ![workflow_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/c6848361-754d-df90-2dfc-ba1962bd72ed.png)
- メール送信コネクタ
  - 任意の宛先にメールを送信する
  ![workflow_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/0d12a0ef-06c0-3830-1bd0-67fd77eb3e50.png)

## ビジネス用語に対する承認ワークフローの作成・実行

今回は、テンプレートをそのまま流用する形でワークフローを作成し、実行時の挙動を検証します。

### ワークフローの作成

1. Azure Purview Studioで「管理」メニューから「ワークフロー」>「作成」>「新規」と選択します。
**ワークフロー管理者のロールがない場合、ワークフローに関する操作はできないので、あらかじめロールの設定を済ませておきます。**
![workflow_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/3e4dc19a-9374-3612-5f95-91f5526d9e93.png)

2. テンプレートから「Data Catalog」を選択します。
![workflow_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/5ea34c71-eb64-7617-82a9-d05aa851fac5.png)

3. ワークフローを適用する操作を選択します。今回は「用語集の用語を作成する」>「続行」を選択します。
![workflow_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/f17ca216-50d2-582b-2aa0-1243127524bc.png)

4. 作成するワークフローの名前を入力します。今回はデフォルトの「Create glossary term」として「続行」を選択します。
![workflow_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/f4eef3c9-9035-c609-06c2-ae4e6f489546.png)

5. ワークフローのテンプレートが表示されます。
テンプレートをカスタマイズしたい場合は、下部の「+新しいステップ」を選択することで任意のコネクタを追加できます。
![workflow_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/70ea905b-47cd-c2cd-1e86-4f27160f4689.png)

6. 条件コネクタの分岐は、あらかじめ承認の有無に設定されています。
承認者や承認条件、メールの宛先など、必要に応じて各コネクタの設定を行います。
![workflow_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/bb575f71-a19a-3989-d083-5c65043be36e.png)

7. 設定が完了したら、「ワークフロー適用」の適用を選択し、右側に表示されるメニューで適用範囲を設定し「OK」を選択します。
今回は、用語集レベルでワークフローを適用したため、作成されたすべてのビジネス用語に対してワークフローがトリガーされます。
![workflow_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/3d093780-d4f8-b514-b3fb-3c9ee7791591.png)

8. 手順7.を完了すると、自動的にワークフローが有効になります。
「保存して閉じる」を選択し、ワークフローの作成が完了します。

### ワークフローの実行

1. Azure Purview Studioで「データカタログ」>「用語集の管理」>「新しい用語」と移動し、データカタログに新しいビジネス用語を追加します。
今回は検証用に`Workflow test`という用語を作成しました。
「承認のため送信」を選択することで、ワークフローがトリガーされます。
![workflow_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/554be3d3-14d6-27af-f4a4-5b37ba61a21c.png)

2. 「管理」>「要求と承認」と移動すると、トリガーされたワークフローの進行状況を確認できます。
![workflow_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/a1391ed1-3e4c-fc43-a556-8467f3ab8485.png)

3. 承認者に設定したユーザにメール通知が届きます。
「Approve」を選択すると、Azure Purview Studioの承認画面へ遷移します。
![workflow_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/a0db889f-f920-890c-3bd0-507fdcdee864.png)

4. 応答ステータスを「承認する」に変更し、「確認」を選択します。
![workflow_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/41856cd6-f650-4f1c-b019-ff221301035f.png)

5. 「ワークフローの実行」から、ワークフローが完了したことを確認します。
また、承認リクエストを送信したユーザに、ビジネス用語の作成が承認された通知が届きます。
![workflow_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/424a113d-a263-11a7-70ff-8335ed619720.png)

6. 「データカタログ」>「用語集の管理」と移動し、先ほど作成・承認された`Workflow test`が追加されていることを確認します。
![workflow_19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1871738/4ee534ac-f962-3e85-9427-e5cd339002b4.png)

## まとめ

今回は、Azure Purviewでワークフローを作成し、作成されたビジネス用語の承認を自動化する一連の過程を検証しました。

ワークフローの作成はテンプレートを利用することで簡略化でき、承認者側の作業も最小限に抑えられている印象です。

Azure Purviewを利用したデータガバナンスの推進は、複数のメンバーが関わるケースがほとんどかと思われます。
データアセットや人員が増えていく中でも各承認プロセスを手動で実施する運用は、作業コスト増大や人的ミス発生の可能性を考慮すると望ましくありません。
そのような観点から、Azure Purviewのワークフロー機能は、承認プロセスにおける依頼者と承認者の双方の負担を軽減してくれる機能ではないかと思います。