連線至在無伺服器環境中代管的服務

本頁面說明如何設定整合連接器,以便連線至在無伺服器環境中託管的服務,例如 Google Cloud 中的 Cloud Run。

下圖顯示從 Integration Connectors 到 Google Cloud 中 Cloud Run 環境中託管的服務的私人網路連線設定:

本頁假設您熟悉下列概念:

注意事項

建立 PSC 服務附件時,請考量下列重點:

  • PSC 服務連結和負載平衡器是在同一個 VPC 中的不同子網路中建立。具體來說,服務附件一律會在 NAT 子網路中建立。
  • 負載平衡器和健康狀態檢查探針的流量必須傳送至相同的通訊埠。
  • 設定防火牆規則,以利流量流動。

    Ingress 規則

    PSC 服務附件的子網路流量必須抵達後端服務。

    輸出規則

    除非設定特定拒絕規則,否則 Google Cloud 專案會預設啟用外送流量。

  • 所有 Google Cloud 元件 (例如 PSC 服務附件和負載平衡器) 都必須位於同一個區域。

建立 PSC 服務連結

為了透過 Integration Connectors 建立私人連線,您的服務必須使用 PSC 服務連結公開給 Integration Connectors。服務附件一律會使用負載平衡器。因此,如果您的服務並未在負載平衡器後方,就需要設定負載平衡器。

  1. 建立負載平衡器。如果您已使用負載平衡器,請略過這個步驟。

    如要使用無伺服器 NEG 做為後端,請按照「使用 Cloud Run 設定區域性內部應用程式負載平衡器」一文中的說明建立應用程式負載平衡器。

  2. 建立服務附件
    1. 建立 PSC NAT 的子網路。下列指令會建立名稱為 psc-nat-subnet1 的子網路,用途為 PRIVATE_SERVICE_CONNECT
      gcloud compute networks subnets create psc-nat-subnet1 \
                --network=VPC_NETWORK --range=SUBNET_RANGE_1 \
                --purpose=PRIVATE_SERVICE_CONNECT
    2. 建立防火牆規則,允許從 PSC NAT 傳入負載平衡器的流量。
      gcloud compute network-firewall-policies rules create PRIORITY --firewall-policy FIREWALL_POLICY_NAME_SA \
          --direction=INGRESS  --network=VPC_NETWORK \
          --action=allow --allow=tcp:BACKEND_SERVER_PORT --src-ip-ranges=SUBNET_RANGE_1
    3. 使用明確核准建立服務連結。
      gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME --producer-forwarding-rule=FORWARDING_RULE_NAME  --connection-preference=ACCEPT_MANUAL --consumer-accept-list=SERVICE_DIRECTORY_PROJECT_ID=LIMIT --nat-subnets=psc-nat-subnet1

      在這條指令中,LIMIT 是專案的連線限制。連線限制是指可連線至此服務的消費者 PSC 端點數量。如要取得 SERVICE_DIRECTORY_PROJECT_ID,請執行下列步驟:

      • 您可以建立 PSC 服務附件,讓 PSC 只接受指定 Google Cloud 專案的要求。不過,您必須提供與 Google Cloud 專案相關聯的服務目錄專案 ID,才能執行這項操作。如要取得服務目錄的專案 ID,您可以使用 List Connections API,如以下範例所示。

        語法

        curl -X GET \
            -H "authorization: Bearer $(gcloud auth print-access-token)" \
            -H "Content-Type: application/json" \
            "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"

        請依指示取代下列內容:

        • CONNECTORS_PROJECT_ID:您建立連線的 Google Cloud 專案 ID。

        範例

        這個範例會取得 connectors-test Google Cloud 專案的服務目錄專案 ID。

        curl -X GET \
            -H "authorization: Bearer $(gcloud auth print-access-token)" \
            -H "Content-Type: application/json" \
            "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"

        在終端機上執行這個指令後,會顯示類似以下的輸出內容:

        .....
        {
          "connections": [
            {
              "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa",
              "createTime": "2022-10-07T09:02:31.905048520Z",
              "updateTime": "2022-10-07T09:22:39.993778690Z",
              "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1",
              "status": {
                "state": "ACTIVE"
              },
              "configVariables": [
                {
                  "key": "project_id",
                  "stringValue": "connectors-test"
                },
                {
                  "key": "dataset_id",
                  "stringValue": "testDataset"
                }
              ],
              "authConfig": {},
              "serviceAccount": "564332356444-compute@developer.gserviceaccount.com",
              "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime",
              "nodeConfig": {
                "minNodeCount": 2,
                "maxNodeCount": 50
              }
            },
        ....
        

        在輸出範例中,connectors-test Google Cloud 專案的服務目錄專案 ID 為 abcdefghijk-tp

建立端點連結,以便使用 PSC 服務連結

端點連結為 IP 位址

如需建立端點附件做為 IP 位址的操作說明,請參閱「建立端點附件做為 IP 位址」。

端點連結做為主機名稱

在某些情況下 (例如啟用 TLS 的後端),目的地會要求您使用主機名稱,而非私人 IP 來執行 TLS 驗證。如果您使用私人 DNS 而非 IP 位址做為主機目的地,除了建立端點附件做為 IP 位址之外,您還必須設定受管理的可用區。如需建立端點附件做為主機名稱的操作說明,請參閱「建立端點附件做為主機名稱」。

日後,當您設定連線以使用端點附件時,即可選取這個端點附件。

設定使用端點連結的連線

建立端點連結後,請在連線中使用端點連結。建立新連線或更新現有連線時,請在「目的地」部分中,將「端點連結」選為「目的地類型」,然後從「端點連結」清單中選取您建立的端點連結。

如果您建立了代管區域,請選取「主機位址」做為「目的地類型」,並使用建立代管區域時建立的 A 記錄。

疑難排解提示

請按照本節列出的規範避免常見問題: