首頁 >後端開發 >Golang >如何使用 Go 1.11 驗證 Google App Engine 標準中的私人 Go 模組?

如何使用 Go 1.11 驗證 Google App Engine 標準中的私人 Go 模組?

Linda Hamilton
Linda Hamilton原創
2024-10-26 07:52:30432瀏覽

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.1111模組時,身份驗證對於私有模組來說可能會帶來挑戰。預設情況下,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

可以完成嗎?

是的,可以使用 Go 1.11 模組對 App Engine Standard 中的私有模組進行驗證。但是,遷移文件中有關將文件移至 GOPATH 的指導具有誤導性。新的模組系統確實旨在將程式碼保留在 GOPATH 之外。

解決方案:使用模組替換

更好的解決方案是使用 Go 的憑證,而不是管理憑證模組替換功能。這允許本地專案在建置過程中使用私有模組的本機副本。

方法:

  1. 建立建置目錄: 在主專案目錄中建立一個 build 目錄。
  2. 符號連結原始碼: 將項目的 src 目錄連結到 build 目錄中的 src 目錄。
  3. 複製或複製私有模組:將必要的私有模組複製或複製到建置中模組目錄的子目錄中。
  4. 建立 GAE 特定的 go.mod 檔案: 在建置目錄的根目錄中,建立一個新的 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 標準中的私人 Go 模組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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