Chalice 1.6.0でAWS CLIのプロファイルにデフォルト以外のものを使おうとしたら地味に躓いたので、備忘録がてら記しておく。Chaliceについては以前にも「Chaliceでハマらないために」という記事を書いたので、Chaliceであちこちハマっている方はそちらも参照されたい。
プロジェクトの作成
chalice new-project project-name --profile profile-name
このようにオプションを付加すると、config.json
にプロファイルが書き込まれる。
{ "version": "2.0", "app_name": "project-name", "stages": { "dev": { "api_gateway_stage": "api" } }, "profile": "profile-name" }
ただし、これでプロジェクト上では勝手に profile-name
を使ってくれると思っているとハマる(後述)。
デプロイ
chalice deploy --profile profile-name
これで指定したプロファイルを使ってデプロイできる。
せっかく config.json
に書き込まれているのに…とは思うが、こちらで指定されているプロファイルはデプロイ時には参照されない。つまり、プロファイルを指定しなければAWS CLIのデフォルトのプロファイルでデプロイされてしまうので注意が必要だ。
ローカル開発
# 中に誰もいませんよ
ローカル開発に関しては、そもそも chalice local
コマンドがプロファイルのオプションを持っておらず、かつ config.json
の指定も参照されず、問答無用でデフォルトのプロファイルが使われる。面倒だが、現時点ではAWS CLI側の設定を変更して対応する必要があるようだ。
おわりに
Chaliceは便利なフレームワークだが、枝葉末節の部分は上述の通り仕様がちぐはぐだったり未実装の部分もあったりする。今後のバージョンアップで改善されていくとは思うが、暫くは地雷をうまく避けつつ活用していきたい。