

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

# 변수 작업
<a name="actions-variables"></a>

CodePipeline의 일부 작업은 변수를 생성합니다. 변수를 사용하려면 다음을 수행합니다.
+ 작업에 네임스페이스를 할당하여 생성된 변수를 다운스트림 작업 구성에서 사용할 수 있도록 합니다.
+ 작업에서 생성된 변수를 사용하도록 다운스트림 작업을 구성합니다.

  각 작업 실행에 대한 세부 정보를 보고 실행 시간에 작업에서 생성된 각 출력 변수의 값을 확인할 수 있습니다.

변수 사용에 대한 단계별 예제를 보려면
+ 업스트림 작업(CodeCommit)의 변수를 사용하고 출력 변수를 생성하는 Lambda 작업에 대한 자습서는 [자습서: Lambda 호출 작업과 함께 변수 사용](tutorials-lambda-variables.md) 섹션을 참조하세요.
+ 업스트림 CloudFormation CloudFormation 작업의 스택 출력 변수를 참조하는 작업이 포함된 자습서는 섹션을 참조하세요[자습서: AWS CloudFormation 배포 작업의 변수를 사용하는 파이프라인 생성](tutorials-cloudformation-action.md).
+ CodeCommit 커밋 ID 및 커밋 메시지로 확인되는 출력 변수를 참조하는 메시지 텍스트가 포함된 수동 승인 작업의 예는 [예: 수동 승인에 변수 사용](#actions-variables-examples-approvals) 섹션을 참조하세요.
+ GitHub 브랜치 이름으로 확인되는 환경 변수를 포함하는 CodeBuild 작업의 예는 [예: CodeBuild 환경 변수와 함께 BranchName 변수 사용](#actions-variables-examples-env-branchname) 섹션을 참조하세요.
+ CodeBuild 작업은 빌드의 일부로 내보낸 모든 환경 변수를 변수로 생성합니다. 자세한 내용은 [CodeBuild 작업 출력 변수](reference-variables.md#reference-variables-list-configured-codebuild) 단원을 참조하십시오. CodeBuild에서 사용할 수 있는 환경 변수 목록은AWS CodeBuild 사용 설명서의 [빌드 환경의 환경 변수](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)를 참조하세요.**

**Topics**
+ [변수에 대한 작업 구성](#actions-variables-create)
+ [출력 변수 보기](#actions-variables-view)
+ [예: 수동 승인에 변수 사용](#actions-variables-examples-approvals)
+ [예: CodeBuild 환경 변수와 함께 BranchName 변수 사용](#actions-variables-examples-env-branchname)

## 변수에 대한 작업 구성
<a name="actions-variables-create"></a>

파이프라인에 작업을 추가할 때 해당 작업에 네임스페이스를 할당하고 이전 작업의 변수를 사용하도록 구성할 수 있습니다.

### 변수를 사용하여 작업 구성(콘솔)
<a name="actions-variables-create-console"></a>

이 예제에서는 CodeCommit 소스 작업과 CodeBuild 빌드 작업에서 파이프라인을 생성합니다. CodeBuild 작업은 CodeCommit 작업에서 생성된 변수를 소비하도록 구성됩니다.

네임스페이스를 지정하지 않으면 작업 구성에서 변수를 참조할 수 없습니다. 콘솔을 사용하여 파이프라인을 생성하면 각 작업의 네임스페이스가 자동으로 생성됩니다.

**변수를 사용하여 파이프라인을 생성하려면**

1. 에 로그인 AWS Management Console 하고 [http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) CodePipeline 콘솔을 엽니다.

1. [**파이프라인 생성**]을 선택합니다. 파이프라인의 이름을 입력한 후 **다음**을 선택합니다.

1. **소스**의 **공급자**에서 **CodeCommit**을 선택합니다. 소스 작업에 대한 CodeCommit 리포지토리와 분기를 선택한 후 **다음**을 선택합니다.

1. **빌드**의 **공급자**에서 **CodeBuild**를 선택합니다. 기존 CodeBuild 빌드 프로젝트 이름을 선택하거나 **프로젝트 생성**을 선택합니다. **Create build project(빌드 프로젝트 생성)**에서 빌드 프로젝트를 생성한 다음, **Return to CodePipeline(CodePipeline으로 돌아가기)**을 선택합니다.

   **환경 변수**에서 **Add environment variables(환경 변수 추가)**를 선택합니다. 예를 들면, 변수 구문 `#{codepipeline.PipelineExecutionId}`를 사용하여 실행 ID를 입력하고 변수 구문 `#{SourceVariables.CommitId}`를 사용하여 커밋 ID를 입력합니다.
**참고**  
마법사의 모든 작업 구성 필드에 변수 구문을 입력할 수 있습니다.

1. **생성(Create)**을 선택합니다.

1. 파이프라인을 생성하고 나면 마법사에서 생성된 네임스페이스를 확인할 수 있습니다. 파이프라인에서 네임스페이스를 보려는 단계에 대한 아이콘을 선택합니다. 이 예제에서는 소스 작업의 자동 생성 네임스페이스인 `SourceVariables`이 표시됩니다.  
![예: 작업 정보 화면](http://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/images/variables-popup-namespace.png)

**기존 작업의 네임스페이스를 편집하려면**

1. 에 로그인 AWS Management Console 하고 [http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) CodePipeline 콘솔을 엽니다.

1. 편집할 파이프라인을 선택한 다음 **편집**을 선택합니다. 소스 단계에서 **Edit stage(단계 편집)**를 선택합니다. CodeCommit 작업을 추가합니다.

1. **작업 편집**에서 **Variable namespace(변수 네임스페이스)** 필드를 확인합니다. 기존 작업이 이전에 생성되었거나 마법사를 사용하지 않고 생성된 경우에는 네임스페이스를 추가해야 합니다. **Variable namespace(변수 네임스페이스)**에 네임스페이스 이름을 입력한 다음, **저장**을 선택합니다.

**출력 변수를 보려면**

1. 에 로그인 AWS Management Console 하고 [http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) CodePipeline 콘솔을 엽니다.

1. 파이프라인이 생성되어 성공적으로 실행되면 **Action execution details(작업 실행 세부 정보)** 페이지에서 변수를 확인할 수 있습니다. 자세한 내용은 [변수 보기(콘솔)](#actions-variables-view-console) 단원을 참조하세요.

### 변수에 대한 작업 구성(CLI)
<a name="actions-variables-create-cli"></a>

**create-pipeline** 명령을 사용하여 파이프라인을 생성하거나 **update-pipeline** 명령을 사용하여 파이프라인을 편집하면 작업 구성에서 변수를 참조하거나 사용할 수 있습니다.

 네임스페이스가 지정되어 있지 않으면 작업에서 생성된 변수를 다운스트림 작업 구성에서 참조할 수 없습니다.

**네임스페이스를 사용하여 작업을 구성하려면**

1. [파이프라인 스테이지 및 작업 생성](pipelines-create.md)의 단계에 따라 CLI를 사용하여 파이프라인을 생성합니다. 입력 파일을 시작하여 **create-pipeline** 명령에 `--cli-input-json` 파라미터를 제공합니다. 파이프라인 구조에서 `namespace` 파라미터를 추가하고 이름(예: `SourceVariables`)을 지정합니다.

   ```
   . . . 
   {
             "inputArtifacts": [],
             "name": "Source",
             "region": "us-west-2",
             {{"namespace": "SourceVariables",}}
             "actionTypeId": {
               "category": "Source",
               "owner": "AWS",
               "version": "1",
               "provider": "CodeCommit"
             },
             "outputArtifacts": [
   
   . . .
   ```

1. **MyPipeline.json**과 같은 이름으로 파일을 저장합니다.

1. 터미널(Linux, macOS 또는 Unix) 또는 명령 프롬프트(Windows)에서, [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html) 명령을 실행하고 파이프라인을 생성합니다.

   [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html) 명령을 실행할 때 생성한 파일을 호출합니다. 예제:

   ```
   aws codepipeline create-pipeline --cli-input-json file://MyPipeline.json
   ```

**변수를 소비하도록 다운스트림 작업을 구성하려면**

1. **update-pipeline** 명령에 `--cli-input-json` 파라미터를 제공하도록 입력 파일을 편집합니다. 다운스트림 작업에서 해당 작업에 대한 구성에 변수를 추가합니다. 변수는 마침표로 구분된 네임스페이스와 키로 구성됩니다. 예를 들어 파이프라인 실행 ID와 소스 커밋 ID에 변수를 추가하려면 변수 `#{codepipeline.PipelineExecutionId}`에 네임스페이스 `codepipeline`를 지정합니다. 변수 `#{SourceVariables.CommitId}`에 네임스페이스 `SourceVariables`를 지정합니다.

   ```
   {
       "name": "Build",
       "actions": [
           {
               "outputArtifacts": [
                   {
                       "name": "BuildArtifacts"
                   }
               ],
               "name": "Build",
               "configuration": {
                   "EnvironmentVariables": "[{\"name\":\"Execution_ID\",\"value\":\"#{codepipeline.PipelineExecutionId}\",\"type\":\"PLAINTEXT\"},{\"name\":\"Commit_ID\",\"value\":\"#{SourceVariables.CommitId}\",\"type\":\"PLAINTEXT\"}]",
                   "ProjectName": "env-var-test"
               },
               "inputArtifacts": [
                   {
                       "name": "SourceArtifact"
                   }
               ],
               "region": "us-west-2",
               "actionTypeId": {
                   "provider": "CodeBuild",
                   "category": "Build",
                   "version": "1",
                   "owner": "AWS"
               },
               "runOrder": 1
           }
       ]
   },
   ```

1. **MyPipeline.json**과 같은 이름으로 파일을 저장합니다.

1. 터미널(Linux, macOS 또는 Unix) 또는 명령 프롬프트(Windows)에서, [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html) 명령을 실행하고 파이프라인을 생성합니다.

   [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html) 명령을 실행할 때 생성한 파일을 호출합니다. 예제:

   ```
   aws codepipeline create-pipeline --cli-input-json file://MyPipeline.json
   ```

## 출력 변수 보기
<a name="actions-variables-view"></a>

작업 실행 세부 정보를 확인하여 각 실행에 특정한 해당 작업에 대한 변수를 확인할 수 있습니다.

### 변수 보기(콘솔)
<a name="actions-variables-view-console"></a>

콘솔을 사용하여 작업에 대한 변수를 확인할 수 있습니다.

****

1. 에 로그인 AWS Management Console 하고 [http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) CodePipeline 콘솔을 엽니다.

    AWS 계정과 연결된 모든 파이프라인의 이름이 표시됩니다.

1.  **이름**에서 파이프라인의 이름을 선택합니다.

1. **내역 보기**를 선택합니다.

1. 파이프라인이 성공적으로 실행되면 소스 작업에서 생성된 변수를 확인할 수 있습니다. **내역 보기**를 선택합니다. 파이프라인 실행에 대한 작업 목록에서 **소스**를 선택하여 CodeCommit 작업에 대한 작업 실행 세부 정보를 확인합니다. 작업 세부 정보 화면의 **Output variables(출력 변수)** 아래에 있는 변수를 확인합니다.  
![예: 소스 출력 변수](http://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/images/variables-output.png)

1. 파이프라인이 성공적으로 실행되면 빌드 작업에서 사용된 변수를 확인할 수 있습니다. **내역 보기**를 선택합니다. 파이프라인 실행에 대한 작업 목록에서 **빌드**를 선택하여 CodeBuild 작업에 대한 작업 실행 세부 정보를 확인합니다. 작업 세부 정보 페이지의 **Action configuratio(작업 구성)**에서 변수를 확인합니다. 자동 생성된 네임스페이스가 표시됩니다.  
![예: 작업 구성 변수](http://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/images/variables-actionconfig-codebuild.png)

   기본적으로 **Action configuratio(작업 구성)**에는 변수 구문이 표시됩니다. **Show resolved configuration(확인된 구성 표시)**를 선택하여 작업 실행 중에 생성된 값을 표시하도록 목록을 토글할 수 있습니다.  
![예: 확인된 작업 구성 변수](http://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/images/variables-actionconfig-codebuild-resolved.png)

### 변수 보기(CLI)
<a name="actions-variables-view-cli"></a>

**list-action-executions** 명령을 사용하여 작업에 대한 변수를 확인할 수 있습니다.

1. 다음 명령을 사용합니다.

   ```
   aws codepipeline list-action-executions
   ```

   여기에 나온 것처럼 출력에 `outputVariables` 파라미터가 표시됩니다.

   ```
   "outputVariables": {
                       "BranchName": "main",
                       "CommitMessage": "Updated files for test",
                       "AuthorDate": "2019-11-08T22:24:34Z",
                       "CommitId": "d99b0083cc10EXAMPLE",
                       "CommitterDate": "2019-11-08T22:24:34Z",
                       "RepositoryName": "variables-repo"
                   },
   ```

1. 다음 명령을 사용합니다.

   ```
   aws codepipeline get-pipeline --name <pipeline-name>
   ```

   CodeBuild 작업에 대한 작업 구성에서 변수를 확인할 수 있습니다.

   ```
   {
       "name": "Build",
       "actions": [
           {
               "outputArtifacts": [
                   {
                       "name": "BuildArtifact"
                   }
               ],
               "name": "Build",
               "configuration": {
                   "EnvironmentVariables": "[{\"name\":\"Execution_ID\",\"value\":\"#{codepipeline.PipelineExecutionId}\",\"type\":\"PLAINTEXT\"},{\"name\":\"Commit_ID\",\"value\":\"#{SourceVariables.CommitId}\",\"type\":\"PLAINTEXT\"}]",
                   "ProjectName": "env-var-test"
               },
               "inputArtifacts": [
                   {
                       "name": "SourceArtifact"
                   }
               ],
               "region": "us-west-2",
               "actionTypeId": {
                   "provider": "CodeBuild",
                   "category": "Build",
                   "version": "1",
                   "owner": "AWS"
               },
               "runOrder": 1
           }
       ]
   },
   ```

## 예: 수동 승인에 변수 사용
<a name="actions-variables-examples-approvals"></a>

작업에 대한 네임스페이스를 지정하고 해당 작업으로 출력 변수가 생성되는 경우 승인 메시지에 변수를 표시하는 수동 승인을 추가할 수 있습니다. 이 예에서는 수동 승인 메시지에 변수 구문을 추가하는 방법을 보여 줍니다.

****

1. 에 로그인 AWS Management Console 하고 [http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) CodePipeline 콘솔을 엽니다.

    AWS 계정과 연결된 모든 파이프라인의 이름이 표시됩니다. 승인을 추가할 파이프라인을 선택합니다.

1. 파이프라인을 편집하기 위해 **편집**을 선택합니다. 소스 작업 뒤에 수동 승인을 추가합니다. **작업 이름**에 승인 작업의 이름을 입력합니다.

1. **Action provider(작업 공급자)**에서 **수동 승인**을 선택합니다.

1. **검토용 URL**에서 CodeCommit URL에 `CommitId`의 변수 구문을 추가합니다. 소스 작업에 할당된 네임스페이스를 사용해야 합니다. 예를 들어 기본 네임스페이스가 `SourceVariables`인 CodeCommit 작업의 변수 구문은 `#{SourceVariables.CommitId}`입니다.

   **주석**에서 `CommitMessage`에 커밋 메시지를 입력합니다.

   ```
   Please approve this change. Commit message: #{SourceVariables.CommitMessage}
   ```

1. 파이프라인이 성공적으로 실행되면 승인 메시지에서 변수 값을 확인할 수 있습니다.

## 예: CodeBuild 환경 변수와 함께 BranchName 변수 사용
<a name="actions-variables-examples-env-branchname"></a>

CodeBuild 작업을 파이프라인에 추가할 때 CodeBuild 환경 변수를 사용하여 업스트림 소스 작업의 `BranchName` 출력 변수를 참조할 수 있습니다. CodePipeline의 작업에서 출력 변수를 사용하여 빌드 명령에 사용할 고유한 CodeBuild 환경 변수를 만들 수 있습니다.

이 예제에서는 GitHub 소스 작업의 출력 변수 구문을 CodeBuild 환경 변수에 추가하는 방법을 보여줍니다. 이 예제의 출력 변수 구문은 `BranchName`에 대한 GitHub 소스 작업 출력 변수를 나타냅니다. 작업이 성공적으로 실행되면 변수가 확인되어 GitHub 브랜치 이름을 표시합니다.

1. 에 로그인 AWS Management Console 하고 [http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) CodePipeline 콘솔을 엽니다.

    AWS 계정과 연결된 모든 파이프라인의 이름이 표시됩니다. 승인을 추가할 파이프라인을 선택합니다.

1. 파이프라인을 편집하기 위해 **편집**을 선택합니다. CodeBuild 작업이 포함된 단계에서 **단계 편집**을 선택합니다.

1. 아이콘을 선택하여 CodeBuild 작업을 편집합니다.

1. **작업 편집** 페이지에서 **환경 변수**에 다음을 입력합니다.
   + **이름**에 환경 변수의 이름을 입력합니다.
   + **값**에 소스 작업에 할당된 네임스페이스가 포함된 파이프라인 출력 변수의 변수 구문을 입력합니다. 예를 들어 기본 네임스페이스가 `SourceVariables`인 GitHub 작업의 출력 변수 구문은 `#{SourceVariables.BranchName}`입니다.
   + **유형**에서 **Plaintext**를 선택합니다.

1. 파이프라인이 성공적으로 실행되고 나면 확인된 출력 변수가 환경 변수의 값인 것을 확인할 수 있습니다. 다음 중 하나를 선택합니다.
   + **CodePipeline 콘솔:** 파이프라인을 선택한 다음 **기록**을 선택합니다. 최신 파이프라인 실행을 선택합니다.
     + **타임라인**에서 **소스** 선택기를 선택합니다. 이것은 GitHub 출력 변수를 생성하는 소스 작업입니다. **실행 세부 정보 보기**를 선택합니다. **출력 변수**에서 이 작업으로 생성된 출력 변수 목록을 확인합니다.
     + **타임라인**에서 **빌드** 선택기를 선택합니다. 이것은 빌드 프로젝트의 CodeBuild 환경 변수를 지정하는 빌드 작업입니다. **실행 세부 정보 보기**를 선택합니다. **작업 구성**에서 CodeBuild 환경 변수를 확인합니다. **해결된 구성 보기**를 선택합니다. 환경 변수 값은 GitHub 소스 작업에서 해결된 `BranchName` 출력 변수입니다. 이 예시에서의 해결된 값은 `main`입니다.

       자세한 내용은 [변수 보기(콘솔)](#actions-variables-view-console) 단원을 참조하십시오.
   + **CodeBuild 콘솔:** 빌드 프로젝트를 선택하고 빌드 실행에 사용할 링크를 선택합니다. **환경 변수**에서 확인된 출력 변수는 CodeBuild 환경 변수의 값입니다. 이 예시에서 환경 변수 **이름** `BranchName`이며 **값**은 GitHub 소스 작업에서 해결된 `BranchName` 출력 변수입니다. 이 예시에서의 해결된 값은 `main`입니다.  
![콘솔에서 확인된 변수를 보여주는 스크린샷](http://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/images/variable-codebuild-resolved.png)