

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.

# Einschränkungen der Filterrichtlinien in Amazon SNS
<a name="subscription-filter-policy-constraints"></a>

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
<a name="subscription-filter-policy-common-constraints"></a>

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` und `null`, jeweils ohne Anführungszeichen
+ Wenn Sie die Amazon SNS SNS-API verwenden, müssen Sie das JSON 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 [https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)API erstellt werden. Es schlägt jedoch fehl, wenn Sie die Filterrichtlinie an den `Subscribe`-API-Aufruf (oder den [https://docs.aws.amazon.com/sns/latest/api/API_SetSubscriptionAttributes.html](https://docs.aws.amazon.com/sns/latest/api/API_SetSubscriptionAttributes.html)-API-Aufruf) anhängen.

  Zur Erhöhung dieses Kontingents können Sie [AWS Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html) verwenden.

## Richtlinieneinschränkungen bei der attributbasierten Filterung
<a name="subscription-filter-policy-attribute-constraints"></a>

Attributbasierte Filterung ist die Standardoption. [https://docs.aws.amazon.com/sns/latest/api/API_SetSubscriptionAttributes.html#API_SetSubscriptionAttributes_RequestParameters](https://docs.aws.amazon.com/sns/latest/api/API_SetSubscriptionAttributes.html#API_SetSubscriptionAttributes_RequestParameters) 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 Übereinstimmungsoperatoren 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
<a name="subscription-filter-policy-payload-constraints"></a>

Wenn Sie von der attributbasierten (Standard) zur nutzlastbasierten Filterung wechseln möchten, müssen Sie den [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeprovisionIpamPoolCidr.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeprovisionIpamPoolCidr.html) 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` und`key_e`.
+ `key_c`**hat **vier Vergleichsoperatoren** mit einer verschachtelten Ebene von **drei** und `key_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
```

## Richtlinien zur Verwendung von Wildcard-Mustern
<a name="filter-policy-constraints-wildcard"></a>

 Amazon SQS implementiert Schutzmaßnahmen für die Registrierung einer Filterrichtlinie mit Platzhaltern, um sicherzustellen, dass keine zu komplexen Filterrichtlinien erstellt werden, da dies die Leistung Ihrer Anwendung beeinträchtigen würde. 

**Struktur des Musters**

Felder enthalten ein oder mehrere Muster. Das folgende Beispiel zeigt ein Feld, das zwei Muster verwendet:

```
{
    "greeting": [
      {"anything-but": {"prefix": "Hello"}},
      {"wildcard": "H*"}
    ] // 2 patterns
  }
```

**Regeln für Komplexität**
+  Die Gesamtkomplexität von Platzhaltern in allen Feldern darf 100 Punkte nicht überschreiten 
+  Maximal 3 Platzhalter pro Muster 

**Berechnung der Komplexität**
+  Feldkomplexität = `(Sum of pattern points)` × `(Number of patterns)` 
+ Punkte im Muster:

   Einzelner Platzhalter: 1 Punkt 

   Mehrere Platzhalter: jeweils 3 Punkte 

   Alles außer: 1 Punkt 

  Das Folgende ist ein Beispiel für die Komplexitätsberechnung:

  ```
  {
    "filename": [
      {"wildcard": "*.txt"},     // 1 point
      {"wildcard": "log*"}      // 1 point
    ]                           // Total: (1 + 1) × 2 = 4 points
  }
  ```