Критерии развертывания сужают область действия политики: она применяется только к тем развертываниям, в которых соответствующие критерии истинны. Например, критерии развертывания можно использовать для создания политики, применяемой только к определенному элементу каталога или шаблону.
Создание критериев развертывания
Выражения критериев развертывания создаются в графическом интерфейсе. Для создания сложных выражений можно использовать операторы И и ИЛИ. Можно также группировать выражения с использованием операторов в скобках. Дополнительные сведения об обработке выражений см. в разделе Порядок операций в выражении.
Deployment equals Multi-tier five machine with LB AND (Owned By equals [email protected] OR Owned By [email protected])
![Пример критериев развертывания.](images/GUID-C25818CD-4AAE-4BF3-ADA7-2444B010FD35-low.png)
Свойства критериев развертывания
Чтобы создавать функциональные критерии развертывания, необходимо понимать синтаксис.
Текстовое поле критериев содержит различные раскрывающиеся меню с доступными свойствами и операторами. Структура выражения зависит от доступных значений и порядка выполнения операций.
Раскрывающиеся меню содержат следующие свойства. Некоторые свойства могут различаться в зависимости от типа политики.
Свойство | Описание | Доступно в следующих типах политик | Поддерживает эти операторы |
---|---|---|---|
Cloud Template |
Идентификатор для облачного шаблона Cloud Assembly, который был использован для создания развертывания. Используйте |
|
|
|
Идентификатор элемента каталога Service Broker, который использовался для запроса развертывания. Используйте |
|
|
Deployment Creation Cost |
Значение затрат. Если развертывание соответствует указанному выражению затрат, запускается процесс подтверждения. |
|
|
Deployment |
Идентификатор развертывания. Если необходимо применить политику к существующим развертываниям, используйте |
|
|
Created By |
Имя пользователя, запросившего развертывание. Требуемый формат: [email protected]. Этот пользователь запросил развертывание. |
|
|
Name |
Имя развертывания. Если необходимо применить политику к существующим политикам и политикам, которые могут быть созданы в будущем, если политики соответствуют указанному выражению имени развертывания, используйте |
|
|
Owned By |
Имя текущего владельца развертывания. |
|
|
Owner Type |
Тип владельца развертывания. Тип владения может быть основан на пользователях или группах Active Directory. |
|
|
Requested By |
Имя пользователя, запросившего действие по регулярному обслуживанию. Требуемый формат: [email protected]. При создании политик утверждения критерий |
|
|
Resources |
Ресурсы, которые являются частью развертывания. Критерии развертывания можно определить на основе следующих ресурсов.
|
|
Форматы критериев для тегов ресурсов
Теги ресурсов — это пары «ключ — значение». При определении критериев развертывания на основе тегов необходимо задать ключ. Значение можно не указывать. Критерии основаны на тегах, определяемых пользователем, и системных тегах.
Resources has any Tags has any Key equals env AND Value equals dev
![Пример выражения для критерия простого развертывания одной пары «ключ — значение», которое отображается в пользовательском интерфейсе.](images/GUID-4820EDDB-4209-41EE-8D21-33B875FD070B-low.png)
Resources has any Tags has any Key equals env AND Value equals dev OR Value equals prod
![Пример выражения для критерия развертывания с одним ключом и несколькими значениями, которое отображается в пользовательском интерфейсе.](images/GUID-D536EEA1-4F02-4A98-978B-A33F20B4EDF0-low.png)
Resources has any Tags has any Key equals env1 OR Key equals env2
![Пример выражения для критериев развертывания с несколькими ключами, отображаемого в пользовательском интерфейсе.](images/GUID-791707B3-5716-497F-972F-FE58AFC2BFDC-low.png)
Resources has any Tags has any Key equals env AND Value equals envprod AND Tags has any Key equals vc_65_network AND Value equals vc
![Пример выражения для критерия развертывания с несколькими ключами и значениями, которое отображается в пользовательском интерфейсе.](images/GUID-CB6F550E-82E2-46CD-8119-CA4064872346-low.png)
Использование операторов contains и matches Regex
Операторы contains
и matches Regex
определяют поиск по заданному набору символов в свойстве. Эти операторы можно применять к свойствам на основе строк, которые не поддерживают раскрывающиеся списки, например createdBy
, name
и ownedBy
.
Оператор contains
выполняет поиск всех экземпляров значения, указанного в любом контексте. В текстовом поле для ввода значения учитываются регистр и пробелы. Если нужно учесть изменение контекста, то необходимо задать значение для каждого дополнительного варианта. Для простого поиска с ограниченным количеством значений используйте оператор contains
.
Оператор matches Regex
обеспечивает большую гибкость при сложных поисках, где требуется учитывать множество контекстных изменений. Регулярные выражения должны соответствовать синтаксису ECMAScript. При определении регулярных выражений не используйте символ косой черты (/
) в начале и конце значения.
В таблице ниже приводятся примеры выражений, в которых используются два оператора, и видно, как их можно использовать для достижения одной и той же цели.
Пример с оператором contains |
Пример с оператором matches Regex |
Значение поля совпадает |
---|---|---|
Name contains test |
Name matches Regex test* |
Все имена развертывания, содержащие символы test в нижнем регистре. Например, test deployment, mytest, test-123 и т. д. |
Name contains test OR Name contains Test |
Name matches Regex (t|T)est.* |
Все имена развертывания, содержащие символы test или Test. |
(group) Created By contains admin@ (group) AND Created By contains .com OR Created By contains .org (group) AND Name contains test OR Name contains test- OR Name contains Test OR Name contains Test- OR Name contains deploy OR Name contains Deploy |
Created By matches Regex admin@\S+\.((com)|(org)) AND Name matches ((t|T)est)|(d|D)epl.*. |
Все развертывания, созданные пользователями, чей адрес электронной почты начинается с admin@ и заканчивается на .com или .org. Все имена развертываний, содержащие test и (или) deploy в любом сочетании. Например test deployment, testdeployment, Test-Deployment и т. д. |
Порядок операций в выражении
Выражение обрабатывается в следующем порядке. Группы указываются в круглых скобках.
- Выражения в группах
- И
- ИЛИ
Следующие примеры помогают понять этот порядок.
- X ИЛИ Y И Z. В этом примере выражение Y И Z вычисляется до X ИЛИ Y. Затем X ИЛИ сравнивается с результатом выражения Y И Z.
- (X ИЛИ Y) И Z. В этом примере X ИЛИ Y вычисляется раньше И, поскольку выражение в группе всегда вычисляется первым. Далее И Z вычисляется относительно результата выражения X ИЛИ Y.