Cloud Run でデフォルトの認証情報が見つかりません

WBOY
リリース: 2024-02-06 09:57:04
転載
1204 人が閲覧しました

在 Cloud Run 中找不到默认凭据

質問内容

postgres 方言を使用して Cloud Spanner と通信するプログラムを作成しています。私のアプリケーションは gin サーバーであり、このドキュメントで説明されているように pgadapter を使用して接続しています。

私のアプリケーションはローカルで正常に動作します。しかし、クラウドにデプロイして実行すると、次のログが表示されます。

このエラーは主に、startpgadapterwithcredentials 関数に起因します。

リーリー

私のローカル システムでは、google_application_credentials が設定されており、資格情報を取得できるようになります。ただし、クラウドで実行している場合、これは機能しません。

クラウドランで実行するにはどうすればよいですか?

追加情報: ここに示されている例に従ってください。


正解


Cloud Run の埋め込みコンテナで PGAdapter を起動し、環境から PGAdapter にサービス アカウントの認証情報をコピーしようとしているようです。埋め込みコンテナ。問題は、Cloud Run が基盤となるサービス アカウント ファイルへのアクセスを提供しないことです。代わりに、Google Cloud ライブラリに環境のデフォルトの認証情報を取得させる必要があります。

この例の難しい部分は、組み込みコンテナーで PGAdapter を開始していることです。これは、その環境にはデフォルトの資格情報がないことを意味します。 Cloud Run で PGAdapter を実行する推奨方法は、PGAdapter をメイン コンテナに含めることです。これにより、PGAdapter は Cloud Run によって提供されるデフォルトの認証情報のみを取得できるようになります。これは、PGAdapter の起動時に -c /path/to/credentials.json パラメーターを指定しないことを意味します。

PGAdapter をメイン コンテナに含める方法は (少なくとも) 2 つあります。

  1. Java .jar ファイル ビルドを Docker イメージに追加し、コンテナーで PGAdapter を起動します。 .jar ファイルから PGAdapter を直接起動する方法については、[この例] を参照してください。これには、Java JRE を Docker イメージに追加する必要もあります。
  2. Docker ビルドで PGAdapter ベースの Docker イメージを拡張します。これには、PGAdapter に必要なすべての依存関係が自動的に含まれます。基本イメージの ENTRYPOINT をオーバーライドする必要があります。

後者のオプションの広範な (実行可能な) 例については、Go の PGAdapter Cloud Run の例 を参照してください。

以上がCloud Run でデフォルトの認証情報が見つかりませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート