

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 規則結構參考
<a name="rule-reference"></a>

本節僅做為規則組態的參考。如需管道結構的概念介紹，請參閱 [CodePipeline 管道結構參考](reference-pipeline-structure.md)。

CodePipeline 中的每個規則提供者都會在管道結構中使用一組必要和選用的組態欄位。本節依規則提供者提供下列參考資訊：
+ 管道結構規則區塊中包含`RuleType`的欄位的有效值，例如 `Owner`和 `Provider`。
+ 管道結構規則區段中包含之`Configuration`參數 （必要和選用） 的描述和其他參考資訊。
+ 有效的範例 JSON 和 YAML 規則組態欄位。

參考資訊適用於下列規則提供者：

**Topics**
+ [CloudWatchAlarm](rule-reference-CloudWatchAlarm.md)
+ [CodeBuild 規則](rule-reference-CodeBuild.md)
+ [命令](rule-reference-Commands.md)
+ [DeploymentWindow](rule-reference-DeploymentWindow.md)
+ [LambdaInvoke](rule-reference-LambdaInvoke.md)
+ [VariableCheck](rule-reference-VariableCheck.md)

# CloudWatchAlarm
<a name="rule-reference-CloudWatchAlarm"></a>

建立條件時，您可以新增`CloudWatchAlarm`規則。本節提供規則參數的參考。如需規則和條件的詳細資訊，請參閱 [階段條件如何運作？](concepts-how-it-works-conditions.md)。

您必須已在 Amazon CloudWatch 中建立警示做為個別資源。

**Topics**
+ [

## 規則類型
](#rule-reference-CloudWatchAlarm-type)
+ [

## 組態參數
](#rule-reference-CloudWatchAlarm-config)
+ [

## 範例規則組態
](#rule-reference-CloudWatchAlarm-example)
+ [

## 另請參閱
](#rule-reference-CloudWatchAlarm-links)

## 規則類型
<a name="rule-reference-CloudWatchAlarm-type"></a>
+ 類別：`Rule`
+ 擁有者：`AWS`
+ 提供者：`CloudWatchAlarm`
+ 版本：`1`

## 組態參數
<a name="rule-reference-CloudWatchAlarm-config"></a>

**AlarmName**  
必要：是  
CloudWatch 警示的名稱。這是在 CloudWatch 中建立的個別資源。

**AlarmStates**  
必要：否  
規則要監控的所需 CloudWatch 警示狀態。有效值為 ALARM、OK 和 INSUFFICIENT\$1DATA。

**WaitTime**  
必要：否  
在執行規則結果之前，允許狀態變更的等待時間，以分鐘為單位。例如，設定 20 分鐘等待警示狀態變更為確定，再套用規則結果。

## 範例規則組態
<a name="rule-reference-CloudWatchAlarm-example"></a>

------
#### [ YAML ]

```
rules:
    - name: MyMonitorRule
      ruleTypeId:
        category: Rule
        owner: AWS
        provider: CloudWatchAlarm
        version: '1'
      configuration:
        AlarmName: CWAlarm
        WaitTime: '1'
      inputArtifacts: []
      region: us-east-1
```

------
#### [ JSON ]

```
                            "rules": [
                                {
                                    "name": "MyMonitorRule",
                                    "ruleTypeId": {
                                        "category": "Rule",
                                        "owner": "AWS",
                                        "provider": "CloudWatchAlarm",
                                        "version": "1"
                                    },
                                    "configuration": {
                                        "AlarmName": "CWAlarm",
                                        "WaitTime": "1"
                                    },
                                    "inputArtifacts": [],
                                    "region": "us-east-1"
                                }
                            ]
                        }
```

------

## 另請參閱
<a name="rule-reference-CloudWatchAlarm-links"></a>

下列相關資源可協助您處理此規則。
+ [在失敗條件時建立](stage-conditions.md#stage-conditions-onfailure) – 本節提供使用警示規則建立失敗時條件的步驟。

# CodeBuild 規則
<a name="rule-reference-CodeBuild"></a>

建立條件時，您可以新增 CodeBuild 規則。本節提供規則參數的參考。如需 規則和條件的詳細資訊，請參閱 [階段條件如何運作？](concepts-how-it-works-conditions.md)。

您可以使用 CodeBuild 規則來建立條件，其中成功執行建置專案符合規則條件，例如建置執行在 beforeEntry 條件中成功。

**注意**  
對於使用**略過**結果設定的 beforeEntry 條件，只有下列規則可用： `LambdaInvoke`和 `VariableCheck`。

**Topics**
+ [

## 服務角色政策許可
](#rule-reference-Commands-policy)
+ [

## 規則類型
](#rule-reference-Commands-type)
+ [

## 組態參數
](#rule-reference-Commands-config)
+ [

## 範例規則組態
](#rule-reference-Commands-example)
+ [

## 另請參閱
](#rule-reference-Commands-links)

## 服務角色政策許可
<a name="rule-reference-Commands-policy"></a>

如需此規則的許可，請將以下內容新增至 CodePipeline 服務角色政策陳述式。將許可範圍縮小到資源層級。

```
{
    "Effect": "Allow",
    "Action": [
        "codebuild:BatchGetBuilds",
        "codebuild:StartBuild"
    ],
    "Resource": "resource_ARN"
},
```

## 規則類型
<a name="rule-reference-Commands-type"></a>
+ 類別：`Rule`
+ 擁有者：`AWS`
+ 提供者：`CodeBuild`
+ 版本：`1`

## 組態參數
<a name="rule-reference-Commands-config"></a>

**ProjectName**  
必要：是  
`ProjectName` 是 CodeBuild 中建置專案的名稱。

**PrimarySource**  
必要：有條件  
`PrimarySource` 參數的值必須是動作其中一個輸入成品的名稱。CodeBuild 會尋找 buildspec 檔案，並在包含此成品解壓縮版本的目錄中執行 buildspec 命令。  
如果針對 CodeBuild 動作指定多個輸入成品，則需要此參數。動作只有一個來源成品時，則 `PrimarySource` 成品會預設為該成品。

**BatchEnabled**  
必要：否  
`BatchEnabled` 參數的布林值允許 動作在相同的組建執行中執行多個組建。  
啟用此選項時，即可使用 `CombineArtifacts`選項。  
如需啟用批次建置的管道範例，請參閱 [CodePipeline 與 CodeBuild 和批次建置整合](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-pipeline-batch.html)。

**CombineArtifacts**  
必要：否  
`CombineArtifacts` 參數的布林值會將批次組建的所有組建成品合併為組建動作的單一成品檔案。  
若要使用此選項，必須啟用 `BatchEnabled` 參數。

**EnvironmentVariables**  
必要：否  
此參數的值用於設定管道中 CodeBuild 動作的環境變數。`EnvironmentVariables` 參數的值採用環境變數物件的 JSON 陣列格式。請參閱 [動作宣告 (CodeBuild 範例）](action-reference-CodeBuild.md#action-reference-CodeBuild-example) 中的範例參數。  
每個物件都有三個部分，而且全都是字串：  
+ `name`：環境變數的名稱或索引鍵。
+ `value`：環境變數的值。使用 `PARAMETER_STORE`或 `SECRETS_MANAGER`類型時，此值必須是您已存放在 AWS Systems Manager 參數存放區中的參數名稱，或是您已存放在 Secrets Manager 中的 AWS 秘密。
**注意**  
我們強烈建議不使用環境變數來存放敏感值，尤其是 AWS 登入資料。當您使用 CodeBuild 主控台或 AWS CLI 時，環境變數會以純文字顯示。對於敏感值，建議您改用 `SECRETS_MANAGER` 類型。
+ `type`：(選擇性) 環境變數的類型。有效值為 `PARAMETER_STORE`、`SECRETS_MANAGER` 或 `PLAINTEXT`。未指定時，則將預設為 `PLAINTEXT`。
當您`type`為環境變數組態輸入 `name`、 `value`和 時，特別是在環境變數包含 CodePipeline 輸出變數語法時，請勿超過組態值欄位的 1000 個字元限制。如果超過此限制，系統就會傳回驗證錯誤。
如需詳細資訊，請參閱《 AWS CodeBuild API 參考》中的 [ EnvironmentVariable](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_EnvironmentVariable.html)。如需具有解析為 GitHub 分支名稱之環境變數的 CodeBuild 動作範例，請參閱 [範例：搭配 CodeBuild 環境變數使用 BranchName 變數](actions-variables.md#actions-variables-examples-env-branchname)。

## 範例規則組態
<a name="rule-reference-Commands-example"></a>

------
#### [ YAML ]

```
name: codebuild-rule
ruleTypeId:
  category: Rule
  owner: AWS
  provider: CodeBuild
  version: '1'
configuration:
  ProjectName: my-buildproject
  EnvironmentVariables: '[{"name":"VAR1","value":"variable","type":"PLAINTEXT"}]'
inputArtifacts:
- name: SourceArtifact
region: us-east-1
```

------
#### [ JSON ]

```
{
    "name": "codebuild-rule",
    "ruleTypeId": {
        "category": "Rule",
        "owner": "AWS",
        "provider": "CodeBuild",
        "version": "1"
    },
    "configuration": {
        "ProjectName": "my-buildproject"
    },
    "inputArtifacts": [
        {
            "name": "SourceArtifact",
            "EnvironmentVariables": "[{\"name\":\"VAR1\",\"value\":\"variable\",\"type\":\"PLAINTEXT\"}]"
        }
    ],
    "region": "us-east-1"
}
```

------

## 另請參閱
<a name="rule-reference-Commands-links"></a>

下列相關資源可協助您處理此規則。
+ 如需規則和條件的詳細資訊，請參閱 *CodePipeline API 指南*中的 [Condition](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_Condition.html)、[RuleTypeId](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleTypeId.html) 和 [RuleExecution](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleExecution.html)。

# 命令
<a name="rule-reference-Commands"></a>

建立條件時，您可以新增`Commands`規則。本節提供規則參數的參考。如需規則和條件的詳細資訊，請參閱 [階段條件如何運作？](concepts-how-it-works-conditions.md)。

您可以使用 `Commands`規則來建立條件，其中成功的命令符合規則條件，例如命令的輸出和檔案路徑在 beforeEntry 條件中成功。

**注意**  
對於使用**略過**結果設定的 beforeEntry 條件，只有下列規則可用： `LambdaInvoke`和 `VariableCheck`。

**Topics**
+ [

## 命令規則的考量事項
](#rule-reference-Commands-considerations)
+ [

## 服務角色政策許可
](#rule-reference-Commands-policy)
+ [

## 規則類型
](#rule-reference-Commands-type)
+ [

## 組態參數
](#rule-reference-Commands-config)
+ [

## 範例規則組態
](#rule-reference-Commands-example)
+ [

## 另請參閱
](#rule-reference-Commands-links)

## 命令規則的考量事項
<a name="rule-reference-Commands-considerations"></a>

下列考量適用於 Commands 規則。
+ 命令規則使用類似於 CodeBuild 動作的 CodeBuild 資源，同時允許虛擬運算執行個體中的 shell 環境命令，而不需要關聯或建立建置專案。
**注意**  
執行命令規則會產生個別費用 AWS CodeBuild。
+ 由於 CodePipeline 中的 Commands 規則使用 CodeBuild 資源，因此 動作執行的組建將歸因於 CodeBuild 中您帳戶的組建限制。由 Commands 規則執行的組建將計入針對該帳戶設定的並行組建限制。
+ 根據 CodeBuild 組建，使用 Commands 規則的組建逾時為 55 分鐘。
+ 運算執行個體在 CodeBuild 中使用隔離的建置環境。
**注意**  
由於隔離的建置環境是在帳戶層級使用，因此執行個體可能會重複使用於另一個管道執行。
+ 除了多行格式之外，支援所有格式。輸入命令時，您必須使用單行格式。
+ 對於此規則，CodePipeline 將擔任管道服務角色，並使用該角色允許在執行時間存取資源。建議您設定服務角色，以便將許可範圍縮小至動作層級。
+ 新增至 CodePipeline 服務角色的許可詳述於 [將許可新增至 CodePipeline 服務角色](how-to-custom-role.md#how-to-update-role-new-services)。
+ 在 主控台中檢視日誌所需的許可詳述於 [在主控台中檢視運算日誌所需的許可](security-iam-permissions-console-logs.md) 。在下列範例畫面中，使用**日誌**連結檢視 CloudWatch 日誌中成功命令規則的日誌。  
![\[具有 Commands 規則之管道的狀態頁面\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/commands-rule-status.png)  
![\[具有 Commands 規則之管道的 CloudWatch 中的日誌頁面 CloudWatch\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/commands-rule-logs.png)
+ 與 CodePipeline 中的其他動作不同，您不要在動作組態中設定欄位，而是在動作組態之外設定動作組態欄位。

## 服務角色政策許可
<a name="rule-reference-Commands-policy"></a>

CodePipeline 執行規則時，CodePipeline 會使用管道的名稱建立日誌群組，如下所示。這可讓您縮小使用管道名稱記錄資源的許可範圍。

```
/aws/codepipeline/MyPipelineName
```

如果您使用現有的服務角色，若要使用 命令動作，您需要為服務角色新增下列許可。
+ logs:CreateLogGroup
+ logs:CreateLogStream
+ logs:PutLogEvents

在服務角色政策陳述式中，將許可範圍縮小至管道層級，如下列範例所示。

```
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
    ],
    "Resource": "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*"
}
```

若要使用動作詳細資訊對話方塊頁面在主控台中檢視日誌，必須將檢視日誌的許可新增至主控台角色。如需詳細資訊，請參閱 中的主控台許可政策範例[在主控台中檢視運算日誌所需的許可](security-iam-permissions-console-logs.md)。

## 規則類型
<a name="rule-reference-Commands-type"></a>
+ 類別：`Rule`
+ 擁有者：`AWS`
+ 提供者：`Commands`
+ 版本：`1`

## 組態參數
<a name="rule-reference-Commands-config"></a>

**命令**  
必要：是  
您可以提供 Shell 命令，讓`Commands`規則執行。在 主控台中，命令會在不同的行上輸入。在 CLI 中，命令會以個別字串輸入。  
不支援多行格式，且會導致錯誤訊息。單行格式必須用於在命令欄位中輸入**命令**。
下列詳細資訊提供用於 Commands 規則的預設運算。如需詳細資訊，請參閱 CodeBuild 使用者指南中的[建置環境運算模式和類型](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html)參考。  
+ **CodeBuild 映像：**aws/codebuild/amazonlinux2-x86\$164-standard：5.0
+ **運算類型：**Linux Small
+ **Environment computeType 值：**BUILD\$1GENERAL1\$1SMALL
+ **環境類型值：**LINUX\$1CONTAINER

## 範例規則組態
<a name="rule-reference-Commands-example"></a>

------
#### [ YAML ]

```
result: FAIL
rules:
- name: CommandsRule
  ruleTypeId:
    category: Rule
    owner: AWS
    provider: Commands
    version: '1'
  configuration: {}
  commands:
  - ls
  - printenv
  inputArtifacts:
  - name: SourceArtifact
  region: us-east-1
```

------
#### [ JSON ]

```
{
    "result": "FAIL",
    "rules": [
        {
            "name": "CommandsRule",
            "ruleTypeId": {
                "category": "Rule",
                "owner": "AWS",
                "provider": "Commands",
                "version": "1"
            },
            "configuration": {},
            "commands": [
                "ls",
                "printenv"
            ],
            "inputArtifacts": [
                {
                    "name": "SourceArtifact"
                }
            ],
            "region": "us-east-1"
        }
    ]
}
```

------

## 另請參閱
<a name="rule-reference-Commands-links"></a>

下列相關資源可協助您處理此規則。
+ 如需規則和條件的詳細資訊，請參閱 *CodePipeline API 指南*中的 [Condition](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_Condition.html)、[RuleTypeId](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleTypeId.html) 和 [RuleExecution](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleExecution.html)。

# DeploymentWindow
<a name="rule-reference-DeploymentWindow"></a>

建立條件時，您可以新增`DeploymentWindow`規則。本節提供規則參數的參考。如需規則和條件的詳細資訊，請參閱 [階段條件如何運作？](concepts-how-it-works-conditions.md)。

**Topics**
+ [

## 規則類型
](#rule-reference-DeploymentWindow-type)
+ [

## 組態參數
](#rule-reference-DeploymentWindow-config)
+ [

## 範例規則組態
](#rule-reference-DeploymentWindow-example)
+ [

## 另請參閱
](#rule-reference-DeploymentWindow-links)

## 規則類型
<a name="rule-reference-DeploymentWindow-type"></a>
+ 類別：`Rule`
+ 擁有者：`AWS`
+ 提供者：`DeploymentWindow`
+ 版本：`1`

## 組態參數
<a name="rule-reference-DeploymentWindow-config"></a>

**Cron**  
必要：是  
定義允許部署的日期和時間的表達式。Cron 表達式由 6 個必要欄位和一個以空格分隔的選用欄位組成。cron 表達式欄位可讓您指定具有 cron 表達式的排程模式，如下所示。    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/rule-reference-DeploymentWindow.html)
+ '\$1' 字元用於指定所有值。例如，分鐘欄位中的「\$1」表示「每分鐘」。
+ '？' 字元允許用於day-of-month和day-of-week欄位。它用於指定「無特定值」。當您需要指定兩個欄位中的其中一個，而不是另一個欄位，這會很有用。
+ '-' 字元用於指定範圍 例如，小時欄位中的「10-12」表示「小時 10、11 和 12」。
+ '，' 字元用於指定其他值。例如，day-of-week欄位中的「MON、WED、FRI」表示「星期一、星期三和星期五的天數」。
+ '/' 字元用於指定增量。例如，秒欄位中的「0/15」表示「秒 0、15、30 和 45」。秒欄位中的「5/15」表示「秒 5、20、35 和 50」。在 '/' 等於指定 0 之前指定 '\$1' 是開頭的值。
+ 'L' 字元允許用於day-of-month和day-of-week欄位。此字元是「最後」的速記，但兩個欄位各有不同的意義。例如，day-of-month欄位中的「L」值表示「當月的最後一天」- 非閏年 1 月的第 31 天、2 月的第 28 天。如果單獨使用在day-of-week欄位中，它只是表示「7」或「SAT」。但是，如果在另一個值後的day-of-week欄位中使用 ，則表示「當月的最後 <specified\$1day> 天」，例如「6L」表示「當月的最後星期五」。您也可以指定該月最後一天的偏移量，例如「L-3」，這表示該日曆月的third-to-last。
+ 'W' 字元允許用於day-of-month欄位。此字元用於指定離指定日期最近的工作日 （週一至週五）。例如，如果您要將 "15W" 指定為day-of-month欄位的值，其意義為：「最接近當月 15 日的工作日」。因此，如果 15 日是星期六，則觸發會在 14 日星期五觸發。如果 15 日是星期日，則觸發會在 16 日星期一觸發。如果 15 日是星期二，則會在 15 日星期二觸發。
+ 'L' 和 'W' 字元也可以組合成day-of-month，以產生 'LW'，其轉換為「當月的最後一個工作日」。
+ '\$1' 字元允許用於day-of-week欄位。此字元用於指定月份的「第 n 個」<specified\$1day> 天。例如，day-of-week欄位中的 "6\$13" 值表示當月第三個星期五 （第 6 天 = 星期五，而 "\$13" = 當月第三個星期五）。
+ 法律字元和星期幾和天數的名稱不區分大小寫。

**TimeZone**  
必要：否  
部署時段的時區。規則表達式符合下列格式的模式：  
+ **區域/城市格式**。此值符合區域/城市或區域/城市\$1城市格式的時區。例如 `America/New_York` 或 `Europe/Berlin`。
+ **UTC 格式**。此值符合字串 UTC，選擇性後面接著的偏移，格式為 \$1HH：MM 或 -HH：MM。 例如，`UTC`、 `UTC+05:30`或 `UTC-03:00`。如果未設定 參數，則此為預設格式。
+ **縮寫格式**。此值符合時區的 3 到 5 個字元縮寫。例如 `EST` 或 `IST`。

  如需有效 TimeZoneID 值的資料表，請參閱 https：//[https://docs.oracle.com/middleware/1221/wcs/tag-ref/MISC/TimeZones.html](https://docs.oracle.com/middleware/1221/wcs/tag-ref/MISC/TimeZones.html)。請注意，某些縮寫是重複的縮寫，例如中部標準時間、中國標準時間和古巴標準時間的 CST。

## 範例規則組態
<a name="rule-reference-DeploymentWindow-example"></a>

------
#### [ YAML ]

```
- name: MyDeploymentRule
  ruleTypeId:
    category: Rule
    owner: AWS
    provider: DeploymentWindow
    version: '1'
  configuration:
    Cron: 0 0 9-17 ? * MON-FRI *
    TimeZone: PST
  inputArtifacts: []
  region: us-east-1
```

------
#### [ JSON ]

```
[
                    {
                        "name": "MyDeploymentRule",
                        "ruleTypeId": {
                            "category": "Rule",
                            "owner": "AWS",
                            "provider": "DeploymentWindow",
                            "version": "1"
                        },
                        "configuration": {
                            "Cron": "0 0 9-17 ? * MON-FRI *",
                            "TimeZone": "PST"
                        },
                        "inputArtifacts": [],
                        "region": "us-east-1"
                    }
                ]
```

------

## 另請參閱
<a name="rule-reference-DeploymentWindow-links"></a>

下列相關資源可協助您處理此規則。
+ [在成功時建立條件](stage-conditions.md#stage-conditions-onsuccess) – 本節提供使用部署時段規則建立 On Success 條件的步驟。
+ 如需規則和條件的詳細資訊，請參閱 *CodePipeline API 指南*中的 [Condition](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_Condition.html)、[RuleTypeId](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleTypeId.html) 和 [RuleExecution](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleExecution.html)。

# LambdaInvoke
<a name="rule-reference-LambdaInvoke"></a>

建立條件時，您可以新增`LambdaInvoke`規則。本節提供規則參數的參考。如需 規則和條件的詳細資訊，請參閱 [階段條件如何運作？](concepts-how-it-works-conditions.md)。

您必須已在 Lambda 中建立 函數做為個別資源。

**Topics**
+ [

## 規則類型
](#rule-reference-CloudWatchAlarm-type)
+ [

## 組態參數
](#rule-reference-LambdaInvoke-config)
+ [

## 範例規則組態
](#rule-reference-LambdaInvoke-example)
+ [

## 另請參閱
](#rule-reference-LambdaInvoke-links)

## 規則類型
<a name="rule-reference-CloudWatchAlarm-type"></a>
+ 類別：`Rule`
+ 擁有者：`AWS`
+ 提供者：`LambdaInvoke`
+ 版本：`1`

## 組態參數
<a name="rule-reference-LambdaInvoke-config"></a>

**FunctionName**  
必要：是  
Lambda 函數的名稱。

**UserParameters**  
必要：否  
這些是做為 函數輸入以鍵值對格式提供的參數。

## 範例規則組態
<a name="rule-reference-LambdaInvoke-example"></a>

------
#### [ YAML ]

```
- name: MyLambdaRule
  ruleTypeId:
    category: Rule
    owner: AWS
    provider: LambdaInvoke
    version: '1'
  configuration:
    FunctionName: my-function
  inputArtifacts:
  - name: SourceArtifact
  region: us-east-1
```

------
#### [ JSON ]

```
[
    {
        "name": "MyLambdaRule",
        "ruleTypeId": {
            "category": "Rule",
            "owner": "AWS",
            "provider": "LambdaInvoke",
            "version": "1"
        },
        "configuration": {
            "FunctionName": "my-function"
        },
        "inputArtifacts": [
            {
                "name": "SourceArtifact"
            }
        ],
        "region": "us-east-1"
    }
]
```

------

## 另請參閱
<a name="rule-reference-LambdaInvoke-links"></a>

下列相關資源可協助您處理此規則。
+ [在失敗條件時建立](stage-conditions.md#stage-conditions-onfailure) – 本節提供使用警示規則建立失敗時條件的步驟。

# VariableCheck
<a name="rule-reference-VariableCheck"></a>

建立條件時，您可以新增`VariableCheck`規則。本節提供規則參數的參考。如需規則和條件的詳細資訊，請參閱 [階段條件如何運作？](concepts-how-it-works-conditions.md)。

您可以使用 `VariableCheck`規則來建立條件，其中會根據提供的表達式檢查輸出變數。當變數值符合規則條件，例如值等於或大於指定的輸出變數時，規則會通過檢查。

**Topics**
+ [

## 規則類型
](#rule-reference-VariableCheck-type)
+ [

## 組態參數
](#rule-reference-VariableCheck-config)
+ [

## 範例規則組態
](#rule-reference-VariableCheck-example)
+ [

## 另請參閱
](#rule-reference-VariableCheck-links)

## 規則類型
<a name="rule-reference-VariableCheck-type"></a>
+ 類別：`Rule`
+ 擁有者：`AWS`
+ 提供者：`VariableCheck`
+ 版本：`1`

## 組態參數
<a name="rule-reference-VariableCheck-config"></a>

**運算子**  
必要：是  
表示要為變數檢查執行哪些操作的運算子。  
在下列範例中，將檢查儲存庫名稱的輸出變數是否等於 `MyDemoRepo`。  

```
        "configuration": {
            "Variable": "#{SourceVariables.RepositoryName}",
            "Value": "MyDemoRepo",
            "Operator": "EQ"
        },
```
下列運算子可用於建立表達式，如下所示。  
+ **等於** - 選擇此運算子來檢查變數是否等於字串值。

  **CLI 參數：** `EQ`
+ **包含** - 選擇此運算子，以檢查變數是否包含字串值作為子字串。

  **CLI 參數：** `CONTAINS`
+ **相符** - 選擇此運算子，以檢查變數是否符合指定的 regex 表達式做為字串值。

  CodePipeline 中的所有規則表達式都符合 Java regex 語法。如需 Java regex 語法及其建構的全面描述，請參閱 [java.util.regex.Pattern](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/regex/Pattern.html)。

  **CLI 參數：** `MATCHES`
+ **不等於** - 選擇此運算子來檢查變數是否不等於字串值。

  **CLI 參數：** `NE`

**變數**  
必要：是  
要檢查的管道變數。

**Value**  
必要：是  
要檢查的表達式值。  
在下列範例中，將檢查儲存庫名稱的輸出變數是否等於 `MyDemoRepo`。  

```
        "configuration": {
            "Variable": "#{SourceVariables.RepositoryName}",
            "Value": "MyDemoRepo",
            "Operator": "EQ"
        },
```

在下列 JSON 範例中，定義了兩個不同的規則，一個用於 `EQ`（等於） 陳述式，檢查格式為 \$1\$1SourceVariables.RepositoryName\$1 的儲存庫和分支名稱`CONTAINS`，另一個用於檢查格式為 \$1\$1SourceVariables.CommitMessage\$1 的遞交訊息輸出變數，與提供的值「更新」。

```
  "beforeEntry": {
                    "conditions": [
                        {
                            "result": "FAIL",
                            "rules": [
                                {
                                    "name": "MyVarCheckRule",
                                    "ruleTypeId": {
                                        "category": "Rule",
                                        "owner": "AWS",
                                        "provider": "VariableCheck",
                                        "version": "1"
                                    },
                                    "configuration": {
                                        "Operator": "EQ",
                                        "Value": "MyDemoRepo",
                                        "Variable": "#{SourceVariables.RepositoryName}"
                                    },
                                    "inputArtifacts": [],
                                    "region": "us-east-1"
                                },
                                {
                                    "name": "MyVarCheckRuleContains",
                                    "ruleTypeId": {
                                        "category": "Rule",
                                        "owner": "AWS",
                                        "provider": "VariableCheck",
                                        "version": "1"
                                    },
                                    "configuration": {
                                        "Operator": "CONTAINS",
                                        "Value": "update",
                                        "Variable": "#{SourceVariables.CommitMessage}"
                                    },
                                    "inputArtifacts": [],
                                    "region": "us-east-1"
                                }
                            ]
                        }
                    ]
                }
            }
        ],
```

## 範例規則組態
<a name="rule-reference-VariableCheck-example"></a>

------
#### [ YAML ]

```
- name: MyVariableCheck
  ruleTypeId:
    category: Rule
    owner: AWS
    provider: VariableCheck
    version: '1'
  configuration:
    Variable: "#{SourceVariables.RepositoryName}"
    Value: MyDemoRepo
    Operator: EQ
  inputArtifacts: []
  region: us-west-2
```

------
#### [ JSON ]

```
"rules": [
    {
        "name": "MyVariableCheck",
        "ruleTypeId": {
            "category": "Rule",
            "owner": "AWS",
            "provider": "VariableCheck",
            "version": "1"
        },
        "configuration": {
            "Variable": "#{SourceVariables.RepositoryName}",
            "Value": "MyDemoRepo",
            "Operator": "EQ"
        },
        "inputArtifacts": [],
        "region": "us-west-2"
    }
]
```

------

## 另請參閱
<a name="rule-reference-VariableCheck-links"></a>

下列相關資源可協助您處理此規則。
+ [教學課程：建立管道的變數檢查規則做為進入條件](tutorials-varcheckrule.md) – 本節提供教學課程，其中包含使用變數檢查規則建立 On Entry 條件的步驟。
+ [變數參考](reference-variables.md) – 本節提供管道變數的參考資訊和範例。
+ 如需規則和條件的詳細資訊，請參閱 *CodePipeline API 指南*中的 [Condition](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_Condition.html)、[RuleTypeId](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleTypeId.html) 和 [RuleExecution](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleExecution.html)。