Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

UND/ODER-Logik

Fokusmodus
UND/ODER-Logik - Amazon Simple Notification Service

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.

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.

Verwenden Sie die UND/OR-Logik in Filterrichtlinien, um Nachrichtenattribute oder Eigenschaften des Nachrichtentexts in Amazon SNS abzugleichen. Dies ermöglicht eine genauere und flexiblere Nachrichtenfilterung.

UND-Logik

Sie können die UND-Logik mit mehreren Attributnamen anwenden.

Betrachten Sie folgende Richtlinie:

{ "customer_interests": ["rugby"], "price_usd": [{"numeric": [">", 100]}] }

Sie gleicht alle Nachrichtenattribute oder die Eigenschaft des Nachrichtentexts ab, bei denen der Wert customer_interests auf rugby und der Wert price_usd auf eine Zahl größer als 100 festgelegt ist.

Anmerkung

Sie können keine AND-Logik auf Werte desselben Attributs anwenden.

ODER-Logik

Sie können die ODER-Logik durch die Zuweisung mehrerer Werte zu einem Attributnamen anwenden.

Betrachten Sie folgende Richtlinie:

{ "customer_interests": ["rugby", "football", "baseball"] }

Sie gleicht alle Nachrichtenattribute ab, deren customer_interests-Wert auf rugby, football, oder baseball festgelegt ist.

OR-Operator

Sie können den "$or"-Operator verwenden, um explizit eine Filterrichtlinie zu definieren, um die OR-Beziehung zwischen mehreren Attributen in der Richtlinie auszudrücken.

Amazon SNS erkennt eine "$or"-Beziehung nur an, wenn die Richtlinie alle der folgenden Bedingungen erfüllt hat. Wenn all diese Bedingungen nicht erfüllt sind, wird "$or" wie ein regulärer Attributname behandelt, genauso wie jede andere Zeichenfolge in der Richtlinie.

  • Die Regel enthält beispielsweise ein "$or"-Feldattribut, gefolgt von einem Array, z. B. “$or” : [].

  • Das "$or"-Array enthält mindestens 2 Objekte: "$or": [{}, {}].

  • Keines der Objekte im "$or"-Array hat Feldnamen, bei denen es sich um reservierte Schlüsselwörter handelt.

Andernfalls wird "$or" wie ein normaler Attributname behandelt, genau wie andere Zeichenfolgen in der Richtlinie.

Die folgende Richtlinie wird nicht als OR-Beziehung analysiert, da Zahl und Präfix reservierte Schlüsselwörter sind.

{ "$or": [ {"numeric" : 123}, {"prefix": "abc"} ] }

Beispiele für OR-Operatoren

Standard OR:

{ "source": [ "aws.cloudwatch" ], "$or": [ { "metricName": [ "CPUUtilization" ] }, { "namespace": [ "AWS/EC2" ] } ] }

Die Filterlogik für diese Richtlinie lautet:

"source" && ("metricName" || "namespace")

Sie stimmt mit einem der beiden folgenden Nachrichtenattributsätze überein:

"source": {"Type": "String", "Value": "aws.cloudwatch"}, "metricName": {"Type": "String", "Value": "CPUUtilization"}

or

"source": {"Type": "String", "Value": "aws.cloudwatch"}, "namespace": {"Type": "String", "Value": "AWS/EC2"}

Sie stimmt auch mit einem der beiden folgenden Nachrichtentexte überein:

{ "source": "aws.cloudwatch", "metricName": "CPUUtilization" }

or

{ "source": "aws.cloudwatch", "namespace": "AWS/EC2" }

Richtlinieneinschränkungen, zu denen auch OR-Beziehungen gehören

Betrachten Sie folgende Richtlinie:

{ "source": [ "aws.cloudwatch" ], "$or": [ { "metricName": [ "CPUUtilization", "ReadLatency" ] }, { "metricType": [ "MetricType" ] , "$or" : [ { "metricId": [ 1234, 4321 ] }, { "spaceId": [ 1000, 2000, 3000 ] } ] } ] }

Die Logik dieser Richtlinie kann auch wie folgt vereinfacht werden:

("source" AND "metricName") OR ("source" AND "metricType" AND "metricId") OR ("source" AND "metricType" AND "spaceId")

Die Komplexitätsberechnung für Richtlinien mit OR-Beziehungen kann vereinfacht werden, indem die Summe der Kombinationskomplexitäten für jede OR-Anweisung berechnet wird.

Die Gesamtkombination wird wie folgt berechnet:

(source * metricName) + (source * metricType * metricId) + (source * metricType * spaceId) = (1 * 2) + (1 * 1 * 2) + (1 * 1 * 3) = 7

source hat einen Wert, metricName hat zwei Werte, metricType hat einen Wert, metricId hat zwei Werte und spaceId hat drei Werte.

Beachten Sie die folgende Richtlinie für verschachtelte Filter:

{ "$or": [ { "metricName": [ "CPUUtilization", "ReadLatency" ] }, { "namespace": [ "AWS/EC2", "AWS/ES" ] } ], "detail" : { "scope" : [ "Service" ], "$or": [ { "source": [ "aws.cloudwatch" ] }, { "type": [ "CloudWatch Alarm State Change"] } ] } }

Die Logik dieser Richtlinie kann wie folgt vereinfacht werden:

("metricName" AND ("detail"."scope" AND "detail"."source") OR ("metricName" AND ("detail"."scope" AND "detail"."type") OR ("namespace" AND ("detail"."scope" AND "detail"."source") OR ("namespace" AND ("detail"."scope" AND "detail"."type")

Die Berechnung der Gesamtkombinationen ist bei nicht verschachtelten Richtlinien gleich, außer dass wir die Verschachtelungsebene des Schlüssels berücksichtigen müssen.

Die Gesamtkombination wird wie folgt berechnet:

(2 * 2 * 2) + (2 * 2 * 2) + (2 * 2 * 2) + (2 * 2 * 2) = 32

metricName hat zwei Werte, namespace hat zwei Werte, scope ist ein zweistufiger verschachtelter Schlüssel mit einem Wert, source ist ein zweistufiger verschachtelter Schlüssel mit einem Wert und type ist ein zweistufiger verschachtelter Schlüssel mit einem Wert.

Auf dieser Seite

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.