連線到虛擬私人雲端網路

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

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

使用無伺服器虛擬私人雲端存取時,從應用程式傳送至內部 IP 位址的要求 (如 RFC 1918 所定義) 會透過無伺服器虛擬私人雲端存取連接器,轉送至虛擬私人雲端網路,而傳送至公開 IP 位址的要求則會透過網際網路來轉送。內部 IP 位址僅能由 Google Cloud Platform 服務存取,因此使用內部 IP 位址可避免讓內部資源暴露至公共網際網路,此外也能縮短服務之間的通訊延遲。

無伺服器虛擬私人雲端存取可支援透過 Cloud VPN虛擬私人雲端網路對等互連連線的虛擬私人雲端網路通訊。無伺服器虛擬私人雲端存取不支援舊版網路共用虛擬私人雲端網路。無伺服器虛擬私人雲端存取連接器採用按月付費的計費方式。詳情請參閱無伺服器虛擬私人雲端存取定價

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

將 App Engine 應用程式連線至虛擬私人雲端網路包含兩個步驟:

  1. 建立無伺服器虛擬私人雲端存取連接器
  2. 設定 App Engine 服務使用連接器

無伺服器虛擬私人雲端存取連接器所在的專案及地區,必須與使用該連接器的應用程式相同,但連接器可將流量傳送至位於不同地區的資源。多個 App Engine 服務可使用相同連接器。如要進一步瞭解連接器,請參閱設定無伺服器虛擬私人雲端存取

建立連接器

您可利用 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 指令列。

如果您在建立連接器時發生錯誤,請嘗試下列方式,然後重新建立連接器:

  • 指定 IP 範圍時,確保該範圍未與虛擬私人雲端網路中任何目前受到保留的 IP 位址重疊。
  • 授予專案權限,以便從 ID 為 serverless-vpc-access-images 的專案中使用 Compute Engine VM 映像檔。如要瞭解如何據此更新組織政策,請參閱設定映像檔存取限制一文。

將應用程式設定為使用連接器

建立無伺服器虛擬私人雲端存取連接器後,您就可以設定 App Engine 應用程式中的服務使用連接器。多個服務可使用相同連接器。

如要將連接器連線至應用程式中的服務:

  1. <vpc-access-connector> 元素新增至服務的 appengine-web.xml 檔案:

    <vpc-access-connector>
      <name>projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME</name>
    </vpc-access-connector>
    

    其中 PROJECT_ID 是 GCP 專案的 ID,而 REGIONCONNECTOR_NAME 是您建立連接器時選擇的地區和名稱。請注意,連接器與應用程式必須位於相同地區。

  2. 部署服務:

    gcloud beta app deploy WEB-INF/appengine-web.xml
    

您重新部署服務後,即可傳送要求至內部 IP 位址,以存取虛擬私人雲端網路中的資源。

中斷應用程式與連接器的連線

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

如要中斷服務與連接器的連線:

  1. 從服務的 appengine-web.xml 檔案移除 <vpc-access-connector> 元素。

  2. 重新部署服務:

    gcloud app deploy WEB-INF/appengine-web.xml
    

後續步驟

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

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

這個網頁
Java 8 適用的 App Engine 標準環境