您可以視需求啟用 Pub/Sub 結構定義功能,強制規定 Pub/Sub 訊息中的資料欄位格式。
結構定義發布者和訂閱者之間的訊息格式合約。Pub/Sub 會強制執行此格式。 結構定義可為訊息類型和權限建立中央授權,方便貴機構的團隊之間使用資料串流。Pub/Sub 訊息結構定義會為訊息中的欄位定義名稱和資料類型。
您可以建立結構定義並連結至某個主題,強制規定訊息的發布結構定義。如果特定訊息不符合結構定義,系統就不會發布該訊息。您也可以建立其他結構定義修訂版本。
結構定義類型
您可以使用下列任一架構,在 Pub/Sub 中建立結構定義:
舉例來說,下列結構定義倉庫的庫存,先採用 Avro 格式,再採用通訊協定緩衝區格式。
Apache Avro 格式
{
"type" : "record",
"name" : "Avro",
"fields" : [
{
"name" : "ProductName",
"type" : "string",
"default": ""
},
{
"name" : "SKU",
"type" : "int",
"default": 0
},
{
"name" : "InStock",
"type" : "boolean",
"default": false
}
]
}
通訊協定緩衝區格式
syntax = "proto3";
message ProtocolBuffer {
string product_name = 1;
int32 SKU = 2;
bool in_stock = 3;
}
有關結構化定義的重要資訊
以下是建立及管理 Pub/Sub 結構定義的重要資訊。
如要讓結構定義與 Pub/Sub 搭配運作,您只能定義一個頂層 type。不支援參照其他型別的匯入陳述式。
您可以將同一個結構定義與多個主題建立關聯。
您可以手動測試訊息是否通過結構定義驗證。
請勿在結構定義欄位名稱中加入個人識別資訊 (PII) 或安全性資料等私密資訊。
結構定義的配額和限制
結構定義有下列限制:
結構定義欄位大小不得超過 300 KB。
每個專案最多可有 10,000 個結構定義。
單一結構定義最多只能有 20 個修訂版本。
如要瞭解與 Pub/Sub 相關的結構定義和限制,請參閱 Pub/Sub 配額和限制。