Alteryx ServerのWorkerを実行するユーザーを指定する – Alteryx Serverアドベントカレンダー2022
こんにちは、スズです。
本記事はAlteryx Serverアドベントカレンダーの22日目の記事です。
ワークフローを実行する際にDSNを参照する必要がある場合、ワークフローを実行するユーザーをデフォルトから変更するといった設定が必要になります。22日目は、System SettingsにあるWorkerを実行するユーザーアカウントの設定についてご紹介します。
利用環境
本記事の執筆に使用しているAlteryx Serverの環境は以下の通りです。
- Windows Server 2022 (Amazon EC2)
- Alteryx Server 2022.1
- 認証タイプ:Built-in
- Alteryx Designer 2022.1
Workerを実行するユーザーを指定する
Google BigQueryからデータを取得するという簡単なワークフローを使って、デフォルトの設定の場合(Workerを実行するユーザーを指定していない場合)と、Workerを実行するユーザーを指定した場合の動作を見ていきます。
前提として、Alteryx Designerを使用している環境とAlteryx Serverを使用している環境には、ODBCで同じ名前のDSNを設定しています。作成したワークフローではこのDSNを使ってGoogle BigQueryに接続します。また、Alteryx ServerのDSNについてはAdministratorのアカウント上に作成しています。
デフォルトの設定でワークフローを実行した場合
まずはデフォルトの設定の場合の動作を見ていきます。Alteryx DesignerからワークフローをAlteryx Serverに保存してみます。
保存の結果を確認すると「保存完了」と表示されていますが、バリデートのエラーが発生しています。エラーの内容として、「データソース名および指定された既定のドライバーが見つかりません。」とあります。
ブラウザでAlteryx Serverにサインインして確認してみると、ワークフローは保存されています。
保存した際のジョブ結果として、「ワークフローの実行がエラーで完了しました。」となっています。
Alteryx Serverのサービス(Alteryx Service)は、デフォルトではローカルシステムアカウントで起動します。AdministratorのアカウントでDSNを作成していますが、Alteryx ServerはDSNを参照できないため、実行エラーになるということになります。
指定のユーザーでWorkerを実行する
DSNを設定したユーザーアカウントを使うことでDSNを参照できますので、ワークフローを実行できるようになります。ワークフローをユーザーを設定する方法として、System SettingsでWorkerを実行するユーザーアカウントを設定する方法があります。System Settingsを開き、[Worker] > [Run As ...]まで移動します。[Run the Worker as a Different User?]の画面では、以下の説明があります。
Workers can be configured to run workflows as a specified user or account. This allows the workflow to access files or data that may otherwise be inaccessible by default.
ここではWorkerが実行するユーザーアカウントを設定することができ、これによりデフォルトではアクセスできないファイルなどにアクセスできるようになります。
[Run as a different user]を有効にし、Domain、Username、Passwordを設定します。今回使用している環境はドメイン環境ではないため、Domainにはマシン名を入力しています。Workerが実行するユーザーアカウントを設定したら、System Settingsを先に進めてファイナライズします。
System Settingsの設定後、先ほど保存したワークフローを実行してみると、今度はワークフローの実行に成功しました。以下の画像の黄色の網掛け部分がここで実行したジョブです。
実行したワークフローは、BigQueryからデータを取得してExcelファイルに出力するといった内容になっています。ジョブを確認すると、Excelファイルをダウンロードできるようになっています。
System Settingsで[Run as a different user]を設定する前は、Alteryx Serverにワークフローを保存した際はバリデートのエラーになっていました。[Run as a different user]を設定したのち、同じワークフローを保存してみます。
今度はバリデートのエラーも発生せず、ワークフローを保存できました。
最後に
Alteryx Serverアドベントカレンダー22日目、Workerを実行するユーザーの指定についてお届けしました。