

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 명령
<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>

명령 규칙에는 다음 고려 사항이 적용됩니다.
+ 명령 규칙은 CodeBuild 작업과 유사한 CodeBuild 리소스를 사용하는 동시에 빌드 프로젝트를 연결하거나 생성할 필요 없이 가상 컴퓨팅 인스턴스에서 쉘 환경 명령을 허용합니다.
**참고**  
명령 규칙을 실행하면 별도의 요금이 발생합니다 AWS CodeBuild.
+ CodePipeline의 명령 규칙은 CodeBuild 리소스를 사용하기 때문에 작업에서 실행되는 빌드는 CodeBuild에서 계정의 빌드 제한에 귀속됩니다. 명령 규칙에서 실행되는 빌드는 해당 계정에 구성된 동시 빌드 제한에 포함됩니다.
+ CodeBuild 빌드를 기반으로 할 때 명령 규칙을 사용한 빌드의 제한 시간은 55분입니다.
+ 컴퓨팅 인스턴스는 CodeBuild에서 격리된 빌드 환경을 사용합니다.
**참고**  
격리된 빌드 환경은 계정 수준에서 사용되므로 인스턴스를 다른 파이프라인 실행에 재사용할 수 있습니다.
+ 다중 라인 형식을 제외한 모든 형식이 지원됩니다. 명령을 입력할 때는 단일 줄 형식을 사용해야 합니다.
+ 이 규칙의 경우 CodePipeline은 파이프라인 서비스 역할을 수행하고 해당 역할을 사용하여 런타임 시 리소스에 대한 액세스를 허용합니다. 권한 범위가 작업 수준까지 내려가도록 서비스 역할을 구성하는 것이 좋습니다.
+ CodePipeline 서비스 역할에 추가된 권한은 [CodePipeline 서비스 역할에 권한 추가](how-to-custom-role.md#how-to-update-role-new-services)에 자세히 설명되어 있습니다.
+ 콘솔에서 로그를 보는 데 필요한 권한은 [콘솔에서 컴퓨팅 로그를 보는 데 필요한 권한](security-iam-permissions-console-logs.md)에 자세히 설명되어 있습니다. 다음 예제 화면에서 **로그** 링크를 사용하여 CloudWatch 로그에서 성공적인 명령 규칙에 대한 로그를 봅니다.  
![\[명령 규칙이 있는 파이프라인의 상태 페이지\]](http://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/images/commands-rule-status.png)  
![\[명령 규칙이 있는 파이프라인에 대한 CloudWatch의 로그 페이지\]](http://docs.aws.amazon.com/ko_kr/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>

**명령**  
필수 항목 여부: 예  
실행할 `Commands` 규칙에 쉘 명령을 제공할 수 있습니다. 콘솔에서 명령은 별도의 줄에 입력됩니다. CLI에서 명령은 별도의 문자열로 입력됩니다.  
다중 라인 형식은 지원되지 않으며 오류 메시지가 표시됩니다. **명령** 필드에 명령을 입력하려면 단일 줄 형식을 사용해야 합니다.
다음 세부 정보는 명령 규칙에 사용되는 기본 컴퓨팅을 제공합니다. 자세한 내용은 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
+ **환경 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 가이드*의 [조건](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)을 참조하세요.