連線至虛擬私人雲端網路之中的內部資源

您可使用無伺服器虛擬私人雲端存取,由 Cloud Functions 直接連線至 Compute Engine VM 執行個體、Cloud Memorystore 執行個體、Cloud SQL 執行個體,以及任何其他具有內部 IP 位址的資源。這對以下情況相當實用:

  • 您在 Compute Engine 之中的代管執行個體群組執行後端服務,需要在不暴露至公共網際網路的情況下,讓函式與此項服務通訊。
  • 您的函式使用在 Compute Engine VM 執行的第三方軟體。
  • 您使用 Cloud Memorystore 儲存 Cloud Functions 資料。
  • 您的函式需要透過 Cloud VPN 由內部部署資料庫存取資料。

無伺服器虛擬私人雲端存取可讓您由函式傳送要求,至使用內部 IP 位址的 VPC 網路資源。內部 IP 位址僅能由 Google Cloud Platform 服務存取,因此使用內部 IP 位址可避免讓內部資源暴露至公共網際網路,此外也能縮短服務之間的通訊延遲。

無伺服器虛擬私人雲端存取不支援舊版網路共用虛擬私人雲端網路。 無伺服器虛擬私人雲端存取連接器採用按月付費的計費方式。詳情請參閱無伺服器虛擬私人雲端存取定價

連線至您的虛擬私人雲端網路

將 Cloud Functions 連線至虛擬私人雲端網路包含三個步驟:

  1. 建立無伺服器虛擬私人雲端存取連接器
  2. 向 Cloud Functions 服務帳戶授予適當權限
  3. 設定函式以使用連接器

無伺服器虛擬私人雲端存取連接器所在的專案及地區,必須與使用該連接器的函式相同。多個函式可使用相同連接器。如要進一步瞭解連接器,請參閱虛擬私人雲端說明文件的設定無伺服器虛擬私人雲端存取

建立連接器

您可利用 GCP 主控台或 gcloud 指令列工具建立連接器。

主控台

  1. 前往「Serverless VPC Access」(無伺服器虛擬私人雲端存取) 總覽頁面。

    前往「Serverless VPC Access」(無伺服器虛擬私人雲端存取)

  2. 按一下 [Create connector] (建立連接器)

  3. 在「Name」(名稱) 欄位中,輸入連接器的名稱。

  4. 在「Region」(地區) 欄位中,選取函式所在的地區。

  5. 在「Network」(網路) 欄位中,選取要連線的虛擬私人雲端網路。

  6. 在「IP range」(IP 範圍) 欄位中,輸入未使用的 CIDR/28 IP 範圍。這個範圍中的位址會用來當做透過連接器傳送的流量來源位址。這個 IP 範圍不得與虛擬私人雲端網路中的任何現有 IP 位址保留項目重疊。

  7. (選用) 您可在「Minimum throughput」(最小總處理量) 與「Maximum throughput」(總輸出量上限) 欄位設定值,以控制連接器的總處理量。

  8. 按一下 [Create] (建立)。

若連接器準備好可供使用,其名稱旁邊會顯示一個綠色勾號。

gcloud

  1. 使用下列指令為專案啟用無伺服器虛擬私人雲端存取 API:

    gcloud services enable vpcaccess.googleapis.com
    
  2. 建立連接器:

    gcloud beta compute networks vpc-access connectors create CONNECTOR_NAME \
    --network VPC_NETWORK \
    --region REGION \
    --range IP_RANGE
    

    其中:

    • CONNECTOR_NAME 為連接器名稱。
    • VPC_NETWORK 為要連線的虛擬私人雲端網路。
    • REGION 為函式所在地區。
    • IP_RANGE 為未使用的 CIDR/28 IP 範圍。這個範圍中的位址會用來當做透過連接器傳送的流量來源位址。這個 IP 範圍不得與虛擬私人雲端網路中的任何現有 IP 位址保留項目重疊。
  3. 先驗證您的連接器是否處於 READY 狀態,然後再使用:

    gcloud beta compute networks vpc-access connectors describe CONNECTOR_NAME --region REGION
    

    輸出應包含 state: READY 指令列。

設定權限

專案的 Cloud Functions 服務帳戶需要適當權限,才能讓函式使用無伺服器虛擬私人雲端存取連接器。您只需要對每個專案授予一次權限即可。如要設定權限:

  1. 前往 Google Cloud Platform 主控台的「IAM」(身分與存取權管理) 頁面。

    前往「IAM」(身分與存取權管理)

  2. 尋找「Cloud Functions Service Agent」(Cloud Functions 服務代理程式) 項目。

  3. 按一下鉛筆圖示來編輯權限。

  4. 按一下 [Add another role] (新增其他角色)

  5. 選擇「Project」(專案) >「Editor」(編輯者)

  6. 按一下 [Save] (儲存)

如果您不想向服務帳戶授予完整的「Editor」(編輯者) 權限,可以授予下列角色組合:

  • 「Viewer」(檢視者) 角色、
  • 「Compute Network User」(Compute 網路使用者) 角色,以及
  • 您建立的自訂角色,其中包含 compute.globalOperations.get 權限。

您也可以使用每個函式身分,僅將這些權限授予給需要存取虛擬私人雲端網路的特定函式。

設定函式以使用連接器

您建立無伺服器虛擬私人雲端存取連接器,並設定適當權限後,就可以設定函式使用連接器。只要函式位於相同地區,就可讓多個函式使用相同連接器,接觸相同的虛擬私人雲端網路。

如要讓連接器連線函式,請使用 gcloud beta functions deploy 指令部署函式,並指定 --vpc-connector 標記:

gcloud beta functions deploy FUNCTION_NAME \
--vpc-connector projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \
FLAGS...

其中:

  • FUNCTION_NAME 為函式名稱。
  • PROJECT_ID 為 GCP 專案 ID。
  • REGION 為您針對連接器選取的地區。 請注意連接器與函式必須位於相同地區。
  • CONNECTOR_NAME 為連接器名稱。
  • FLAGS... 代表您在函式部署期間傳送的其他標記。

您部署函式之後,就可以傳送要求至內部 IP 位址,以存取虛擬私人雲端網路之中的資源。

中斷函式與連接器的連線

如果函式不再需要連線虛擬私人雲端網路,您就可以中斷連線無伺服器虛擬私人雲端存取連接器。

如要讓函式與連接器中斷連線,請刪除函式,並在沒有 --vpc-connector 標記的情況下重新部署函式:

gcloud functions delete FUNCTION_NAME
gcloud functions deploy FUNCTION_NAME [FLAGS...]

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Functions Documentation