35歳からの中二病エンジニア

社寺・鉄道・アニメを愛でるウェブ技術者の呟き

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

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