TD CLIの環境変更を簡単にする方法 for mac


TD Toolbelt

Treasure Dataには、コマンドラインツールTD Toolbeltがあります。
最初にtd accountコマンドで認証情報を設定すれば、あまり変更することはないと思いますが、環境を切り替えるのがめんどくさい人とかいるかもしれません、知らんけど。
本記事は、envchainを使ったTD環境の切替方法をまとめました。
envchainを使えば暗号化されるので、ある程度安全にAPIキーを保持できます(保証はしません)し、そんなに使い勝手も悪くないと思います。

前提

  • Treasure Dataをご利用。
  • macを使用している。(catalina 10.15.7で確認)

envchainのインストール

envchainのインストール方法は、たくさん文献があると思いますが一応記載します。homebrewを使用してインストールします。

% brew install envchain

APIキー、APIサーバーの登録

APIキーは、TDコンソールのMy Profileにある「API Keys」を参照することで確認できます。
envchainの登録は、次のコマンドを入力します。

envchain --set td-us TD_API_KEY TD_API_SERVER

その後、TD_API_KEYとTD_API_SERVERの入力を促されます。
例えば、envchainの登録名をtd-usとして、USリージョンの設定をする場合はこんな感じです。

% envchain --set td-us TD_API_KEY TD_API_SERVER
td-us.TD_API_KEY: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
td-us.TD_API_SERVER: https://api.treasuredata.com

ちなみに、東京リージョンはこんな感じです。(envchainの登録名は自由)

% envchain --set td-tk TD_API_KEY TD_API_SERVER
td-tk.TD_API_KEY: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
td-tk.TD_API_SERVER: https://api.treasuredata.co.jp

登録されたキーチェーンは、macOSの「キーチェーンアクセス」アプリケーションで確認できます。(なんとなく要らないところはマスクしてます)

envchainの使い方

envchainの登録をリスト表示

envchainコマンドで登録したもののリスト表示が可能です。

 % envchain --list

envchainに登録したキーを削除

envchainに削除コマンドが見当たらないので、「キーチェーンアクセス」アプリケーション上で削除するしかなさそうです。

tdコマンドの実行

実行するtdコマンドのアタマにenvchain <登録名>を付けるだけです。
例として、先ほどのUSリージョンで実行したい場合はこんな感じです。(これはconnectorのリストを表示するコマンドです。)

% envchain td-us td connector:list

参考URL

API Key and API Server Search Order Reference
https://tddocs.atlassian.net/wiki/spaces/PD/pages/1082090/API+Key+and+API+Server+Search+Order+Reference