Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Wenn Sie Filterrichtlinien in Amazon SNS einrichten, müssen Sie einige wichtige Regeln beachten. Diese Regeln tragen dazu bei, die effektive Anwendung von Filterrichtlinien sicherzustellen und gleichzeitig die Systemleistung und Kompatibilität aufrechtzuerhalten.
Übliche Einschränkungen für Richtlinien
Beachten Sie bei der Konfiguration von Filterrichtlinien in Amazon SNS die folgenden wichtigen Regeln, um sicherzustellen, dass sie effektiv funktionieren und gleichzeitig die Systemleistung und -kompatibilität erhalten bleiben:
-
Zeichenkettenabgleich — Beim Zeichenfolgenabgleich in der Filterrichtlinie wird beim Vergleich zwischen Groß- und Kleinschreibung unterschieden.
-
Numerischer Abgleich — Beim numerischen Abgleich kann der Wert zwischen -10 9 und 10 9 (-1 Milliarde bis 1 Milliarde) liegen, mit einer Genauigkeit von fünf Stellen nach dem Dezimalkomma.
-
Komplexität der Filterrichtlinie — Die Gesamtkombination der Werte in einer Filterrichtlinie darf 150 nicht überschreiten. Um die Gesamtkombination zu berechnen, multiplizieren Sie die Anzahl der Werte in jedem Array in der Filterrichtlinie.
-
Anzahl der Schlüssel einschränken — Eine Filterrichtlinie kann maximal fünf Schlüssel haben.
Zusätzliche Überlegungen
-
Der JSON-Code der Filterrichtlinie kann Folgendes enthalten:
-
Zeichenfolgen, die von Anführungszeichen umschlossen werden
-
Zahlen
-
Die Schlüsselwörter
true
,false
undnull
, jeweils ohne Anführungszeichen
-
-
Wenn Sie die Amazon SNS SNS-API verwenden, müssen Sie den JSON-Code der Filterrichtlinie als gültige UTF-8-Zeichenfolge übergeben.
-
Die maximale Größe einer Filterrichtlinie beträgt 256 KB.
-
Standardmäßig können Sie bis zu 200 Filterrichtlinien pro Thema und 10.000 Filterrichtlinien pro AWS Konto verwenden.
Dieses Richtlinienlimit verhindert nicht, dass Amazon SQS SQS-Warteschlangenabonnements mit der
Subscribe
API erstellt werden. Es schlägt jedoch fehl, wenn Sie die Filterrichtlinie an denSubscribe
-API-Aufruf (oder denSetSubscriptionAttributes
-API-Aufruf) anhängen.Zur Erhöhung dieses Kontingents können Sie AWS Service Quotas verwenden.
Richtlinieneinschränkungen bei der attributbasierten Filterung
Attributbasierte Filterung ist die Standardoption. FilterPolicyScope
ist im Abonnement auf MessageAttributes
festgelegt.
-
Amazon SNS akzeptiert bei der attributbasierten Filterung keine Richtlinie für verschachtelte Filter.
-
Amazon SNS vergleicht die Richtlinieneigenschaften nur mit Nachrichtenattributen, die die folgenden Datentypen haben:
-
String
-
String.Array
Wichtig
Wenn Sie die attributbasierte Filterung in Amazon SNS verwenden, müssen Sie bestimmte Sonderzeichen doppelt maskieren, insbesondere:
-
Doppelte Anführungszeichen („)
-
Backslashes ()
Wenn diese Zeichen nicht doppelt maskiert werden, entspricht die Filterrichtlinie nicht den Attributen einer veröffentlichten Nachricht und die Benachrichtigung wird nicht zugestellt.
-
Zusätzliche Überlegungen
-
Es wird nicht empfohlen, Objekte in Arrays zu übergeben, da dies aufgrund der Verschachtelung, die von der attributbasierten Filterung nicht unterstützt wird, zu unerwarteten Ergebnissen führen kann. Nutzlast-basierte Filterung für verschachtelte Richtlinien.
-
Number
wird für numerische Attributwerte unterstützt. -
Amazon SNS ignoriert Nachrichtenattribute mit dem Datentyp Binary.
Beispielrichtlinie für Komplexität:
Im folgenden Richtlinienbeispiel hat der erste Schlüssel drei Match-Operatoren, der zweite einen Match-Operator und der dritte hat zwei Match-Operatoren.
{
"key_a": ["value_one", "value_two", "value_three"],
"key_b": ["value_one"],
"key_c": ["value_one", "value_two"]
}
Die Gesamtkombination wird als Produkt der Anzahl der Vergleichsoperatoren für jeden Schlüssel in der Filterrichtlinie berechnet:
3(match operators of key_a)
x 1(match operators of key_b)
x 2(match operators of key_c)
= 6
Richtlinieneinschränkungen für die nutzlastbasierte Filterung
Wenn Sie von der attributbasierten (Standard) zur nutzlastbasierten Filterung wechseln möchten, müssen Sie den FilterPolicyScope
im Abonnement auf MessageBody
festlegen.
-
Amazon SNS akzeptiert bei der nutzlastbasierten Filterung eine Richtlinie für verschachtelte Filter.
-
Bei einer verschachtelten Richtlinie werden nur Blattschlüssel auf die Obergrenze von fünf Schlüsseln angerechnet.
Beispielrichtlinie für das Schlüssellimit:
Im folgenden Richtlinienbeispiel:
-
Es gibt zwei Blatttasten:
key_c
undkey_e
. -
key_c
hat vier Vergleichsoperatoren mit einer verschachtelten Ebene von drei undkey_e
verfügt über drei Vergleichsoperatoren mit einer verschachtelten Ebene von zwei.
{
"key_a": {
"key_b": {
"key_c": ["value_one", "value_two", "value_three", "value_four"]
}
},
"key_d": {
"key_e": ["value_one", "value_two", "value_three"]
}
}
Die Gesamtkombination wird als Produkt aus der Anzahl der Vergleichsoperatoren und der verschachtelten Ebene für jeden Schlüssel in der Filterrichtlinie berechnet:
4(match operators of key_c)
x 3(nested level of key_c)
x 3(match operators of key_e)
x 2(nested level of key_e)
= 72