結構定義總覽

您可以視需求啟用 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 配額和限制

後續步驟