本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon SNS 消息屬性
Amazon SNS 支援訊息屬性的交付,讓您提供有關訊息的結構化中繼資料項目 (例如時間戳記、地理空間資料、簽名和識別碼)。針對SQS訂閱,啟用「原始郵件傳遞」時,最多可傳送 10 個郵件屬性。如要傳送超過 10 個訊息屬性,則必須停用原始訊息交付。針對啟用原始訊息交付的 Amazon SQS 訂閱具有超過 10 個訊息屬性的訊息,將會被捨棄為客戶端錯誤。
訊息屬性為選用且與訊息內文分開,但與訊息內文一起傳送。接收者可以使用這項資訊來決定如何處理訊息,而不必先處理訊息內文。
如需使用 AWS Management Console 或傳送具有屬性之郵件的詳細資訊 AWS SDK for Java,請參閱若要使用將訊息發佈到 Amazon SNS 主題 AWS Management Console教學課程。
注意
只有當郵件結構為「字串」時,才會傳送訊息屬性,而不會傳送JSON。
您也可以使用訊息屬性來協助結構化行動裝置端點的推送通知訊息。在此情況下,訊息屬性只會用來協助結構化推送通知訊息。將具有訊息屬性的訊息傳送到 Amazon 端點時,屬性不會像傳送到SQS端點一樣。
您也可以使用訊息屬性,讓您的訊息可透過使用訂閱篩選政策進行篩選。您可以將篩選政策套用到主題訂閱。以設為 MessageAttributes
(預設) 的篩選政策範圍套用篩選政策時,訂閱只會接收到擁有政策所接受屬性的訊息。如需詳細資訊,請參閱Amazon SNS 消息過濾。
注意
當郵件屬性用於篩選時,值必須是有效的JSON字串。這樣做可確保訊息傳遞至已啟用訊息屬性篩選的訂閱。
訊息屬性項目和驗證
每項訊息屬性均是由以下項目組成:
-
Name - 訊息屬性名稱可包含下列字元:A-Z、a-z、0-9、底線 (_)、連字號 (-) 和句號 (.)。名稱不能以句號開頭或結尾,且不可連續使用句號。名稱會區分大小寫,且不能與訊息的其他所有屬性名稱重複。名稱長度上限為 256 個字元。名稱無法以
AWS.
或Amazon.
(或任何外殼的變體) 開頭,因為這類字首會預訂給 Amazon Web Services 使用。 -
類型 - 支援的訊息屬性資料類型為
String
、String.Array
、Number
和Binary
。資料類型內容上的限制與訊息內文相同。資料類型會區分大小寫,長度上限為 256 個位元組。如需詳細資訊,請參閱 訊息屬性資料類型和驗證 一節。 -
數值 - 使用者指定的訊息屬性數值。若為字串資料類型,值的屬性在內容上的限制與訊息內文相同。如需詳細資訊,請參閱 Amazon 簡單通知服務API參考中的發佈動作。
名稱、類型和值不能為空或 null。此外,訊息本文不能為空或 null。訊息屬性的所有部分,包括名稱、類型和值,均包含在訊息大小限制中,目前限制為 256 KB。
訊息屬性資料類型和驗證
訊息屬性資料類型可識別 Amazon 處理訊息屬性值的方式SNS。例如,如果類型是一個數字,Amazon SNS 驗證它是一個數字。
Amazon SNS 支援所有端點的下列邏輯資料類型,但另有說明除外:
-
字符串-字符串是具有 UTF -8 二進制編碼的 Unicode。如需程式碼值的清單,請參閱 http://en.wikipedia.org/wiki/ ASCII # ASCII 列印字
元。 注意
訊息屬性不支援代理值。例如,使用代理值來表示表情符號會出現以下錯誤:
Invalid attribute value was passed in for message attribute
。 -
String.Array - 格式化為字串的陣列,可包含多個值。值可以是字串、數字或關鍵字
true
、false
和null
。數字或布林值類型的 String.Array 不需要引號。以逗號分隔的多個 String.Array 值。AWS Lambda 訂閱不支援此資料類型。如果您為 Lambda 端點指定此資料類型,則該
String
資料類型會以 Amazon SNS 交付給 Lambda 的JSON承載中的資料類型形式傳遞。 -
數字 - 數字為正負整數或浮點數字。數字需有足夠的範圍和精準度,方可涵蓋大多數整數、浮點數、雙精度浮點數一般支援的可能數值。一數字的值可從 -109 至 109,準確度到包含小數點後的 5 位數。前後的零會截去。
AWS Lambda 訂閱不支援此資料類型。如果您為 Lambda 端點指定此資料類型,則該
String
資料類型會以 Amazon SNS 交付給 Lambda 的JSON承載中的資料類型形式傳遞。 -
二進位 - 二進位類型屬性可儲存任何二進位資料;例如壓縮資料、加密資料或影像。
為行動推播通知保留的訊息屬性
下表列出為行動推播通知服務 (您可用來結構化您的推播通知訊息) 保留的訊息屬性:
推送通知服務 | 預留的訊息屬性 |
---|---|
ADM | AWS.SNS.MOBILE.ADM.TTL |
APNs1 | AWS.SNS.MOBILE.APNS_MDM.TTL |
AWS.SNS.MOBILE.APNS_MDM_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS_PASSBOOK.TTL |
|
AWS.SNS.MOBILE.APNS_PASSBOOK_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS_VOIP.TTL |
|
AWS.SNS.MOBILE.APNS_VOIP_SANDBOX.TTL |
|
AWS.SNS.MOBILE.APNS.COLLAPSE_ID |
|
AWS.SNS.MOBILE.APNS.PRIORITY |
|
AWS.SNS.MOBILE.APNS.PUSH_TYPE |
|
AWS.SNS.MOBILE.APNS.TOPIC |
|
AWS.SNS.MOBILE.APNS.TTL |
|
百度 |
AWS.SNS.MOBILE.BAIDU.DeployStatus
|
AWS.SNS.MOBILE.BAIDU.MessageKey |
|
AWS.SNS.MOBILE.BAIDU.MessageType |
|
AWS.SNS.MOBILE.BAIDU.TTL |
|
FCM | AWS.SNS.MOBILE.FCM.TTL |
AWS.SNS.MOBILE.GCM.TTL |
|
macOS | AWS.SNS.MOBILE.MACOS_SANDBOX.TTL |
AWS.SNS.MOBILE.MACOS.TTL |
|
MPNS |
AWS.SNS.MOBILE.MPNS.NotificationClass |
AWS.SNS.MOBILE.MPNS.TTL |
|
|
|
WNS | AWS.SNS.MOBILE.WNS.CachePolicy |
AWS.SNS.MOBILE.WNS.Group |
|
AWS.SNS.MOBILE.WNS.Match |
|
AWS.SNS.MOBILE.WNS.SuppressPopup |
|
AWS.SNS.MOBILE.WNS.Tag |
|
AWS.SNS.MOBILE.WNS.TTL |
|
AWS.SNS.MOBILE.WNS.Type
|
1 如果訊息屬性不符合其要求,Apple 將拒絕 Amazon SNS 通知。如需其他詳細資訊,請參閱「傳送通知要求至 APNs