Pub/Sub 到 Pub/Sub 範本

「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

執行範本

控制台

  1. 前往 Dataflow 的「Create job from template」(透過範本建立工作) 頁面。
  2. 前往「依據範本建立工作」
  3. 在「工作名稱」欄位中,輸入專屬工作名稱。
  4. 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為 us-central1

    如需可執行 Dataflow 工作的地區清單,請參閱「Dataflow 位置」。

  5. 從「Dataflow template」(Dataflow 範本) 下拉式選單中選取 the Pub/Sub to Pub/Sub template。
  6. 在提供的參數欄位中輸入參數值。
  7. 選用:如要從「僅需處理一次」切換至「至少一次」串流模式,請選取「至少一次」
  8. 按一下「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: 您要使用的範本版本

    您可以使用下列值:

  • 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 Cloud
  • JOB_NAME: 您選擇的不重複工作名稱
  • LOCATION: 您要部署 Dataflow 工作的地區,例如 us-central1
  • VERSION: 您要使用的範本版本

    您可以使用下列值:

  • STAGING_LOCATION:用於暫存本機檔案的位置 (例如 gs://your-bucket/staging)
  • SUBSCRIPTION_NAME:Pub/Sub 訂閱項目名稱
  • TOPIC_NAME:Pub/Sub 主題名稱
  • FILTER_KEY:用來篩選事件的屬性鍵。如未指定任何鍵,則不會套用任何篩選條件。
  • FILTER_VALUE:如有事件篩選鍵,則篩選要使用的屬性值。接受有效的 Java 規則運算式字串做為事件篩選器值。如果提供規則運算式,訊息必須完全符合運算式,才會遭到篩除。系統不會篩選部分相符的項目 (例如子字串)。預設會使用空值的事件篩選器值。

後續步驟