「Pub/Sub 到 Pub/Sub 範本」是一個串流管道,可從 Pub/Sub 訂閱項目讀取訊息並寫入另一個 Pub/Sub 主題。這個管道也接受選用訊息屬性金鑰,以及一個可用來篩選應寫入 Pub/Sub 主題的訊息的值。這個範本可以讓您使用選用的訊息篩選器,從 Pub/Sub 訂閱複製訊息到另一個 Pub/Sub 主題。
管道相關規定
- 來源 Pub/Sub 訂閱必須在執行前就已存在。
- 來源 Pub/Sub 訂閱項目必須是提取訂閱項目。
- 要先有目的地 Pub/Sub 主題才能執行。
範本參數
必要參數
- inputSubscription:要讀取輸入內容的 Pub/Sub 訂閱項目。例如:
projects/your-project-id/subscriptions/your-subscription-name
。 - outputTopic:要寫入輸出的 Pub/Sub 主題。例如:
projects/your-project-id/topics/your-topic-name
。
選用參數
- filterKey:用於篩選事件的屬性鍵。如未指定
filterKey
,則不會套用任何篩選條件。 - filterValue:提供
filterKey
時,用於篩選事件的屬性值。根據預設,系統會使用 null 的filterValue
。
執行範本
控制台
- 前往 Dataflow 的「Create job from template」(透過範本建立工作) 頁面。 前往「依據範本建立工作」
- 在「工作名稱」欄位中,輸入專屬工作名稱。
- 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為
us-central1
。如需可執行 Dataflow 工作的地區清單,請參閱「Dataflow 位置」。
- 從「Dataflow template」(Dataflow 範本) 下拉式選單中選取 the Pub/Sub to Pub/Sub template。
- 在提供的參數欄位中輸入參數值。
- 選用:如要從「僅需處理一次」切換至「至少一次」串流模式,請選取「至少一次」。
- 按一下「Run Job」(執行工作)。
gcloud
在殼層或終端機中執行範本:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Cloud_PubSub_to_Cloud_PubSub \ --region REGION_NAME \ --staging-location STAGING_LOCATION \ --parameters \ inputSubscription=projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME,\ outputTopic=projects/PROJECT_ID/topics/TOPIC_NAME,\ filterKey=FILTER_KEY,\ filterValue=FILTER_VALUE
更改下列內容:
JOB_NAME
: 您選擇的不重複工作名稱REGION_NAME
: 您要部署 Dataflow 工作的地區,例如us-central1
VERSION
: 您要使用的範本版本您可以使用下列值:
latest
,使用範本的最新版本,該版本位於值區中非依日期命名的上層資料夾:gs://dataflow-templates-REGION_NAME/latest/- 版本名稱 (例如
2023-09-12-00_RC00
),用於指定範本版本,該版本會以巢狀結構存放在值區中依日期命名的上層資料夾中:gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
:用於暫存本機檔案的位置 (例如gs://your-bucket/staging
)SUBSCRIPTION_NAME
:Pub/Sub 訂閱項目名稱TOPIC_NAME
:Pub/Sub 主題名稱FILTER_KEY
:用來篩選事件的屬性鍵。如未指定任何鍵,則不會套用任何篩選條件。FILTER_VALUE
:如有事件篩選鍵,則篩選要使用的屬性值。接受有效的 Java 規則運算式字串做為事件篩選器值。如果提供規則運算式,訊息必須完全符合運算式,才會遭到篩除。系統不會篩選部分相符的項目 (例如子字串)。預設會使用空值的事件篩選器值。
API
如要使用 REST API 執行範本,請傳送 HTTP POST 要求。如要進一步瞭解 API 和授權範圍,請參閱 projects.templates.launch
。
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Cloud_PubSub_to_Cloud_PubSub { "jobName": "JOB_NAME", "environment": { "ipConfiguration": "WORKER_IP_UNSPECIFIED", "additionalExperiments": [] }, "parameters": { "inputSubscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME", "outputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME", "filterKey": "FILTER_KEY", "filterValue": "FILTER_VALUE" } }
更改下列內容:
PROJECT_ID
: 您要執行 Dataflow 工作的專案 ID Google CloudJOB_NAME
: 您選擇的不重複工作名稱LOCATION
: 您要部署 Dataflow 工作的地區,例如us-central1
VERSION
: 您要使用的範本版本您可以使用下列值:
latest
,使用範本的最新版本,該版本位於值區中非依日期命名的上層資料夾:gs://dataflow-templates-REGION_NAME/latest/- 版本名稱 (例如
2023-09-12-00_RC00
),用於指定範本版本,該版本會以巢狀結構存放在值區中依日期命名的上層資料夾中:gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
:用於暫存本機檔案的位置 (例如gs://your-bucket/staging
)SUBSCRIPTION_NAME
:Pub/Sub 訂閱項目名稱TOPIC_NAME
:Pub/Sub 主題名稱FILTER_KEY
:用來篩選事件的屬性鍵。如未指定任何鍵,則不會套用任何篩選條件。FILTER_VALUE
:如有事件篩選鍵,則篩選要使用的屬性值。接受有效的 Java 規則運算式字串做為事件篩選器值。如果提供規則運算式,訊息必須完全符合運算式,才會遭到篩除。系統不會篩選部分相符的項目 (例如子字串)。預設會使用空值的事件篩選器值。
後續步驟
- 瞭解 Dataflow 範本。
- 請參閱 Google 提供的範本清單。