Posted at

ChaliceでAWS CLIのプロファイルを切り替える

More than 1 year has passed since last update.

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は便利なフレームワークだが、枝葉末節の部分は上述の通り仕様がちぐはぐだったり未実装の部分もあったりする。今後のバージョンアップで改善されていくとは思うが、暫くは地雷をうまく避けつつ活用していきたい。