Go 1.11 を使用して Google App Engine Standard でプライベート Go モジュールを認証するにはどうすればよいですか?
Oct 26, 2024 am 07:52 AMGo 1.11 を使用した Google App Engine Standard のプライベート Go モジュールの認証
Go App Engine Standard プロジェクトを Go 1.11 モジュールに更新する場合、認証プライベート モジュールの場合は課題が生じる可能性があります。デフォルトでは、Google Cloud ビルド システムはプライベート リポジトリにアクセスできません。
エラー:
プライベート モジュールを含むプロジェクトをデプロイしようとすると、エラーが発生します次のようなメッセージが発生する可能性があります:
ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build <GUI> status: FAILURE. Build error details: go: bitbucket.org/[email protected]: https://api.bitbucket.org/2.0/repositories/myPrivateRepo?fields=scm: 403 Forbidden
Can It Be Done?
はい、Go 1.11 モジュールを使用して App Engine Standard でプライベート モジュールを認証することができます。 。ただし、GOPATH へのファイルの移動に関する移行ドキュメントのガイダンスは誤解を招くものです。確かに、新しいモジュール システムは、コードを GOPATH の外に保持するように設計されています。
解決策: Module Replace を使用する
資格情報を管理する代わりに、Go のモジュールを使用することをお勧めします。モジュール置換機能。これにより、ローカル プロジェクトはビルド中にプライベート モジュールのローカル コピーを使用できるようになります。
メソッド:
- ビルド ディレクトリを作成します: メイン プロジェクト ディレクトリ内にビルド ディレクトリを作成します。
- ソース コードをシンボリックリンクします。 プロジェクトの src ディレクトリをビルド ディレクトリ内の src ディレクトリにリンクします。
- プライベート モジュールのクローンまたはコピー: ビルド内のモジュール ディレクトリのサブディレクトリに必要なプライベート モジュールのクローンまたはコピーを行います。
- GAE 固有の go.mod ファイルを作成します: ビルド ディレクトリのルートに、replace ディレクティブを使用してプライベート モジュールを参照する新しい go.mod ファイルを作成します。例:
module myServiceGAE require ( bitbucket.org/me/myService v0.0.0 google.golang.org/appengine v1.4.0 ) replace bitbucket.org/me/myService => ./src replace bitbucket.org/me/myModule => ./modules/utils
長所:
- プロジェクトと GAE の間の関心事の分離を維持
- 非 GAE 環境用のパッケージ
短所:
- プライベート モジュールが別のプライベート モジュールに依存する場合、複雑になる可能性があります
以上がGo 1.11 を使用して Google App Engine Standard でプライベート Go モジュールを認証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

GOの実際のパフォーマンスを正確に反映するベンチマークを作成するにはどうすればよいですか?
