前編からの続きとなります。後編となる今回は
- 動作カスタマイズ設定
- バックグランドサービス化処理
- Tableau Server管理画面上での設定
を解説いたします。
(6)起動・動作に関する各種設定。
起動・動作に関する設定は.confファイルで行います。前編で行った構成例(AnacondaをC:\Anaconda3にインストール、動作環境として"Anaconda Prompt(Tableau-Python-Server)"を設定)ですとデフォルト設定となる"default.conf"は
C:\Anaconda3\Lib\site-packages\tabpy\tabpy_server\common\default.conf
に生成されます。各設定項目と内容の詳細についてはgithub上のこちらのページを参照ください。
https://tableau.github.io/TabPy/docs/server-config.html
基本的には必要なパラメータに対し値を設定する形式ですが、少し分かりづらい「https設定」と「使用ユーザー登録設定」について、ここで解説いたします。
(6)-1:https設定
TABPY_TRANSFER_PROTOCOL:通信時プロトコルにhttpを用いるかhttpsを用いるかを設定します。デフォルトはhttpですのでhttpsにしたい場合には
TABPY_TRANSFER_PROTOCOL = https
と設定しますが注意点として。さらに「セキュリティ証明書」「キーファイル」の指定を行う必要があります。設定先はそれぞれ
TABPY_CERTIFICATE_FILE
TABPY_KEY_FILE
となります。
TABPY_CERTIFICATE_FILE:セキュリティ証明書(.crt)の配置場所を指定します。フルパスで指定してください。
TABPY_CERTIFICATE_FILE = C:\hogehoge\hogehoge.crt
TABPY_KEY_FILE:キーファイル(.key)の配置場所を指定します。フルパスで指定してください。
TABPY_KEY_FILE = C:\hogehoge\hogehoge.key
(6)-2:使用ユーザー登録設定
先に注意点として。
- ここで言うユーザー登録とはTableau Serverにログインする際のID/パスワードとは別物となります。あくまでTabPyの機能を使用する際にパスワード認証を設ける場合のみ使用します。
- Tableau Serverの管理画面から登録はできません。TabPyインストール後、サーバー上でコマンドラインから行う必要があります。
- 予め登録ユーザーリストを格納するテキストファイル(中身は空でよい)を準備する必要があります。
TABPY_PWD_FILE:TabPyを使用可能なユーザーを限定(パスワード認証)する場合、登録ユーザーリストを保管するファイルの配置場所を指定します。これが指定された場合、TabPy-Serverはこのリストをもとにユーザー認証を行います。
TABPY_PWD_FILE = C:\hogehoge\hogehoge.txt
実際のユーザー登録は上記設定とは別にコマンドライン上から行います。
書式:tabpy-user add -u [ユーザー名] -p [パスワード] -f [パスワードファイル]
- ユーザー名:登録するユーザー名を半角英文字で指定します。
- パスワード:設定するパスワードを記入します。
- パスワードファイル:TABPY_PWD_FILEで設定したtxtファイルをフルパスで指定します。このtxtファイル内にユーザー名と暗号化されたパスワードが記録されます。
(7)バックグランドサービスに登録する。
動作環境設定した"Anaconda Prompt(Tableau-Python-Server)"の起動スクリプトをタスクスケジューラーに登録し、常時バックグランド動作するよう設定します。
プログラムスクリプト:C:\Windows\System32\cmd.exe
引数の追加:”/K” C:\Anaconda3\Scripts\activate.bat C:\Anaconda3\envs\Tableau-Python-Server
以上の設定が済んだら起動確認します。サーバーを再起動させたのち、タスクマネージャーをチェック。"tabpy.exe"が動作していればOKです。
(8)TabPy-ServerとTableau Serverの連携設定を行う。
TabPy-ServerとTableau Serverの連携を行いますが、使用するTableau Serverのバージョンによって連携設定方法が異なります。なおこの前状態として
- Tableau Serverが動作しているサーバーに管理者アカウントでログインしている。
- Tableau Server本体のサービスはtsmコマンドでStopさせている。
ものとします。
(8)-1:Ver.2020.1以下の場合
tsmコマンドを用います。
tsm configuration set -k vizqlserver.extsvc.host -v localhost --force-keys
tsm configuration set -k vizqlserver.extsvc.port -v 9004 --force-keys
tsm pending-changes apply
pending-changes applyコマンドのあと、サービスを再起動するかどうかを聞かれるので"y"を入力してください。(もし聞かれなかった場合には"tsm start"でサービスを開始させてください。)
起動は環境によりますが数分-10数分程度かかります。Tableau Serverの起動が完了したことを確認したらTableau Server以外のPCからWebブラウザ経由で管理者ログイン。Pythonコードを含むサンプルのダッシュボード画面で挙動を確認してください。
もし挙動が想定どおりでない場合には管理者画面に移動。
- 「すべてのサイトの管理」=>「拡張」>「分析機能拡張」
のメニューまで飛び、「分析拡張機能を有効にする」旨記載されたテキスト左にチェックマークが入っていなかったらチェックを入れたうえで再度確認してください。
(8)-2:Ver.2020.2-2020.4の場合
Ver.2020.2以降からはtsmコマンドによる追加設定は不要です。停止しているTableau Serverを起動します。
tsm start
Tableau Serverのログイン画面にブラウザからアクセス。管理者アカウントでログインします。
ログイン後の設定はTableau公式のこちらのページをご参照ください。
補足で各バージョン共通で出てくる設定項目「分析サービスの構成設定を入力」ウィンドウでの各設定項目と内容につきまして。
- Connection Type:”TabPy/Analytics Extension”を選択してください。
- Require SSL:.confの編集でSSLを設定した場合にはチェックマークを入れてください。
- Host名入力欄:localhost
- Port番号入力欄:9004
- Sign in with a username and password:.confおよびtabpy-userコマンドでユーザー登録した場合にはチェックマークを入れて、設定したユーザー名とパスワードを入れてください。
設定が済んだらPythonコードを含むサンプルのダッシュボード画面で挙動を確認してください。
(8)-3:Ver.2021.1以降(最新版)の場合
Tableau Serverを起動したのちTableau Serverのログイン画面にブラウザからアクセス。管理者アカウントでログインします。
ログイン後の設定はTableau公式のこちらのページをご参照ください。
(9)参考ページ紹介
今回の記事作成にあたり、以下のページを参考といたしました。
- Tabpy – Tableau Server + Python 連携 を使ってみよう!(その 4 : Tableau Server との連携編)
- フローでのPythonスクリプトの使用(公式サイト、ヘルプページより)
- 既存Anaconda環境を利用してTabpy-Serverを導入する
- How to configure TabPy with authentication and use it in Tableau
- TabPy(github内ドキュメント)
- TabPyをインストールしてみた(DevelopersIO)
- TabpyをCloud Run(on GKE)で使う(Qiita)
(10)おまけ:で、結局SPAM®むすびはどうなったの?
SPAM®むすびおいしかったです。でも個人的にはSPAM®は表面に焼き色付けたほうが好みです。なおTabPyの動作確認にサンプルコード組む際はくれぐれもSPAM®を連呼するコードは組まないよう、お気をつけください。おしまい。