1. はじめに

皆さんこんにちは。

本書では、サービスプリンシパルを利用したジョブ実行方法について説明していきます。

通常、ジョブ作成時には、ジョブ作成者のユーザIDを利用しDatabricksのジョブが実行されます。
ただし、下記の制限があります。

・ジョブを作成・実行できるのは、該当の権限をもったユーザーのみです。
・ジョブ作成者のみがジョブにアクセスできます。
・ジョブ作成者がワークスペースから削除された場合、ジョブが動かなくなります。

2. アプリケーションを作成

① Azure Portalのサイドバーから「Azure Active Directory」をクリックします。

②「アプリの登録」をクリックし、「新規登録」をクリックします。

③ アプリケーション名前を入力して、「登録」ボタンをクリックします。

④ 以下の手順で使用するためにクライアント ID を保存してください。

3. ワークスペースにサービスプリンシパルを追加

こちらの手順でワークスペースにアクセスします。

② ワークスペースからユーザーアカウントをクリックして、「Manage Account」を選択します。ユーザー管理画面が表示されます。

③ ユーザー管理画面でサイドバーから「User management」をクリックして、「Service principals」タブをクリックします。「Service principals」タブで「Add service principal」をクリックします。

④ 「Name」項目でサービスプリンシパル名を入力します。

⑤ 「UUID」項目でClientIDを入力します。「Add」ボタンをクリックします。

※ ClientIDは以上の手順で格納したアプリケーションIDです。

⑥ サイドバーから「Workspaces」をクリックして、ワークスペース名を選択します。

⑦ 「Permissions」タブをクリックして、「Add permissions」ボタンをクリックします。

⑧ 最初のドロップダウンでサービスプリンシパル名を選択して、2番目のドロップダウンで「User」を選択します。「Save」ボタンをクリックします。

4. ジョブを実行

4.1 サービスプリンシパルに権限を付与

ジョブを実行できるように、サービスプリンシパルにクラスタの作成権限を付与する必要があります。

① こちらの手順でワークスペースにアクセスします。

② ワークスペースからユーザーアカウントをクリックして、「Admin Settings」を選択します。管理者の設定画面が表示されます。

③ 「Service principals」タブでサービスプリンシパル名を選択します。

④ ④ 「Allow cluster creation」チェックボックスを有効にして、「Update」ボタンをクリックします。

4.2 ノートブックを作成

① サイドバーから「New」をクリックして「Notebook」を選択します。

② ノートブック名を更新して、以下のコマンドをノートブックに入力します。

③ サービスプリンシパルにノートブックの読込権限を付与する必要があります。サイドバーから「Workspace」をクリックして、作成したノートブック「DemoNotebook」にマウスを移動します。

アイコンをクリックして「Permissions」を選択します。

⑤ 最初のドロップダウンでサービスプリンシパル名を選択し、2番目のドロップダウンで「Can Read」権限を選択します。「Add」ボタンをクリックします。

⑥ 「Save」ボタンをクリックします。

4.3 ジョブを実行

① サイドバーから「Workflows」をクリックして「Create job」をクリックします。

② 「Task name」項目でタスク名を入力して、「Type」項目で「Notebook」を選択します。

③ 「Source」項目で「Workspace」を選択します。「Path」項目で作成したノートブックを選択します。

④ 他の項目は初期設定のままにします。「Create」ボタンをクリックします。

⑤ ジョブ名を入力して「Confirm and create」をクリックします。

⑥ 「Edit permissions」をクリックします。

ジョブには所有者を一人だけで指定できるので、作成者に「Can Manage」権限を更新する必要があります。

⑦ 「Is Owner」をサービスプリンシパルに追加します。「Save」ボタンをクリックします。

⑧ サービスプリンシパルを確認して「Run now」をクリックします。

⑨ 表示されているダイアログで「View run」をクリックします。

⑩ 結果が画像のように表示されます。ジョブはサービスプリンシパルによって実行されます。

5. まとめ

Azure Databricksのサービスプリンシパルを利用したジョブ実行方法について説明しました。

今回の記事が少しでもDatabricksを知るきっかけや、業務のご参考になれば幸いです。

日商エレクトロニクスでは、Azure Databricksの環境構築パッケージを用意しています。

Azure DatabricksやAzure活用、マイクロソフト製品の活用についてご相談事がありましたらぜひお問い合わせください!

Azure Databricks連載記事のまとめはこちら
お問い合わせはこちら


この記事を読んだ方へのオススメコンテンツはこちら