部署準則會縮小原則的範圍,以便僅將其套用至準則為 true 的部署。例如,您可以使用部署準則來建立僅套用至特定目錄項目或範本的原則。

建構部署準則

您可以使用圖形化介面來建構部署準則運算式。若要建構複雜運算式,您可以使用 AND 和 OR。也可以將運算式作為帶括弧的運算子進行分組。如需有關如何處理運算式的詳細資訊,請參閱運算式的作業順序

以下是運算式的範例。
deployment equals Multi-tier with LB AND (ownedBy equals jan@mycompany.com OR ownedBy kris@mycompany.com)
使用部署準則元件時類似於下列範例。
部署準則的範例。

部署準則內容

若要建立功能部署準則,您必須瞭解語法。

準則文字方塊包含多個下拉式功能表,提供了可用的內容和運算子。建構運算式的方式取決於可用的值以及作業順序。

下拉式功能表包含下列內容。某些內容因原則類型而有所不同。

內容 說明 適用於下列原則類型 支援以下運算子
Cloud Template

用於建立部署的 Cloud Assembly 雲端範本的識別碼。

當原則特定於 Cloud Assembly 雲端範本時,請使用 Cloud Template 而非 Catalog Item。例如,Amazon Web Services 範本不具有 Cloud Template
  • 核准
  • 第 2 天
  • 租用
  • 等於
  • 不等於

Catalog Item

用於請求部署的 Service Broker 目錄項目的識別碼。

當原則可包含基於任何範本、擴充性工作流程或其他內容類型的 Service Broker 目錄項目時,請使用 Catalog Item 而非 Cloud Template。例如,從目錄部署的 Cloud Assembly 雲端範本和 Amazon Web Services CloudFormation 範本具有 Catalog Item

  • 核准
  • 第 2 天
  • 租用
  • 等於
  • 不等於
Deployment Creation Cost

成本值。

如果部署符合指定的成本運算式,則會觸發核准流程。

  • 核准
  • 等於
  • 不等於
  • 大於
  • 大於或等於
  • 小於
  • 小於或等於
Deployment 部署的識別碼。
  • 核准
  • 等於
  • 不等於
Created By

申請部署之使用者的名稱。格式為 username@mycompany.com。

此使用者是請求部署的使用者。

  • 第 2 天
  • 租用
  • 等於
  • 不等於
  • 符合 Regex
  • 包含
Name 部署名稱。
  • 第 2 天
  • 租用
  • 等於
  • 不等於
  • 符合 Regex
  • 包含
Owned By

目前部署擁有者的名稱。

  • 核准
  • 第 2 天
  • 租用
  • 等於
  • 不等於
  • 符合 Regex
  • 包含
Requested By

請求第 2 天動作的使用者的名稱。格式為 username@mycompany.com。

建立核准原則時,requestedBy 準則是請求第 2 天動作的使用者,而不是請求部署的使用者。請求部署的使用者是 createdBy 準則。

  • 核准
  • 等於
  • 不等於
  • 符合 Regex
  • 包含
Resources 屬於部署一部分的資源。

您可以根據下列資源定義部署準則。

  • CPU 計數
  • 雲端類型
  • 類型模板
  • 區域
  • 標籤

    使用者定義的標籤和探索到的標籤。

  • 記憶體總計 (MB)
  • 資源類型
  • 核准
  • 第 2 天
  • 租用

您可以根據下列其他資源定義核准準則。

  • 雲端區域
  • 雲端帳戶
  • 具有快照
  • 映像
  • 映像識別碼
  • 作業系統類型
  • 電源狀態
  • 磁碟
  • 核准

資源標籤的準則格式

資源標籤是索引鍵值配對。根據標籤定義部署準則時,必須定義索引鍵。定義值是選擇性的。準則以使用者定義的標籤和系統標籤為基礎。

例如,若要建立一個標籤配對的準則,則運算式類似於下列範例。
resources has any 
    tags has any 
        key equals env 
        AND 
        value equals dev
UI 中顯示的一個索引鍵值配對的簡單部署準則運算式範例。
若要建立以一個索引鍵但多個值為基礎的準則,則運算式類似於下列範例。
resources has any 
    tags has any 
        key equals env 
            AND 
                value equals dev 
                OR
                value equals prod
UI 中顯示的單一索引鍵和多個值部署準則運算式範例。
若要建立以多個索引鍵但沒有值為基礎的準則,則運算式類似於下列範例。
resources has any 
    tags has any 
        key equals env1 
        OR 
        key equals env2
UI 中顯示的多個索引鍵部署準則運算式範例。
若要建立用於評估兩個不同索引鍵值配對的準則,則必須將其新增為個別資源標籤。例如,
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 中顯示的多個索引鍵和值部署準則運算式範例。

使用包含符合 Regex 運算子

containsmatches Regex 運算子定義在內容中搜尋一組指定的字元。可以將這些運算子套用到不支援下拉式功能表的字串式內容,例如 createdBynameownedBy

contains 運算子可在任何內容中搜尋指定值的所有執行個體。值輸入文字方塊區分大小寫和空格。如果要考慮到內容差異,則必須為各個其他變體設定一個值。可使用 contains 運算子對有限數目的值進行簡單搜尋。

matches Regex 運算子用於複雜搜尋 (必須考慮到大量內容差異) 時,此運算子可提供很大的彈性。規則運算式必須遵循 ECMAScript 語法。定義規則運算式時,請不要在值的開頭和結尾處輸入正斜線 (/)。

下表提供了使用兩個運算子的運算式範例,並就如何使用運算子實現相同目標進行比較。

使用 contains 運算子的範例 使用 matches Regex 運算子的範例 欄位值相符
name contains test
name matches Regex test*

包含 test (小寫) 的所有部署名稱。例如,test deploymentmytesttest-123 等。

name contains test
OR
name contains Test
name matches Regex (t|T)est.*

包含 testTest 的所有部署名稱。

(group)
	createdBy contains admin@
	(group)
	AND
		createdBy contains .com
		OR
		createdBy 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
createdBy matches Regex admin@\S+\.((com)|(org))
AND
name matches ((t|T)est)|(d|D)epl.*.

由電子郵件地址開頭為 admin@ 且結尾為 .com.org 的使用者建立的所有部署。

在任何組態中包含 test 和/或 deploy 的所有部署名稱。例如,test deploymenttestdeploymentTest-Deployment 等。

運算式的作業順序

按下列順序處理運算式。群組以括弧形式表示。

  1. 群組中的運算式
  2. AND

使用以下範例瞭解順序。

  • X OR Y AND Z。在此範例中,Y AND Z 在 X OR Y 之前進行評估。接著,會根據 Y AND Z 的結果評估 X OR。
  • (X OR Y) AND Z。在此範例中,X OR Y 在 AND 之前進行評估,因為群組中的運算式一律優先評估。接著,將根據 X OR Y 的結果評估 AND Z。