Java 用 Azure Purview Workflow クライアント ライブラリ - バージョン 1.0.0-beta.2
ワークフローは自動化された反復可能なビジネス プロセスであり、ユーザーは Microsoft Purview 内に作成して、データ エンティティに対する CUD (作成、更新、削除) 操作を検証し、調整することができます。 これらのプロセスを有効にすると、組織は変更を追跡し、ポリシー準拠を強制し、データ ランドスケープ全体の品質の高いデータを確保できます。
Purview Workflow のクライアント ライブラリを使用して、次の作業を行います。
- ワークフローの管理
- ユーザー要求を送信し、ワークフローの実行を監視する
- ワークフロー タスクの表示と対応
ワークフローの使用方法の詳細については、サービスのドキュメントを参照してください
作業の開始
前提条件
- バージョン 8 以降の Java Development Kit (JDK)
- Azure サブスクリプション
- 既存の Azure Purview アカウント。
認証
ワークフロー サービスは認証と識別に Azure Active Directory (AAD) ベアラー トークンを使用するため、ワークフローを使用する場合に通知できるように、電子メール アドレスをトークンにエンコードする必要があります。 Azure ID ライブラリは UsernamePasswordCredential と共に使用することをお勧めします。 ワークフローで Azure Identity ライブラリを使用する前に、UsernamePasswordCredential に渡される clientId にアプリケーションを登録して使用する必要があります。
以下に示す UsernamePasswordCredential プロバイダー、または Azure SDK で提供されている他の資格情報プロバイダーを使用するには、パッケージを azure-identity
含めてください。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.10.4</version>
</dependency>
クライアント ID、AAD アプリケーションのテナント ID の値を環境変数として設定します(AZURE_CLIENT_ID、AZURE_TENANT_ID)。 AAD ユーザーのユーザー名とパスワードの値を環境変数として設定します(USER_NAME、PASSWORD)。
WorkflowClient purviewWorkflowClient = new WorkflowClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "endpoint"))
.credential(new UsernamePasswordCredentialBuilder()
.clientId(Configuration.getGlobalConfiguration().get("CLIENTID", "clientId"))
.tenantId(Configuration.getGlobalConfiguration().get("TENANTID", "tenantId"))
.username(Configuration.getGlobalConfiguration().get("USERNAME", "username"))
.password(Configuration.getGlobalConfiguration().get("PASSWORD", "password"))
.build())
.buildClient();
例
次のセクションでは、次のような最も一般的なシナリオをカバーするいくつかのコード スニペットを示します。
ワークフローを作成する
BinaryData workflowCreateOrUpdateCommand =
BinaryData.fromString(
"{\"name\":\"Create glossary term workflow\",\"description\":\"\",\"triggers\":[{\"type\":\"when_term_creation_is_requested\",\"underGlossaryHierarchy\":\"/glossaries/20031e20-b4df-4a66-a61d-1b0716f3fa48\"}],\"isEnabled\":true,\"actionDag\":{\"actions\":{\"Startandwaitforanapproval\":{\"type\":\"Approval\",\"inputs\":{\"parameters\":{\"approvalType\":\"PendingOnAll\",\"title\":\"ApprovalRequestforCreateGlossaryTerm\",\"assignedTo\":[\"eece94d9-0619-4669-bb8a-d6ecec5220bc\"]}},\"runAfter\":{}},\"Condition\":{\"type\":\"If\",\"expression\":{\"and\":[{\"equals\":[\"@outputs('Startandwaitforanapproval')['body/outcome']\",\"Approved\"]}]},\"actions\":{\"Createglossaryterm\":{\"type\":\"CreateTerm\",\"runAfter\":{}},\"Sendemailnotification\":{\"type\":\"EmailNotification\",\"inputs\":{\"parameters\":{\"emailSubject\":\"GlossaryTermCreate-APPROVED\",\"emailMessage\":\"YourrequestforGlossaryTerm@{triggerBody()['request']['term']['name']}isapproved.\",\"emailRecipients\":[\"@{triggerBody()['request']['requestor']}\"]}},\"runAfter\":{\"Createglossaryterm\":[\"Succeeded\"]}}},\"else\":{\"actions\":{\"Sendrejectemailnotification\":{\"type\":\"EmailNotification\",\"inputs\":{\"parameters\":{\"emailSubject\":\"GlossaryTermCreate-REJECTED\",\"emailMessage\":\"YourrequestforGlossaryTerm@{triggerBody()['request']['term']['name']}isrejected.\",\"emailRecipients\":[\"@{triggerBody()['request']['requestor']}\"]}},\"runAfter\":{}}}},\"runAfter\":{\"Startandwaitforanapproval\":[\"Succeeded\"]}}}}}");
RequestOptions requestOptions = new RequestOptions();
Response<BinaryData> response =
purviewWorkflowClient.createOrReplaceWithResponse(
"4afb5752-e47f-43a1-8ba7-c696bf8d2745", workflowCreateOrUpdateCommand, requestOptions);
ユーザー要求を送信する
BinaryData userRequestsPayload =
BinaryData.fromString(
"{\"comment\":\"Thanks!\",\"operations\":[{\"type\":\"CreateTerm\",\"payload\":{\"glossaryTerm\":{\"name\":\"term\",\"anchor\":{\"glossaryGuid\":\"20031e20-b4df-4a66-a61d-1b0716f3fa48\"},\"nickName\":\"term\",\"status\":\"Approved\"}}}]}");
RequestOptions requestOptions = new RequestOptions();
Response<BinaryData> response =
userRequestsClient.submitWithResponse(userRequestsPayload, requestOptions);
ワークフロー タスクを承認する
BinaryData approvalResponseComment = BinaryData.fromString("{\"comment\":\"Thanks for raising this!\"}");
RequestOptions requestOptions = new RequestOptions();
Response<Void> response =
approvalClient.approveWithResponse(
"69b57a00-f5de-4a17-a44a-6479adae373d", approvalResponseComment, requestOptions);
主要な概念
トラブルシューティング
次のステップ
共同作成
このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどのコントリビューションは、[共同作成者使用許諾契約書 (CLA)][cla] に同意する必要があります。お客様は、お客様の投稿を使用する権利を当社に付与する権利を付与し、実際に行う権利を付与します。
pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。
このプロジェクトでは、[Microsoft Open Source Code of Conduct][coc] を採用しています。 詳細については、[行動規範に関する FAQ][coc_faq] を参照するか、[opencode@microsoft.com][coc_contact] にお問い合わせください。
Azure SDK for Java