いつもとは異なるアカウントで GAE にデプロイする【追記あり】

2017年2月14日 19:32

とりあえず今回は、GoogleAppEngineLauncher を使わず、コマンドラインから Google App Engine(GAE)のデプロイを行なっているという前提。また、Google アカウントを2段階認証にしていることも関係していると思われる。

僕は普段、プロジェクトのカレントディレクトリに移動した後、以下のコマンドを実行している。

$ appcfg.py update .

ツイートでは gcloud init コマンドで新しいアカウントを作成する云々と書いてはいるが、2段階認証の場合、OAuth2 によってアプリ(この場合は Google App Engine appcfg)にアクセス権が付与されているアカウントが使われるため、この方法では解決しない。ちなみに、アクセス権の付与状況は アカウントがアクセスをできるアプリ にて確認できる。もひとつちなみに、ここからアクセス権を削除して認証をやり直せば当初の目的は達成できるが、今度は普段使っているアカウントに戻したいときも、同様に認証をやり直さねばならなくなる。

そんな面倒は嫌なので、普段使いのアカウント以外を使いたいときにだけ、例外的な手順を踏むことにする。つまり、ツイート中にある --no_cookies オプションを使う。

$ appcfg.py update . --no_cookies

実行すると、アクセス権の付与を求める例の Google のページが表示される。が、事前にブラウザの「ユーザー」が、デプロイ時に使いたいアカウント(ユーザー)になっている必要がある。僕の場合は、Google Chrome の右上のメニューからユーザーを切り替えてブランクページを表示してから、上記コマンドを実行している。


2019/10/23 追記

さすがにもう appcfg.py を使っている人は皆無(というか、もう使えない?)だと思うので補足。gcloud コマンドを使って別アカウントでデプロイするには、以下を実行すればいい。appcfg.py 同様、事前に該当するアカウントのページをアクティブにしておくこと。

$ gcloud auth login

ただしこの場合はログインをやり直すのみなので、デプロイのコマンドは別途必要になる。

$ gcloud app deploy --version <version> --project <project_name>