

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

# 命令
<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)。