首頁 >後端開發 >Golang >如何使用 Go 1.11 驗證 Google App Engine Standard 上的私有 Go 模組?

如何使用 Go 1.11 驗證 Google App Engine Standard 上的私有 Go 模組?

DDD
DDD原創
2024-10-29 12:46:031038瀏覽

 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 的模組系統時引擎標準項目,驗證私有模組可能會帶來挑戰。依照遷移文檔,您在嘗試部署專案時可能會遇到「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 的本機副本。替換指令的作用類似於偽供應商,確保建置系統使用本機版本而不是從儲存庫中取得版本。

優點與缺點

優點:

  • 私人模組程式碼不與 Google Cloud 共享,維護隱私。
  • 項目代碼與App Engine 保持解耦,可以輕鬆與其他平台集成.

缺點:

  • 如果私有模組依賴其他私有模組,該方法可能會變得複雜。

結論

透過使用模組替換和修改的目錄結構,您可以使用 Go 1.11 在 Google App Engine Standard 上成功驗證私有模組。這種方法提供了安全性和靈活性,可以將私有模組無縫整合到您的專案中。

以上是如何使用 Go 1.11 驗證 Google App Engine Standard 上的私有 Go 模組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn