概要
GCPのリソースを操作する際はサービス アカウントでjsonキーをダウンロードし、
環境変数に先程ダウンロードした
GOOGLE_APPLICATION_CREDENTIALS
で指定する必要があります。今回StackStormでBigQueryを操作するために調査してみました。
virtualenv内で指定する
StackStormはアクション毎にvirtualenv環境を作っているようです。なのでvirtualenvで環境変数を定義することでもできるかと試してみる。
アクションスクリプトのあるディレクトリに移動
cd /opt/stackstorm/virtualenvs
virtualenv 環境へ入る
今回は default
にあるvirtualenvに入ります。
source default/bin/activate
※ちなみに抜ける時は deactivate
環境変数の指定
vi default/bin/postactivate
export GOOGLE_APPLICATION_CREDENTIALS="/opt/stackstorm/script/account-key.json"
env内では指定できてるけどactionでは動いてない...?
コード内で指定する
結局これです。os.environ
でキーを指定することでBigQueryを操作することができました。
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '/opt/stackstorm/script/account-key.json'