您可以使用 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
回應中會顯示要核准的供應商專案名稱。您必須將其新增至網路連結允許的專案清單:
- 使用
describe方法,取得網路連結目前的producer-accept-list。詳情請參閱 Compute Engine 的 Google Cloud SDK 說明文件。 - 使用
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 說明文件。
後續步驟
- 進一步瞭解私人連線。
- 瞭解可與 Datastream 搭配使用的其他網路連線選項。
- 瞭解如何使用 Datastream API 管理連線設定檔。
- 瞭解如何使用 Datastream API 管理串流。
- 如要進一步瞭解如何使用 Datastream API,請參閱參考文件。