Go 1.11 を使用した Google App Engine 標準でのプライベート Go モジュールの認証
Go 1.11 では、モジュールの導入により、より効率的な方法が提供されます。依存関係の管理について。ただし、Google App Engine Standard でプライベート モジュールを使用する場合、認証の問題が発生する可能性があります。この問題は、gcloud appdeploy を試みて 403 Forbidden エラーが発生したときに明らかになります。
この問題を解決するには、ベンダーやサードパーティの依存関係管理ツール (DEP など) の使用などの従来のアプローチが採用されてきました。ただし、新しいモジュール システムでは、これらのソリューションは理想的ではない可能性があります。
モジュール置換を使用したソリューション
認証情報を扱う代わりに、実行可能なソリューションは Go のGAE にローカル コードを使用するよう指示するモジュール置換機能。このアプローチには以下が含まれます:
ディレクトリ構造のセットアップ:
次のディレクトリ構造でプロジェクトを整理します:
myService/ |__ src/ | |__ service.go | |__ go.mod |__ build/ |__ gae/ |__ src/ // Symlink to ../../src |__ modules/ // Git ignored |__ app.go |__ go.mod |__ app.yaml
GAE go.mod の変更:
gae ディレクトリに go.mod ファイルを作成し、replace を使用してプライベート モジュールのローカル パスを含む依存関係を指定します。 :
module myServiceGAE require ( bitbucket.org/me/myService v0.0.0 google.golang.org/appengine v1.4.0 ) replace bitbucket.org/me/myService => ./src
プライベート モジュールの複製またはコピー:
gae ディレクトリの下の module フォルダーで、プライベート モジュールを複製またはコピーします。プロジェクトをビルドします。
このアプローチにより、GAE がデプロイ中に正しいバージョンを使用できるようにしながら、プライベート モジュール コードをメイン プロジェクトから切り離すことができます。
長所:
短所:
以上がGo 1.11 を使用して Google App Engine Standard でプライベート Go モジュールを認証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。