Correspondance de valeur de chaîne d'attribut - Amazon Simple Notification Service

Correspondance de valeur de chaîne d'attribut

Vous pouvez utiliser des valeurs de chaîne afin de mettre en correspondance les attributs de message et de filtrer les messages. Les valeurs de chaîne sont placées entre guillemets doubles dans la politique JSON.

Vous pouvez utiliser les opérations de chaîne suivantes pour mettre en correspondance les attributs de message.

Correspondance exacte

La mise en correspondance exacte a lieu lorsqu'une valeur d'attribut de politique correspond à une ou plusieurs valeurs d'attribut de message.

Examinons l'exemple d'attribut de politique suivant :

"customer_interests": ["rugby", "tennis"]

Il met en correspondance les attributs de message suivants :

"customer_interests": {"Type": "String", "Value": "rugby"}
"customer_interests": {"Type": "String", "Value": "tennis"}

Cependant, il ne met pas en correspondance l'attribut de message suivant :

"customer_interests": {"Type": "String", "Value": "baseball"}

Correspondance de préfixe

Lorsqu'un attribut de politique inclut le mot-clé prefix, il est mis en correspondance avec toute valeur d'attribut de message qui commence par les caractères spécifiés.

Examinons l'exemple d'attribut de politique suivant :

"customer_interests": [{"prefix": "bas"}]

Il met en correspondance l'un ou l'autre des attributs de message suivants :

"customer_interests": {"Type": "String", "Value": "baseball"}
"customer_interests": {"Type": "String", "Value": "basketball"}

Cependant, il ne met pas en correspondance l'attribut de message suivant :

"customer_interests": {"Type": "String", "Value": "rugby"}

Correspondance de type « anything-but » (tout-sauf)

Lorsqu'une valeur d'attribut de politique inclut le mot-clé anything-but, elle est mise en correspondance avec tout attribut de message qui n'inclut pas l'une des valeurs d'attribut de la politique.

Examinons l'exemple d'attribut de politique suivant :

"customer_interests": [{"anything-but": ["rugby", "tennis"]}]

Il met en correspondance l'un ou l'autre des attributs de message suivants :

"customer_interests": {"Type": "String", "Value": "baseball"}
"customer_interests": {"Type": "String", "Value": "football"}

Il met également en correspondance l'attribut de message suivant (parce qu'il contient une valeur qui n'est pas rugby ou tennis) :

"customer_interests": {"Type": "String.Array", "Value": "[\"rugby\", \"baseball\"]"}

Cependant, il ne met pas en correspondance l'attribut de message suivant :

"customer_interests": {"Type": "String", "Value": "rugby"}

Utilisation d'un préfixe avec l’opérateur anything-but

Pour la correspondance de la chaîne de l’attribut, vous pouvez également utiliser un préfixe avec l’opérateur anything-but.

Par exemple, l'attribut de politique suivant refuse le préfixeorder- :

"event":[{"anything-but": {"prefix": "order-"}}]

Il met en correspondance l'un ou l'autre des attributs suivants :

"event": {"Type": "String", "Value": "data-entry"}
"event": {"Type": "String", "Value": "order_number"}

Cependant, il ne met pas en correspondance l'attribut suivant :

"event": {"Type": "String", "Value": "order-cancelled"}

Correspondance d'adresses IP

Vous pouvez utiliser l’opérateur cidr pour vérifier si un message entrant provient d'une adresse IP ou d'un sous-réseau spécifique.

Examinons l'exemple d'attribut de politique suivant :

"source_ip":[{"cidr": "10.0.0.0/24"}]

Il met en correspondance l'un ou l'autre des attributs de message suivants :

"source_ip": {"Type": "String", "Value": "10.0.0.0"}
"source_ip": {"Type": "String", "Value": "10.0.0.255"}

Cependant, il ne met pas en correspondance l'attribut de message suivant :

"source_ip": {"Type": "String", "Value": "10.1.1.0"}