次のようにローカルでGoogle Cloud SQLプロキシを実行しようとしています。
$ ./cloud_sql_proxy -instances project-name:region-name:instance-id tcp:3306
しかし、それは戻ってきています
google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for mor information.
私のGoogle Cloud SDKはすでにインストールされ、Googleにログインしています。
どうすれば修正できますか?
2つの問題が原因で問題が発生している可能性があります。
ログインとは何かを見つけるには:
gcloud auth login
Gcloudの最新バージョンがある場合は、次のようになります。
WARNING: `gcloud auth login` no longer writes application default credentials.
ローカルアプリケーションで必要な資格情報を使用するには( ref ):
gcloud auth application-default login
この警告が表示されない場合は、 ploading gcloud を検討してください。
gcloud components update
ログインすると、次のように表示されます。
Your current project is [project-id].
もう一度2つのソリューション:
これが表示されない場合は、( ref )を実行してください。
gcloud config set project PROJECT_ID
--project
フラグを使用するコマンドでプロジェクトを関連付けます。
.\cloud_sql_proxy -instances=project-id:region-name:instance-id=tcp:3306 --project=project-id
Googleアプリケーションのデフォルト認証情報は、gcloud認証情報とは別に管理されます。
使用する
gcloud auth application-default login
代わりに、ユーザー資格情報をアプリケーションのデフォルトとして設定します。詳細は reference を参照してください。
以前はgcloud auth login
がこれを行いましたが、より最近のCloud SDKバージョンでは、これは当てはまりません。
Gcloud構成または設定アカウントを切り替えても、アプリケーションのデフォルト認証情報は更新されないことに注意してください。これらを管理するために使用できるのは、gcloud auth application-default
のコマンドのみです。
また、サービスアカウントをアプリケーションのデフォルト認証情報として使用するには、開発者 console からjsonキーをダウンロードして直接使用できます。