Google Cloud Platform では認証情報をJSON形式などでダウンロードすることで外部のアプリケーションから BigQuery などのサービスにアクセスすることができます。しかし、認証情報を読み込ませるのに苦労したので解決までのメモを残しておきます。
環境
- Ubuntu 20.04
- Go 1.13
どこで詰まったのか
ドキュメントにあるようにJSONまでのパスを環境変数にセットしました。
export GOOGLE_APPLICATION_CREDENTIALS=/home/.../credential.json
さあ、これでアクセスできると考えプログラムを走らせたところ
Response: { "error": "invalid_grant", "error_description": "Token has been expired or revoked." }
。。。いや、今発行したばかりなのに期限切れとか取り消されたとかなんだよ。試しに、.bashrc
にこの環境変数をセットして試してみましたがダメでした。echo $GOOGLE_APPLICATION_CREDENTIALS
で確認するとちゃんとセットした値が出てくるので環境変数には正しく設定されているんだよな。。。
どう解決したか
最終的に、これはプロジェクトのルートディレクトリに .env
を作ってそこに
GOOGLE_APPLICATION_CREDENTIALS=/home/.../credential.json
とセットし、main()
の中で.envファイルを読み込むとエラーがでなくなりました。なぜかはわかりません。

- 作者:クラウドエース株式会社 吉積 礼敏・他
- 発売日: 2019/04/19
- メディア: 単行本(ソフトカバー)