部署条件缩小了策略的范围,以便仅将其应用于满足条件的部署。例如,您可以使用部署条件创建仅应用于特定目录项或模板的策略。
构建部署条件
可以使用图形界面构建部署条件表达式。要构建复杂表达式,可以使用 AND 和 OR。此外,还可以将表达式分组为带括号的运算符。有关如何处理表达式的详细信息,请参见表达式的运算顺序。
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 云模板的标识符。 当您的策略特定于 Cloud Assembly 云模板时,使用 |
|
|
|
用于请求部署的 Service Broker 目录项的标识符。 当策略可以包括基于任何模板、可扩展性工作流或其他内容类型的 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
![UI 中显示的一个键值对的简单部署条件表达式示例。](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
![UI 中显示的单键多值部署条件表达式示例。](images/GUID-D536EEA1-4F02-4A98-978B-A33F20B4EDF0-low.png)
Resources has any Tags has any Key equals env1 OR Key equals env2
![UI 中显示的多键部署条件表达式示例。](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
![UI 中显示的多键多值部署条件表达式示例。](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 等。 |
表达式的运算顺序
按以下顺序处理表达式。组用圆括号表示。
- 组中的表达式
- AND
- OR
以下示例可帮助您了解此顺序。
- X OR Y AND Z。在此示例中,先计算 Y AND Z,而不是 X OR Y。接下来,对 X OR 与 Y AND Z 的结果执行计算。
- (X OR Y) AND Z。在此示例中,先计算 X OR Y,而不是 AND,因为始终要先计算组中的表达式。接下来,对 X OR Y 的结果与 AND Z 执行计算。