ホームページ >バックエンド開発 >Golang >Go 1.11 を使用して Google App Engine Standard でプライベート Go モジュールを認証するにはどうすればよいですか?

Go 1.11 を使用して Google App Engine Standard でプライベート Go モジュールを認証するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 07:52:30415ブラウズ

How to Authenticate Private Go Modules in Google App Engine Standard with Go 1.11?

Go 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 のモジュールを使用することをお勧めします。モジュール置換機能。これにより、ローカル プロジェクトはビルド中にプライベート モジュールのローカル コピーを使用できるようになります。

メソッド:

  1. ビルド ディレクトリを作成します: メイン プロジェクト ディレクトリ内にビルド ディレクトリを作成します。
  2. ソース コードをシンボリックリンクします。 プロジェクトの src ディレクトリをビルド ディレクトリ内の src ディレクトリにリンクします。
  3. プライベート モジュールのクローンまたはコピー: ビルド内のモジュール ディレクトリのサブディレクトリに必要なプライベート モジュールのクローンまたはコピーを行います。
  4. 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。