Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une tâche de stockage contient un ensemble de conditions et d’opérations. Cet article décrit le format JSON d’une condition. Comprendre ce format est important si vous envisagez de créer une tâche de stockage à l’aide d’un outil autre que le portail Azure (par exemple : Azure PowerShell ou Azure CLI). Cet article répertorie également les propriétés et les opérateurs que vous pouvez utiliser pour composer les clauses d’une condition.
Cet article décrit les conditions. Pour en savoir plus sur les opérations, consultez Opérations de tâche de stockage.
Format de condition
Une condition est une collection d’une ou de plusieurs clauses. Chaque clause contient une propriété, une valeur et un opérateur. Lorsque la tâche de stockage s’exécute, elle utilise l’opérateur pour comparer une propriété à une valeur afin de déterminer si une clause est respectée par l’objet cible. Dans une clause, l’opérateur apparaît toujours en premier suivi de la propriété, puis de la valeur. L’image suivante montre comment chaque élément est positionné dans l’expression.
La clause suivante autorise uniquement les opérations sur les documents Microsoft Word. Cette clause cible tous les documents qui se terminent par l’extension de fichier .docx. Par conséquent, l’opérateur est endsWith, la propriété est Name et la valeur est .docx.
{
"condition": "[[[endsWith(Name, '.docx')]]"
}
Vous pouvez également appliquer un opérateur not avant l’opérateur dans une clause de condition. L’opérateur non est un opérateur spécial que vous pouvez positionner avant tout opérateur pour donner le résultat opposé d’une clause. La clause suivante autorise les opérations sur n’importe quel objet blob qui n’est pas un document Microsoft Word.
{
"condition": "[[not(endsWith(Name, '*.docx'))]]"
}
Pour obtenir la liste complète des noms d’opérateurs et de propriétés, consultez la section Opérateurs pris en charge et Propriétés prises en charge de cet article.
Plusieurs clauses dans une condition
Une condition peut contenir plusieurs clauses séparées par une virgule avec la chaîne and ou or. La chaîne and cible les objets qui répondent aux critères de toutes les clauses de la condition, tandis que or cible les objets qui répondent au critère dans l’une des clauses de la condition. L’image suivante montre la position de la chaîne and et or, ainsi que deux clauses.
Le code JSON suivant montre une condition qui contient deux clauses. Étant donné que la chaîne and est utilisée dans cette expression, les deux clauses doivent être évaluées à true avant qu’une opération ne soit effectuée sur l’objet.
{
"condition": "[[and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))]]"
}
Groupes de conditions
Les clauses groupées fonctionnent en tant qu’unité unique distincte du reste des clauses. Le regroupement de clauses est similaire à l’insertion de parenthèses autour d’une équation mathématique ou d’une expression logique. La chaîne and ou or pour la première clause du groupe s’applique à l’ensemble du groupe.
L’image suivante montre deux clauses regroupées.
La condition suivante autorise uniquement les opérations sur les documents Microsoft Word où la balise readyForLegalHold du document est définie sur une valeur de Yes. Les opérations sont également effectuées sur des objets supérieurs à 100 octets, même si les deux autres conditions ne sont pas vraies.
{
"condition": "[[or(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes')), greater(Content-Length, '100'))]]"
}
Vous pouvez appliquer un opérateur non à un groupe pour tester le résultat opposé d’un groupe de clauses. La condition suivante autorise uniquement les opérations sur les objets blob qui ne sont pas des documents Microsoft Word où la balise de l’objet readyForLegalHold blob est définie sur une valeur de Yes. Les opérations sont également effectuées sur des objets supérieurs à 100 octets, même si les deux autres conditions ne sont pas vraies.
{
"condition": "[[or(not(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))), greater(Content-Length, '100'))]]"
}
Affichage du code dans le portail Azure
L’éditeur visuel disponible dans le portail Azure peut vous générer le JSON d’une condition. Vous pouvez définir vos conditions à l’aide de l’éditeur, puis obtenir l’expression JSON en ouvrant l’onglet Code. Cette approche peut être utile lorsque vous créez des ensembles complexes de conditions, car les expressions JSON peuvent devenir volumineuses, instables et difficiles à créer manuellement. L’image suivante montre l’onglet Code dans l’éditeur visuel.
Pour en savoir plus sur l’éditeur visuel, consultez Définir des conditions et des opérations de tâche de stockage.
Aperçu de la condition
Vous pouvez afficher une liste des blobs qui seraient impactés par les conditions que vous avez définies. De cette façon, vous pouvez trouver des problèmes et optimiser les conditions avant de les appliquer aux données de production. Un aperçu ne modifie pas les objets d'un compte de stockage cible, ce qui le rend sûr à appliquer pour tester contre des données de production.
Bien que la préversion des conditions soit disponible dans les environnements PowerShell, Azure CLI et SDK, le moyen le plus simple d’afficher un aperçu de l’effet des conditions est d’utiliser la fenêtre Conditions de préversion dans le portail Azure. Vous pouvez ouvrir cette fenêtre si vous définissez des conditions et que vous affectez des tâches de stockage.
Pour afficher un aperçu de l’effet des conditions, vous devez spécifier un abonnement cible, un compte de stockage et un conteneur. Étant donné qu’un objet blob peut uniquement s’afficher jusqu’à 5 000, vous pouvez également spécifier un préfixe pour affiner la liste.
Remarque
Vous ne pouvez pas utiliser de caractères génériques dans le préfixe d’objet blob.
L’image suivante montre un exemple de résultat d’aperçu dans le portail Azure.
Le résultat de l’aperçu apparaît dans une table qui affiche les objets qui répondent à la condition ainsi que les objets qui ne répondent pas à la condition. Vous pouvez trier par champ qui apparaît dans la table.
Si les conditions font référence aux propriétés qui n’existent pas dans le compte de stockage cible, une erreur s’affiche. Par exemple, les balises d’index d’objet blob ne sont pas disponibles pour les comptes qui ont un espace de noms hiérarchique. Si une clause dans une condition fait référence aux balises d’index blob, une erreur de validation s’affiche.
Propriétés prises en charge
Le tableau suivant présente les propriétés que vous pouvez utiliser pour composer chaque clause d’une condition. Une clause peut contenir des propriétés de chaîne, booléennes, numériques et de date et heure.
| Chaîne | Date et heure3 | Numérique | Booléen |
|---|---|---|---|
| AccessTier1 | AccessTierChangeTime | Longueur-contenu | Supprimé |
| Métadonnées.Valeur | Creation-Time | NombreDeTags | IsCurrentVersion |
| Nom | DeletedTime | ||
| BlobType2 | LastAccessTime | ||
| Container.Metadata.Value[Name] | Last-Modified | ||
| Nom du Conteneur | |||
| Container.Metadata.Value[Name] | |||
| Nom du Conteneur | |||
| Tags.Value[Name] | |||
| VersionId |
1 Les valeurs autorisées sont Hot, Cool ou Archive.
2 Les valeurs autorisées sont BlockBlob, PageBlob ou AppendBlob
3 Peut être défini sur une heure spécifique ou sur une valeur de métadonnées obtenue dynamiquement à partir d’objets. Consultez Référencer une valeur à partir des métadonnées d’objet.
Opérateurs pris en charge
Le tableau suivant montre les opérateurs que vous pouvez utiliser dans une clause pour évaluer la valeur de chaque type de propriété.
| Chaîne | Date et heure | Numérique | Booléen |
|---|---|---|---|
| contient | Égale | Égale | Égale |
| vide | Plus | Plus | |
| Égale | greaterOrEquals | greaterOrEquals | |
| finPar | moins | moins | |
| longueur | lessOrEquals | lessOrEquals | |
| commencePar | addToTime | ||
| Correspondances |
L’opérateur non est un opérateur spécial que vous pouvez positionner avant l’un des opérateurs qui apparaissent dans cette table pour donner le résultat opposé de la clause conditionnelle, également appelé résultat négatif.