您可以將匯入主題轉換為標準主題,反之亦然。
將匯入的主題轉換為標準主題
如要將匯入主題轉換為標準主題,請清除擷取設定。請執行下列步驟:
控制台
前往 Google Cloud 控制台的「Topics」頁面。
按一下匯入主題。
在主題詳細資料頁面中,按一下「編輯」。
取消勾選「Enable ingestion」(啟用攝入功能) 選項。
按一下「更新」。
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
執行
gcloud pubsub topics update
指令:gcloud pubsub topics update TOPIC_ID \ --clear-ingestion-data-source-settings
將 TOPIC_ID 替換為主題 ID。
將標準主題轉換為 Amazon Kinesis Data Streams 匯入主題
如要將標準主題轉換為 Amazon Kinesis Data Streams 匯入主題,請先確認您符合所有必要條件。
控制台
-
前往 Google Cloud 控制台的「Topics」頁面。
-
按一下要轉換為匯入主題的主題。
-
在主題詳細資料頁面中,按一下「編輯」。
-
選取「啟用攝入」選項。
-
在擷取來源中,選取「Amazon Kinesis Data Streams」。
-
輸入下列詳細資訊:
-
Kinesis 串流 ARN:您打算擷取至 Pub/Sub 的 Kinesis 資料串流 ARN。ARN 格式如下:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
。 -
Kinesis 用戶 ARN:已註冊至 AWS Kinesis Data Stream 的用戶資源 ARN。ARN 格式如下:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
。 -
AWS 角色 ARN:AWS 角色的 ARN。角色的 ARN 格式如下:
arn:aws:iam::${Account}:role/${RoleName}
。 -
服務帳戶:您在「在 Google Cloud中建立服務帳戶」一文中建立的服務帳戶。
-
-
按一下「更新」。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
使用下列範例中提到的所有標記,執行
gcloud pubsub topics update
指令:gcloud pubsub topics update TOPIC_ID \ --kinesis-ingestion-stream-arn KINESIS_STREAM_ARN\ --kinesis-ingestion-consumer-arn KINESIS_CONSUMER_ARN\ --kinesis-ingestion-role-arn KINESIS_ROLE_ARN\ --kinesis-ingestion-service-account PUBSUB_SERVICE_ACCOUNT
更改下列內容:
-
TOPIC_ID 是主題 ID 或名稱。這個欄位無法更新。
-
KINESIS_STREAM_ARN 是您打算擷取至 Pub/Sub 的 Kinesis Data Streams 的 ARN。ARN 格式如下:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
。 -
KINESIS_CONSUMER_ARN 是已註冊至 AWS Kinesis Data Streams 的消費者資源 ARN。ARN 格式如下:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
。 -
KINESIS_ROLE_ARN 是 AWS 角色的 ARN。角色的 ARN 格式如下:
arn:aws:iam::${Account}:role/${RoleName}
。 -
PUBSUB_SERVICE_ACCOUNT 是您在「在 Google Cloud中建立服務帳戶」一節中建立的服務帳戶。
-
Go
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 Go。詳情請參閱 Pub/Sub Go API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 Java。詳情請參閱 Pub/Sub Java API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 Node.js。詳情請參閱 Pub/Sub Node.js API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 Python。詳情請參閱 Pub/Sub Python API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
C++
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 C++。詳情請參閱 Pub/Sub C++ API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js (TypeScript)
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 Node.js 環境。 詳情請參閱 Pub/Sub Node.js API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
如要進一步瞭解 ARN,請參閱「Amazon 資源名稱 (ARN)」和「IAM 識別碼」。
將標準主題轉換為 Cloud Storage 匯入主題
如要將標準主題轉換為 Cloud Storage 匯入主題,請先確認您符合所有必要條件。
控制台
-
前往 Google Cloud 控制台的「Topics」頁面。
-
按一下要轉換為 Cloud Storage 匯入主題的主題。
-
在主題詳細資料頁面中,按一下「編輯」。
-
選取「啟用攝入」選項。
-
在「擷取來源」中,選取「Google Cloud Storage」。
-
在 Cloud Storage bucket 中,按一下「Browse」。
「Select bucket」(選取值區) 頁面隨即開啟。選取下列選項之一:
-
從任何適當的專案中選取現有值區。
-
按一下建立圖示,然後按照畫面上的指示建立新的值區。建立值區後,請選取 Cloud Storage 匯入主題的值區。
-
-
指定值區時,Pub/Sub 會檢查 Pub/Sub 服務帳戶的值區是否具備適當權限。如果發生權限問題,您會看到與權限相關的錯誤訊息。
如果發生權限問題,請按一下「設定權限」。詳情請參閱「 授予 Pub/Sub 服務帳戶 Cloud Storage 權限」。
-
在「Object format」(物件格式) 中,選取「Text」、「Avro」或「Pub/Sub Avro」。
如果您選取「文字」,可以選擇指定分隔符,用來將物件分割成訊息。
如要進一步瞭解這些選項,請參閱「輸入格式」。
- (非必要) 您可以為主題指定物件建立時間下限。如果已設定,系統只會擷取在物件建立時間下限後建立的物件。
詳情請參閱「 物件建立時間下限」。
- 您必須指定 Glob 模式。如要擷取 bucket 中的所有物件,請使用
**
做為 glob 模式。系統只會擷取符合指定模式的物件。詳情請參閱「 比對 glob 模式」。
- 保留其他預設設定。
- 按一下「更新主題」。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
為避免遺失匯入主題的設定,請務必每次更新主題時都納入所有設定。如果您略過某些項目,Pub/Sub 會將設定重設為原始預設值。
使用下列範例中提到的所有標記,執行
gcloud pubsub topics update
指令:gcloud pubsub topics update TOPIC_ID \ --cloud-storage-ingestion-bucket=BUCKET_NAME\ --cloud-storage-ingestion-input-format=INPUT_FORMAT\ --cloud-storage-ingestion-text-delimiter=TEXT_DELIMITER\ --cloud-storage-ingestion-minimum-object-create-time=MINIMUM_OBJECT_CREATE_TIME\ --cloud-storage-ingestion-match-glob=MATCH_GLOB
更改下列內容:
-
TOPIC_ID 是主題 ID 或名稱。這個欄位無法更新。
-
BUCKET_NAME:指定現有值區的名稱。例如:
prod_bucket
。值區名稱不得包含專案 ID。如要建立值區,請參閱「建立值區」。 -
INPUT_FORMAT:指定攝入物件的格式。這可以是
text
、avro
或pubsub_avro
。如要進一步瞭解這些選項,請參閱「輸入格式」。 -
TEXT_DELIMITER:指定用於將文字物件拆分為 Pub/Sub 訊息的分隔符。此值必須是單一字元,且只能在
INPUT_FORMAT
為text
時設定。預設為換行字元 (\n
)。使用 gcloud CLI 指定分隔符時,請特別留意如何處理特殊字元,例如換行符號
\n
。請使用'\n'
格式,確保系統能正確解讀分隔符。只要使用\n
而不加上引號或轉義,就會產生"n"
分隔符。 -
MINIMUM_OBJECT_CREATE_TIME:指定物件建立後,可供攝入的最低時間。格式應為
YYYY-MM-DDThh:mm:ssZ
,以世界標準時間為準。例如:2024-10-14T08:30:30Z
。從
0001-01-01T00:00:00Z
到9999-12-31T23:59:59Z
之間的任何日期 (包括兩者) 皆有效。 -
MATCH_GLOB:指定要比對的 glob 模式,以便擷取物件。使用 gcloud CLI 時,如果比對萬用字元含有
*
字元,則*
字元必須以\*\*.txt
的形式加上反斜線轉義,或是整個比對萬用字元必須以"**.txt"
或'**.txt'
加上引號。如要瞭解支援的 glob 模式語法,請參閱 Cloud Storage 說明文件。
-