在 Go 中指定依附元件

您可以使用 Go 模組vendor 目錄,指定 Cloud Run 函式依附元件。

使用 Go 模組指定依附元件

如要使用 Go 模組指定 Cloud Run 函式依附元件,請在 go.mod 檔案中列出這些依附元件。部署函式時,Go 會自動將依附元件加入 go.mod 檔案。

如要建立 go.mod 檔案,請參閱「在 Go 中管理依附元件」。

函式架構是所有函式的必要依附元件。雖然系統會在建立函式時為您安裝 Cloud Run functions,但我們建議您將其新增為依附元件,以求明確。

如果函式依附於私人依附元件,建議您將 functions-framework 鏡像到私人註冊資料庫。將鏡像的 functions-framework 新增為函式的依附元件,避免從公開網際網路安裝套件。

使用 vendor 目錄指定依附元件

Cloud Run functions 也允許您透過 vendor 目錄納入依附元件。如果無法透過依附元件管理員使用依附元件,或是 Cloud Run functions 環境的網路連線能力受到限制,使用供應商目錄會很有幫助。

在多數情況下,vendor 目錄是由依附元件管理員進行維護。您可以依喜好使用任何的依附元件管理員。比方說,您可以使用 Go 的模組功能,從 go.mod 檔案建立 vendor 目錄。

您必須在供應商目錄中加入 Go 適用的函式環境。如要使用 Go 工具鏈執行這項操作,請按照下列步驟操作:

  1. 在 Go 程式碼的匯入區塊中新增下列指令:

    _ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
    
  2. 更新 go.mod 檔案,加入新匯入的套件:

    go mod tidy
    
  3. 使用 go.mod 檔案的內容建立 vendor 目錄:

    go mod vendor
    

Go 1.16 之前的版本

針對 1.16 之前的 Go 版本,如果您有 go.mod 檔案和 vendor 目錄,部署函式時系統會忽略 vendor 目錄。如要確保系統會採用供應商目錄,請使用 .gcloudignore 檔案,避免上傳 go.modgo.sum 檔案:

  1. 在專案目錄的根目錄建立包含下列內容的 .gcloudignore 檔案:

    go.mod
    go.sum
    
    # Also ignore Git directories. Delete the following two lines if you want to
    # upload them.
    .git
    .gitignore
    

使用私人依附元件

若您的函式依附元件託管於無法公開存取的存放區中,則在部署函式之前,必須使用 vendor 目錄來擷取依附元件。如果您打算使用 go.mod 檔案,請參閱以上說明,避免 go.mod 檔案與 vendor 目錄之間發生衝突。