透過已發布的服務後端和端點存取已發布的服務

您可以設定支援的負載平衡器或區域性 Cloud Service Mesh,透過 Private Service Connect 端點將流量轉送至已發布的服務。如要這麼做,請將區域後端服務與服務附件建立關聯。這項設定稱為已發布的服務後端。

本頁說明如何為負載平衡器設定已發布的服務後端。如要瞭解如何為區域性 Cloud Service Mesh 設定已發布的服務後端,請參閱「為 Cloud Service Mesh 設定已發布的服務後端」。

只有在生產者和消費者虛擬私有雲網路屬於同一個機構組織時,系統才會支援發布的服務後端。

事前準備

  • 瞭解已發布的服務後端
  • 請確認代管服務的生產端虛擬私有雲網路與您要設定已發布服務後端的用戶端網路屬於同一個機構。
  • 找出要存取服務的服務附件
  • 找出或建立要連線至所需服務的 Private Service Connect 端點。這個端點必須與消費者負載平衡器位於相同區域。
  • 找出或建立支援已發布服務後端的消費者負載平衡器:
    • 負載平衡器的轉送規則和後端服務,必須與服務連結和 Private Service Connect 端點位於同一區域,才能連線至服務。
    • 如果您建立新的負載平衡器,請勿將任何後端新增至負載平衡器的後端服務。設定已發布的服務後端時,您會新增這些項目。
  • 在專案中啟用 Compute Engine API

必要的角色

如要取得設定 Private Service Connect 端點負載平衡所需的權限,請要求管理員在專案中授予您「Compute 負載平衡器管理員 」(roles/compute.loadBalancerAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

將已發布的服務後端新增至消費者負載平衡器

如要建立已發布的服務後端,請將負載平衡器的區域後端服務與服務附件建立關聯。您不會明確將負載平衡器與端點建立關聯。當用戶端向負載平衡器發送要求時,負載平衡器會透過 ACCEPTED Private Service Connect 端點轉送流量,該端點會連線至服務連結。

gcloud

使用 gcloud beta compute backend-services add-backend 指令。

gcloud beta compute backend-services add-backend BACKEND_SERVICE \
    --region=REGION \
    --service=//compute.googleapis.com/projects/PROJECT_ID/locations/REGION/serviceAttachments/SERVICE_ATTACHMENT

更改下列內容:

  • BACKEND_SERVICE:後端服務的名稱
  • REGION:後端服務的區域,必須與服務連結的區域相符
  • PROJECT_ID:服務附件專案的專案 ID
  • SERVICE_ATTACHMENT:要與後端服務建立關聯的服務附件名稱

API

  1. 更新後端服務時,必須納入後端服務的指紋。如要尋找指紋,請向 regionBackendServices.get 方法傳送要求。

    HTTP 方法和網址:

    GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
    

    更改下列內容:

    • PROJECT_ID:專案 ID
    • REGION:後端服務的區域,必須與服務連結的區域相符
    • BACKEND_SERVICE:後端服務名稱

    請記下回應中的 fingerprint 值,您會在下一個步驟中用到。

  2. regionBackendServices.patch 方法傳送要求

    下列要求會取代所有現有後端。

    HTTP 方法和網址:

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
    

    JSON 要求主體:

    {
      "backends": [
        {
          "group": "https://www.googleapis.com/compute/beta/projects/PROJECT_ID/locations/REGION/serviceAttachments/SERVICE_ATTACHMENT"
        }
      ],
      "fingerprint": "FINGERPRINT"
    }
    

    更改下列內容:

    • SERVICE_ATTACHMENT:要與後端服務建立關聯的服務連結名稱
    • FINGERPRINT:您在上一個步驟中記下的指紋值