管理私人連線設定

您可以使用 Datastream API 建立、擷取、列出和刪除私人連線設定。這些設定可讓 Datastream 與 Google Cloud 中的資料來源,或透過 Cloud VPN 或 Cloud Interconnect 連線的外部來源進行私人通訊。您可以使用虛擬私有雲 (VPC) 網路對接或 Private Service Connect 介面建立私人連線。

如要使用私人連線,串流、連線設定檔和私人連線設定必須位於相同區域。如要避免手動新增跨區域防火牆規則,請在該區域的子網路中執行來源資料庫。

使用虛擬私有雲對等互連建立私人連線設定

建立私人連線設定前,請務必完成下列事項:

  • 具備可與 Datastream 私人網路對接的虛擬私有雲網路。如要進一步瞭解如何建立虛擬私有雲網路,請參閱「使用虛擬私有雲網路對等互連」。
  • 虛擬私有雲網路具有可用的 IP 範圍 (CIDR 區塊至少為 /29)。Datastream 會使用這個 IP 範圍,與提供的虛擬私有雲建立虛擬私有雲對接,因此該範圍不得與該虛擬私有雲中的子網路重疊。因此,Datastream 可以與來源通訊。

建立私人連線設定時,會用到兩個參數:

  • vpcName: 指定虛擬私有雲網路的名稱和路徑。
  • subnet: 提供虛擬私有雲網路中的可用 IP 範圍。

下列程式碼顯示建立私人連線設定的要求,並指定連線方法為使用虛擬私有雲對接 (vpcPeeringConfig)。

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections?privateConnectionId=PRIVATE_CONNECTIVITY_CONFIGURATION_ID
{
  "displayName": "DISPLAY_NAME",
  "vpcPeeringConfig": {
      "vpcName": "VPC_NAME",
      "subnet": "SUBNET"
  }
}

例如:

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections?privateConnectionId=myPrivateConnection
{
  "displayName": "my-private-connection",
  "vpcPeeringConfig": {
    "vpcName": "projects/my-project/global/networks/my-vpc",
    "subnet": "10.11.12.13/29"
  }
}

建立私人連線設定後,您可以呼叫 privateConnections/get 方法,查看相關資訊。輸出內容大致如下:

{
  "name": "projects/projectId/location/us-central1/privateConnections/myPrivateConnection",
  "createTime": "2019-12-22T16:17:37.159786963Z",
  "updateTime": "2019-12-22T16:17:37.159786963Z",
  "displayName": "my-private-connection",
  "state": "CREATED",
  "vpcPeeringConfig": {
    "vpcName": "projects/my-project/global/networks/my-vpc",
    "subnet": "10.11.12.13/29"
  }  
}

gcloud

gcloud datastream private-connections create PRIVATE_CONNECTION_NAME --location=LOCATION --display-name=DISPLAY_NAME --vpc=VPC_NAME --subnet=SUBNET

例如:

gcloud datastream private-connections create my-privateConnection --location=us-central1 --display-name=my-private-connection --vpc=my-vpc --subnet=10.11.12.13/29

使用 Private Service Connect 介面建立私人連線設定

建立私人連線設定前,請務必完成下列事項:

  • 具備可連線至 Datastream 私人網路的虛擬私有雲網路。如要進一步瞭解如何建立虛擬私有雲網路,請參閱「建立及管理虛擬私有雲網路」。

  • 在虛擬私有雲專案中建立網路連結。

  • 確認 Google Cloud 和地端部署防火牆允許將源自網路連結 IP 位址範圍的流量,傳送至您要串流處理資料的來源資料庫。

下列程式碼顯示使用 Private Service Connect 介面建立私人連線設定的要求。您必須先執行指令,使用 validateOnly 旗標 (Google Cloud CLI 的 --validate-only) 建立私人連線設定:

REST

POST "https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections?privateConnectionId=PRIVATE_CONNECTIVITY_CONFIGURATION_ID&validateOnly=true"

gcloud

gcloud datastream private-connections create PRIVATE_CONNECTION_NAME --location=LOCATION --display-name=DISPLAY_NAME --network-attachment=NETWORK_ATTACHMENT_NAME --validate-only

回應中會顯示要核准的供應商專案名稱。您必須將其新增至網路連結允許的專案清單:

  1. 使用 describe 方法,取得網路連結目前的 producer-accept-list。詳情請參閱 Compute Engine 的 Google Cloud SDK 說明文件。
  2. 使用 update 方法將生產者專案新增至這份清單。詳情請參閱 Compute Engine 的 Google Cloud SDK 說明文件。

將生產端專案新增至允許的專案清單後,請再次執行指令來建立私人連線設定,這次不使用 validateOnly 旗標:

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections?privateConnectionId=PRIVATE_CONNECTIVITY_CONFIGURATION_ID
{
  "displayName": "DISPLAY_NAME",
  "pscInterfaceConfig": {
      "networkAttachment": "NETWORK_ATTACHMENT_NAME"
  }
}

例如:

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections?privateConnectionId=myPrivateConnection
{
  "displayName": "my-private-connection",
  "pscInterfaceConfig": {
    "networkAttachment": "projects/my-project/regions/us-central1/networkAttachments/my-na"
  }
}

gcloud

gcloud datastream private-connections create PRIVATE_CONNECTION_NAME --location=LOCATION --display-name=DISPLAY_NAME --network-attachment=NETWORK_ATTACHMENT_NAME

例如:

gcloud datastream private-connections create my-private-connection --location=us-central1 --display-name=my-private-connection --network-attachment=my-network-attachment

取得私人連線設定的相關資訊

下列程式碼顯示一項要求,用於擷取已建立的私人連線設定相關資訊。

REST

GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections/PRIVATE_CONNECTIVITY_CONFIGURATION_ID

例如:

GET https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections/myPrivateConnection
     

gcloud

如要進一步瞭解如何使用 gcloud 擷取私人連線設定的相關資訊,請參閱 Google Cloud SDK 說明文件。

列出私人連線設定

下列程式碼顯示擷取所有私人連線設定相關資訊的要求。

REST

GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections

gcloud

如要進一步瞭解如何使用 gcloud 擷取所有私人連線設定的資訊,請參閱 Google Cloud SDK 說明文件。

刪除私人連線設定

下列程式碼顯示刪除私人連線設定的要求。刪除設定後,使用該設定的所有連線設定檔都將無法運作。此外,使用這些連線設定檔的串流也無法運作。

如要解決這個問題,請為每個連線設定檔指派不同的私人連線設定。詳情請參閱「更新連線設定檔」。

REST

DELETE https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections/[private-connectivity-configuration-id] {"force": true} 

例如:

DELETE https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections/myPrivateConnection {"force": true} 

gcloud

如要進一步瞭解如何使用 gcloud 刪除私人連線設定,請參閱 Google Cloud SDK 說明文件。

後續步驟