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

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

DDD
リリース: 2024-10-29 12:46:03
オリジナル
1034 人が閲覧しました

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

Go 1.11 を使用した Google App Engine Standard でのプライベート Go モジュールの認証

Go アプリの Go 1.11 のモジュール システムにアップグレードする場合Engine Standard プロジェクトでは、プライベート モジュールの認証に課題が生じる可能性があります。移行ドキュメントに従って、プロジェクトをデプロイしようとすると、「403 Forbidden」エラーが発生する場合があります。

エラー

このエラーは、Google クラウド ビルド システムに起因します。モジュールをホストするプライベート リポジトリにアクセスできない。クラウド ビルド システムでは、展開中にリポジトリにアクセスするための認証情報が必要ですが、これらの認証情報は現在のセットアップでは提供されません。

解決策

この問題を解決するには、次のことができます。 Go のモジュール置換機能を利用します。これにより、リポジトリからプライベート モジュールをフェッチする代わりに、プライベート モジュールのローカル コピーを使用するようにクラウド ビルド システムを構成できます。

ディレクトリ構造

専用ディレクトリを作成するこのアプローチの構造:

myService/
    src/
        service.go  # contains run() function for routers and other setups
        go.mod      # depends on private and external modules
        ...         # other source files
    build/
        gae/
            src/        # symlink to ../../src
            modules/    # stores cloned or locally modified private modules
            app.go  # contains main() to call service.run() and appEngine.Main()
            go.mod  # includes main() and required modules
            app.yaml
ログイン後にコピー

構成

myService/gae/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

# Optionally replace other private modules
replace bitbucket.org/me/myModule => ./modules/utils
ログイン後にコピー

この構成は、src ディレクトリからの myService のローカル コピーを使用するようにクラウド ビルド システムに指示します。 replace ディレクティブは疑似ベンダーのように機能し、ビルド システムがリポジトリからフェッチする代わりにローカル バージョンを使用するようにします。

長所と短所

長所:

  • プライベート モジュール コードは Google Cloud と共有されず、プライバシーが維持されます。
  • プロジェクト コードは App Engine から切り離されたままであるため、他のプラットフォームと簡単に統合できます。 .

短所:

  • プライベート モジュールが他のプライベート モジュールに依存する場合、アプローチが複雑になる可能性があります。

結論

モジュールの置換と変更されたディレクトリ構造を使用すると、Go 1.11 を使用して Google App Engine Standard でプライベート モジュールを正常に認証できます。このアプローチはセキュリティと柔軟性の両方を提供し、プライベート モジュールをプロジェクトにシームレスに統合できるようにします。

以上がGo 1.11 を使用して Google App Engine Standard でプライベート Go モジュールを認証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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