Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Задача хранилища содержит набор условий и операций. В этой статье описывается формат JSON условия. Понимание этого формата важно, если вы планируете создать задачу хранения с помощью средства, отличного от портал Azure (например, Azure PowerShell или Azure CLI). В этой статье также перечислены свойства и операторы, которые можно использовать для составления условных выражений.
В этой статье рассматриваются условия. Дополнительные сведения об операциях см. в разделе «Операции задач хранилища».
Формат условия
Условие — это совокупность одного или нескольких условий. Каждое предложение содержит свойство, значение и оператор. При выполнении задачи хранилища используется оператор для сравнения свойства со значением, чтобы определить, удовлетворяет ли условие целевой объект. В предложении оператор всегда идет первым, за ним следует свойство, а потом значение. На следующем рисунке показано, как каждый элемент расположен в выражении.
Следующее предложение позволяет выполнять операции только в документах Microsoft Word. Это предложение предназначено для всех документов, заканчивающихся расширением .docxфайла. Таким образом, оператор — это endsWith, свойство — это Name, а значение — это .docx.
{
"condition": "[[[endsWith(Name, '.docx')]]"
}
Кроме того, оператор не может быть применен перед оператором в предложении условия. Оператор не является специальным оператором, который можно разместить перед любым оператором, чтобы дать противоположный результат предложения. Следующее предложение позволяет выполнять операции с любым большим двоичным объектом, который не является документом Microsoft Word.
{
"condition": "[[not(endsWith(Name, '*.docx'))]]"
}
Полный список имен операторов и свойств см. в разделе "Поддерживаемые операторы " и "Поддерживаемые свойства " этой статьи.
Несколько условий в одном выражении
Условие может содержать несколько предложений, разделенных запятой вместе со строкой and или or. Строка and предназначена для объектов, которые соответствуют критериям во всех условиях, а or предназначена для объектов, которые соответствуют критерию в любом из условий. На следующем рисунке показано положение строки and и or, а также два предложения.
В следующем формате JSON показано условие, содержащее два предложения.
and Поскольку строка используется в этом выражении, оба условия должны вычисляться true перед выполнением операции над объектом.
{
"condition": "[[and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))]]"
}
Группы условий
Сгруппированные предложения работают как единая единица, отдельная от остальных предложений. Предложения группировки похожи на размещение скобок вокруг математического уравнения или выражения логики.
and или or строка для первого условия в группе применяется ко всей группе.
На следующем рисунке показаны два предложения, сгруппированные вместе.
Следующее условие позволяет выполнять операции только в документах Microsoft Word, где readyForLegalHold для тега документа задано значение Yes. Операции также выполняются для объектов, которые больше 100 байт, даже если другие два условия не соответствуют действительности.
{
"condition": "[[or(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes')), greater(Content-Length, '100'))]]"
}
Вы можете применить оператор не к группе, чтобы проверить противоположный результат группы предложений. Следующее условие позволяет выполнять операции только с BLOB-объектами, которые не являются документами Microsoft Word, и у которых тег readyForLegalHold установлен в значение Yes. Операции также выполняются для объектов, которые больше 100 байт, даже если другие два условия не соответствуют действительности.
{
"condition": "[[or(not(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))), greater(Content-Length, '100'))]]"
}
Представление кода в портале Azure
Визуальный редактор, доступный в портале Azure, может создать JSON для условия. Вы можете определить условия с помощью редактора, а затем получить выражение JSON, открыв вкладку "Код ". Этот подход может оказаться полезным при создании сложных наборов условий, так как выражения JSON могут стать большими, неуклюжами и сложно создавать вручную. На следующем рисунке показана вкладка "Код " в визуальном редакторе.
Дополнительные сведения о визуальном редакторе см. в разделе "Определение условий задачи хранения" и операций.
Просмотр предварительного условия
Вы можете просмотреть список блобов, которые будут затронуты определенными условиями. Таким образом, вы можете найти проблемы и оптимизировать условия перед применением их к рабочим данным. Предварительный просмотр не вносит изменения в объекты в целевом аккаунте хранилища, поэтому его безопасно использовать для тестирования на рабочих данных.
Хотя предварительный просмотр условий доступен в средах PowerShell, Azure CLI и SDK, проще всего просмотреть влияние условий с помощью окна "Предварительные условия" на портале Azure. Это окно можно открыть, определив условия и назначив задачи хранения.
Чтобы просмотреть влияние условий, необходимо указать целевую подписку, учетную запись хранения и контейнер. Поскольку интерфейс может отображать только до 5000 блоков данных, можно также указать префикс, чтобы сузить список.
Замечание
Нельзя использовать подстановочные знаки в префиксе объекта BLOB.
На следующем рисунке показан пример предварительного просмотра на портале Azure.
Результат предварительного просмотра отображается в таблице, в которой показаны объекты, которые соответствуют условию вместе с объектами, которые не соответствовали условию. Вы можете сортировать по полю, которое отображается в таблице.
Если условия ссылаются на свойства, которые не существуют в целевой учетной записи хранения, появится ошибка. Например, теги индекса объектов BLOB недоступны для учётных записей с иерархическим пространством имён. Если предложение в условии относится к тегам индекса BLOB-объектов, появится ошибка проверки.
Поддерживаемые свойства
В следующей таблице показаны свойства, которые можно использовать для создания каждого предложения условия. Предложение может содержать строковые, логические, числовые и временные свойства.
| Строка | Дата и время3 | Числовое | Логический |
|---|---|---|---|
| AccessTier1 | ВремяИзмененияУровняДоступа | Длина содержимого: 0 | Удалено |
| BlobType2 | Время создания | КоличествоТегов | ТекущаяВерсия |
| Контейнер.Метаданные.Значение[Имя] | Удаленное время | ||
| Контейнер.Имя | ВремяПоследнегоДоступа | ||
| Metadata.Value[Name] | Дата последнего изменения | ||
| Имя. | |||
| Tags.Value[Name] |
1 Допустимые значения: Hot, CoolCold или Archive.
2 Допустимые значения: BlockBlobили PageBlobAppendBlob
3 Можно задать определенное время или значение метаданных динамически полученное из объектов. См. ссылку на значение из метаданных объекта.
Поддерживаемые операторы
В следующей таблице показаны операторы, которые можно использовать в предложении для оценки значения каждого типа свойства.
| Строка | Дата и время | Числовое | Логический |
|---|---|---|---|
| содержит | равно | равно | равно |
| пусто | больше | больше | |
| заканчивается | большеИлиРавно | большеИлиРавно | |
| равно | меньше | меньше | |
| совпадения4 | меньшеИлиРавно | меньшеИлиРавно | |
| начинается с |
4 Оператор matches не поддерживается для Metadata.Value[Name] и Tags.Value[Name] свойств.
Оператор не является специальным оператором, который можно разместить перед любым из операторов, которые отображаются в этой таблице, чтобы дать противоположный результат условного предложения, также называемый отрицательным результатом.