Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Contraintes liées à la politique de filtrage dans Amazon SNS
Lorsque vous configurez des politiques de filtrage dans Amazon SNS, vous devez tenir compte de quelques règles importantes. Ces règles permettent de garantir l'application efficace des politiques de filtrage tout en préservant les performances et la compatibilité du système.
Contraintes de politique de filtre
Lorsque vous configurez des politiques de filtrage dans Amazon SNS, suivez ces règles importantes pour vous assurer qu'elles fonctionnent efficacement tout en préservant les performances et la compatibilité du système :
-
Correspondance de chaînes : pour la correspondance de chaînes dans la politique de filtrage, la comparaison fait la distinction majuscules/majuscules.
-
Correspondance numérique — Pour la correspondance numérique, la valeur peut être comprise entre -10 9 et 10 9 (-1 milliard à 1 milliard), avec une précision de cinq chiffres après la virgule décimale.
-
Complexité de la politique de filtrage — La combinaison totale de valeurs d'une politique de filtrage ne doit pas dépasser 150. Pour calculer la combinaison totale, multipliez le nombre de valeurs de chaque tableau dans la politique de filtrage.
-
Limiter le nombre de clés : une politique de filtrage peut comporter un maximum de cinq clés.
Considérations supplémentaires
-
Le JSON de la politique de filtre peut contenir ce qui suit :
-
Chaînes entre guillemets
-
Nombres
-
Mots-clés
true
,false
etnull
, sans guillemets
-
-
Lorsque vous utilisez l'API Amazon SNS, vous devez transmettre le JSON de la politique de filtrage sous forme de chaîne UTF-8 valide.
-
La taille maximale d'une politique de filtrage est de 256 Ko.
-
Par défaut, vous pouvez avoir jusqu'à 200 politiques de filtrage par sujet et 10 000 politiques de filtrage par AWS compte.
Cette limite de politique n'empêchera pas la création d'abonnements aux files d'attente Amazon SQS avec l'
Subscribe
API. Toutefois, elle échouera lorsque vous attachez la politique de filtre à l'appel d'APISubscribe
(ou à l'appel d'APISetSubscriptionAttributes
).Pour demander l'augmentation de ce quota, vous pouvez utiliser AWS Service Quotas.
Contraintes de politique pour le filtrage basé sur les attributs
Le filtrage basé sur les attributs est l'option par défaut. FilterPolicyScope
est défini sur MessageAttributes
dans l'abonnement.
-
Amazon SNS n'accepte pas de politique de filtre imbriquée pour le filtrage basé sur les attributs.
-
Amazon SNS compare les propriétés de politique uniquement aux attributs de message ayant les types de données suivants :
-
String
-
String.Array
Important
Lorsque vous utilisez le filtrage basé sur les attributs dans Amazon SNS, vous devez supprimer deux fois certains caractères spéciaux, notamment :
-
Guillemets doubles («)
-
Barres obliques inversées ()
Si ces caractères ne sont pas supprimés deux fois, la politique de filtrage ne correspondra pas aux attributs d'un message publié et la notification ne sera pas envoyée.
-
Considérations supplémentaires
-
Il n'est pas recommandé de transmettre des objets dans des tableaux car cela peut produire des résultats inattendus en raison de l'imbrication, qui n'est pas prise en charge par le filtrage basé sur les attributs. Utilisez le filtrage basé sur la charge utile pour les politiques imbriquées.
-
Number
est pris en charge pour les valeurs d'attributs numériques. -
Amazon SNS ignore les attributs des messages dont le type de données est binaire.
Exemple de politique en matière de complexité :
Dans l'exemple de politique suivant, la première clé possède trois opérateurs de correspondance, la seconde un opérateur de correspondance et la troisième deux opérateurs de correspondance.
{
"key_a": ["value_one", "value_two", "value_three"],
"key_b": ["value_one"],
"key_c": ["value_one", "value_two"]
}
La combinaison totale est calculée comme le produit du nombre d'opérateurs de correspondance pour chaque clé de la politique de filtrage :
3(match operators of key_a)
x 1(match operators of key_b)
x 2(match operators of key_c)
= 6
Contraintes de politique pour le filtrage basé sur la charge utile
Pour passer du filtrage basé sur les attributs (par défaut) au filtrage basé sur la charge utile, vous devez définir l'étendue FilterPolicyScope
sur MessageBody
dans l'abonnement.
-
Amazon SNS accepte une politique de filtre imbriquée pour le filtrage basé sur la charge utile.
-
Pour une politique imbriquée, seules les clés en forme de feuille sont prises en compte dans le calcul de la limite des cinq clés.
Exemple de politique en matière de limite de clés :
Dans l'exemple de stratégie suivant :
-
Il existe deux clés en forme de feuille :
key_c
etkey_e
. -
key_c
possède quatre opérateurs de correspondance avec un niveau imbriqué de trois, etkey_e
possède trois opérateurs de correspondance avec un niveau imbriqué de deux.
{
"key_a": {
"key_b": {
"key_c": ["value_one", "value_two", "value_three", "value_four"]
}
},
"key_d": {
"key_e": ["value_one", "value_two", "value_three"]
}
}
La combinaison totale est calculée comme le produit du nombre d'opérateurs de correspondance et du niveau imbriqué pour chaque clé de la politique de filtrage :
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
Consignes d'utilisation des modèles Wildcard
Amazon SQS met en œuvre des protections lorsque vous enregistrez une politique de filtre contenant des caractères génériques afin de garantir que des politiques de filtrage trop complexes ne soient pas créées, car cela aurait un impact sur les performances de votre application.
Structure du motif
Les champs contiennent un ou plusieurs modèles. L'exemple suivant montre un champ utilisant deux modèles :
{ "greeting": [ {"anything-but": {"prefix": "Hello"}}, {"wildcard": "H*"} ] // 2 patterns }
Règles de complexité
-
La complexité totale des caractères génériques dans tous les champs ne doit pas dépasser 100 points
-
Maximum de 3 jokers par motif
Calcul de la complexité
-
Complexité du champ =
(Sum of pattern points)
×(Number of patterns)
-
Points du motif :
Un joker unique : 1 point
Plusieurs jokers : 3 points chacun
Tout sauf : 1 point
Voici un exemple de calcul de la complexité :
{ "filename": [ {"wildcard": "*.txt"}, // 1 point {"wildcard": "log*"} // 1 point ] // Total: (1 + 1) × 2 = 4 points }