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 spécifie les conditions à évaluer et les opérations à effectuer sur les blobs. Cet article décrit le format JSON d’une condition. Ce format est important si vous prévoyez de créer une tâche de stockage en utilisant un outil autre que le portail Azure, comme Azure PowerShell ou Azure CLI. Cet article liste également les propriétés et opérateurs que vous pouvez utiliser dans 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 un prédicat logique composé d’une ou plusieurs clauses. Chaque clause contient une propriété blob, un opérateur logique et une valeur. Lorsque la tâche de stockage s’exécute, elle évalue la propriété de blob par rapport à la valeur en utilisant l’opérateur de comparaison. Au format JSON, 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 la liste complète des opérateurs et noms de propriétés, voir les sections Opérateurs supportés et Propriétés supportées 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
Utilisez l’éditeur visuel dans le portail Azure pour générer le JSON d’une condition, puis accédez à l’expression JSON en sélectionnant l’onglet Code. Cette approche est utile pour composer des conditions complexes car les expressions JSON peuvent devenir volumines, encombrantes et difficiles à créer à la main. Cette approche vous permet également d’utiliser la fonction d’aperçu de la condition dans le portail pour une validation interactive de la condition par rapport à vos données. 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
La fonction prévisualisation de la condition vous permet de valider la condition sur les blobs dans votre compte de stockage de test et de voir s’ils respectent ou non les conditions que vous avez définies. Vous pouvez identifier les problèmes et optimiser les conditions avant de les appliquer aux données de production. L’aperçu n’apporte aucune modification aux objets dans un compte de stockage cible, il est donc sûr de tester avec vos données.
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 lorsque vous définissez des conditions et lorsque vous assignez 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. Comme un aperçu ne peut afficher que jusqu’à 5 000 blobs, vous pouvez aussi spécifier un préfixe pour restreindre 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 un tableau de tous les objets du conteneur sélectionné, avec le résultat de l’évaluation de la condition et leurs valeurs de propriété utilisées pour évaluer la condition. Vous pouvez trier par n’importe quel champ qui apparaît dans le tableau.
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 | TempsDeChangementDeNiveauD'Accès | Longueur du contenu | Supprimé |
| BlobType2 | Date de création | NombreDeTags | IsCurrentVersion |
| Container.Metadata.Value[Name] | DeletedTime | ||
| Nom du Conteneur | LastAccessTime | ||
| Metadata.Value[Name] | Dernière modification | ||
| Nom | |||
| Tags.Value[Name] |
1 Les valeurs autorisées sont Hot, Cool, Cold, 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 (sans distinction de casse) | Chaîne (sensible à la casse) | Date et heure | Numérique | Booléen |
|---|---|---|---|---|
contains |
contains_cs |
equals |
equals |
equals |
empty
5 |
greater |
greater |
||
endsWith |
endsWith_cs |
greaterOrEquals |
greaterOrEquals |
|
equals |
equals_cs |
less |
less |
|
matches
4 |
matches_cs
4 |
lessOrEquals |
lessOrEquals |
|
startsWith |
startsWith_cs |
4 Les opérateurs matches et matches_cs ne sont pas pris en charge pour les propriétés Metadata.Value[Name] et Tags.Value[Name].
5 L’opérateur empty teste si une valeur est vide. La sensibilité à la casse ne s’applique pas, et il n’y a pas d’opérateur empty_cs.
L’opérateur not est un opérateur spécial que l’on peut positionner avant n’importe lequel des opérateurs apparaissant dans ce tableau pour inverser le résultat d’une clause conditionnelle, également appelée résultat négatif.
Les opérateurs de chaîne avec le suffixe _cs sont sensibles à la casse. Par exemple, endsWith(Name, '.CSV') correspond à la fois à report.CSV et à report.csv, tandis que endsWith_cs(Name, '.CSV') correspond seulement à report.CSV.