

Amazon CodeCatalyst는 더 이상 신규 고객에게 공개되지 않습니다. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [CodeCatalyst에서 마이그레이션하는 방법](migration.md) 단원을 참조하십시오.

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

# 워크플로에서 변수 사용
<a name="workflows-working-with-variables"></a>

 *변수*는 Amazon CodeCatalyst 워크플로에서 참조할 수 있는 정보를 포함하는 키-값 페어입니다. 변수의 값 부분은 워크플로가 실행될 때 실제 값으로 대체됩니다.

워크플로에서 사용할 수 있는 변수 유형에는 다음 두 가지가 있습니다.
+ **사용자 정의 변수** - 사용자가 정의한 키-값 페어입니다.
+ **사전 정의된 변수** - 워크플로에서 자동으로 내보내는 키-값 페어입니다. 정의할 필요가 없습니다.

워크플로에 대한 자세한 내용은 [워크플로를 사용하여 빌드, 테스트 및 배포워크플로를 사용하여 빌드, 테스트 및 배포](workflow.md) 섹션을 참조하세요.

**참고**  
CodeCatalyst는 변수처럼 작동하고 다른 작업에서 참조할 수 있는 [GitHub 출력 파라미터](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter)도 지원합니다. 자세한 내용은 [GitHub 출력 파라미터 내보내기](integrations-github-action-export.md) 및 [GitHub 출력 파라미터 참조](integrations-github-action-referencing.md) 섹션을 참조하세요.

**Topics**
+ [사용자 정의된 변수 사용](workflows-using-variables.md)
+ [사전 정의된 변수 사용](workflows-using-predefined-variables.md)

# 사용자 정의된 변수 사용
<a name="workflows-using-variables"></a>

*사용자된 정의 변수*는 사용자가 정의하는 키-값 페어입니다. 두 가지의 유형이 있습니다.
+ **일반 텍스트 변수** 또는 간단히 **변수** - 워크플로 정의 파일 내에서 일반 텍스트로 정의하는 키-값 페어입니다.
+ **보안 암호** - Amazon CodeCatalyst 콘솔의 별도의 **보안 암호** 페이지에서 정의하는 키-값 페어입니다. *키*(이름)는 퍼블릭 레이블이며, *값*은 비공개로 유지하려는 정보를 포함합니다. 워크플로 정의 파일에서 키만 지정하면 됩니다. 워크플로 정의 파일에 암호 및 기타 민감한 정보 대신 보안 암호를 사용합니다.

**참고**  
간결성을 위해 이 가이드에서는 *변수*라는 용어를 *일반 텍스트 변수*를 의미하는 용어로 사용합니다.

변수에 대한 자세한 내용은 [워크플로에서 변수 사용](workflows-working-with-variables.md) 섹션을 참조하세요.

**Topics**
+ [변수의 예](workflows-working-with-variables-ex.md)
+ [변수 정의](workflows-working-with-variables-define-input.md)
+ [보안 암호 정의](workflows-working-with-variables-define-secret.md)
+ [다른 작업에서 사용할 수 있도록 변수 내보내기](workflows-working-with-variables-export-input.md)
+ [변수를 정의하는 작업에서 변수 참조](workflows-working-with-variables-reference-input.md)
+ [다른 작업에 의한 변수 출력 참조](workflows-working-with-variables-reference-action.md)
+ [보안 암호 참조](workflows-working-with-variables-reference-secret.md)

# 변수의 예
<a name="workflows-working-with-variables-ex"></a>

다음 예시에서는 워크플로 정의 파일에서 변수를 정의하고 참조하는 방법을 보여줍니다.

변수에 대한 자세한 내용은 [워크플로에서 변수 사용](workflows-working-with-variables.md) 섹션을 참조하세요.

**Topics**
+ [예시: Inputs 속성을 사용하여 변수 정의](#workflows-working-with-variables-ex-define-inputs)
+ [예시: Steps 속성을 사용하여 변수 정의](#workflows-working-with-variables-ex-define-steps)
+ [예시: Outputs 속성을 사용하여 변수 내보내기](#workflows-working-with-variables-ex-export-outputs)
+ [예시: 동일한 작업에 정의된 변수 참조](#workflows-working-with-variables-ex-refer-current)
+ [예시: 다른 작업에 정의된 변수 참조](#workflows-working-with-variables-ex-refer-other)
+ [예시: 보안 암호 참조](#workflows-working-with-variables-ex-refer-secret)

## 예시: Inputs 속성을 사용하여 변수 정의
<a name="workflows-working-with-variables-ex-define-inputs"></a>

다음 예시에서는 `Inputs` 섹션에서 두 개의 변수인 `VAR1` 및 `VAR2`를 정의하는 방법을 보여줍니다.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Variables:
      - Name: VAR1
        Value: "My variable 1"
      - Name: VAR2
        Value: "My variable 2"
```

## 예시: Steps 속성을 사용하여 변수 정의
<a name="workflows-working-with-variables-ex-define-steps"></a>

다음 예시에서는 `Steps` 섹션에서 `DATE` 변수를 명시적으로 정의하는 방법을 보여줍니다.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: DATE=$(date +%m-%d-%y)
```

## 예시: Outputs 속성을 사용하여 변수 내보내기
<a name="workflows-working-with-variables-ex-export-outputs"></a>

다음 예시에서는 두 개의 변수인 `REPOSITORY-URI` 및 `TIMESTAMP`를 정의하고 `Outputs` 섹션을 사용하여 내보내는 방법을 보여줍니다.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Variables:
        - Name: REPOSITORY-URI
          Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo
    Configuration:
      Steps:
        - Run: TIMESTAMP=$(date +%m-%d-%y-%H-%m-%s) 
    Outputs:
      Variables:
        - REPOSITORY-URI
        - TIMESTAMP
```

## 예시: 동일한 작업에 정의된 변수 참조
<a name="workflows-working-with-variables-ex-refer-current"></a>

다음 예시에서는 `MyBuildAction`에서 `VAR1` 변수를 지정한 다음 `$VAR1`를 사용하여 동일한 작업에서 변수를 참조하는 방법을 보여줍니다.

```
Actions:
  MyBuildAction:
    Identifier: aws/build@v1
    Inputs:
      Variables:
        - Name: VAR1
          Value: my-value
    Configuration:
      Steps:
        - Run: $VAR1
```

## 예시: 다른 작업에 정의된 변수 참조
<a name="workflows-working-with-variables-ex-refer-other"></a>

다음 예시에서는 `BuildActionA`에서 `TIMESTAMP` 변수를 지정하고 `Outputs` 속성을 사용하여 내보낸 다음 `${BuildActionA.TIMESTAMP}`를 사용하여 `BuildActionB`에서 참조하는 방법을 보여줍니다.

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: TIMESTAMP=$(date +%m-%d-%y-%H-%m-%s) 
    Outputs:
      Variables:
        - TIMESTAMP
  BuildActionB:
    Identifier: aws/build@v1
    Configuration:
      Steps:
        - Run: docker build -t my-ecr-repo/image-repo:latest .      
        - Run: docker tag my-ecr-repo/image-repo:${BuildActionA.TIMESTAMP}
        
        # Specifying just '$TIMESTAMP' here will not work 
        # because TIMESTAMP is not a variable 
        # in the BuildActionB action.
```

## 예시: 보안 암호 참조
<a name="workflows-working-with-variables-ex-refer-secret"></a>

다음 예시에서는 `my-password` 보안 암호를 참조하는 방법을 보여줍니다. `my-password`는 보안 암호의 키입니다. 이 보안 암호의 키와 해당 암호 값은 워크플로 정의 파일에서 사용하기 전에 CodeCatalyst 콘솔의 **보안 암호** 페이지에서 지정해야 합니다. 자세한 내용은 [보안 암호를 사용하여 데이터 마스킹](workflows-secrets.md) 섹션을 참조하세요.

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: curl -u LiJuan:${Secrets.my-password} https://example.com
```

# 변수 정의
<a name="workflows-working-with-variables-define-input"></a>

두 가지 방법으로 변수를 정의할 수 있습니다.
+ 워크플로 작업 `Inputs` 섹션의 - ['입력' 섹션의 변수 정의](#workflows-to-define-variable-input)를 참조하세요.
+ 워크플로 작업 `Steps` 섹션의 - ['단계' 섹션의 변수 정의](#workflows-to-define-variable-steps)를 참조하세요.
**참고**  
이 `Steps` 메서드는 CodeCatalyst 빌드, 테스트 및 **GitHub Actions** 작업에서만 작동합니다. `Steps` 섹션이 포함된 유일한 작업이기 때문입니다.

예시는 [변수의 예](workflows-working-with-variables-ex.md) 섹션을 참조하세요.

변수에 대한 자세한 내용은 [워크플로에서 변수 사용](workflows-working-with-variables.md) 섹션을 참조하세요.

------
#### [ Visual ]

**'입력' 섹션에서 변수 정의(시각적 편집기)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트를 선택합니다.

1. 탐색 창에서 **CI/CD**를 선택한 다음 **워크플로**를 선택합니다.

1. 워크플로의 이름을 선택합니다. 소스 리포지토리 또는 워크플로가 정의된 브랜치 이름을 기준으로 필터링하거나, 워크플로 이름 또는 상태를 기준으로 필터링할 수 있습니다.

1. **편집**을 선택합니다.

1. **비주얼**을 선택합니다.

1. 워크플로 다이어그램에서 변수를 설정하려는 작업을 선택합니다.

1. **입력**을 선택합니다.

1. **변수 - 선택 사항**에서 **변수 추가**를 선택한 후 다음을 수행합니다.

   작업에 사용할 수 있도록 하려는 입력 변수를 정의하는 이름/값 페어의 시퀀스를 지정합니다. 변수 이름은 영숫자 문자(a-z, A-Z, 0-9), 하이픈(-) 및 밑줄(\$1)로 제한됩니다. 스페이스은 허용되지 않습니다. 변수 이름에서 특수 문자와 공백을 활성화하는 데 따옴표를 사용할 수 없습니다.

   예시를 비롯한 변수에 대한 자세한 내용은 [워크플로에서 변수 사용](workflows-working-with-variables.md) 섹션을 참조하세요.

1. (선택 사항) 커밋하기 전에 워크플로의 YAML 코드를 검증하려면 **검증**을 선택합니다.

1. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

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

**'입력' 섹션에서 변수 정의(YAML 편집기)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트를 선택합니다.

1. 탐색 창에서 **CI/CD**를 선택한 다음 **워크플로**를 선택합니다.

1. 워크플로의 이름을 선택합니다. 소스 리포지토리 또는 워크플로가 정의된 브랜치 이름을 기준으로 필터링하거나, 워크플로 이름 또는 상태를 기준으로 필터링할 수 있습니다.

1. **편집**을 선택합니다.

1. **YAML**을 선택합니다.

1. 워크플로 작업에서 다음과 유사한 코드를 추가합니다.

   ```
   action-name:
     Inputs:
       Variables:
         - Name: variable-name
           Value: variable-value
   ```

   더 많은 예시는 [변수의 예](workflows-working-with-variables-ex.md)를 참조합니다. 자세한 내용은 작업에 해당하는 [워크플로 YAML 정의](workflow-reference.md) 섹션을 참조하세요.

1. (선택 사항) 커밋하기 전에 워크플로의 YAML 코드를 검증하려면 **검증**을 선택합니다.

1. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

------

------
#### [ Visual ]

**'단계' 섹션에서 변수 정의(시각 편집기)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트를 선택합니다.

1. 탐색 창에서 **CI/CD**를 선택한 다음 **워크플로**를 선택합니다.

1. 워크플로의 이름을 선택합니다. 소스 리포지토리 또는 워크플로가 정의된 브랜치 이름을 기준으로 필터링하거나, 워크플로 이름 또는 상태를 기준으로 필터링할 수 있습니다.

1. **편집**을 선택합니다.

1. **비주얼**을 선택합니다.

1. 워크플로 다이어그램에서 변수를 설정하려는 작업을 선택합니다.

1. **구성**을 선택합니다.

1. 사용 가능한 **쉘 명령** 또는 **GitHub Actions YAML** 중 하나에서 명시적으로 또는 암시적으로 작업 `Steps`의 변수를 정의합니다.
   + 변수를 명시적으로 정의하려면 `Steps` 섹션으로 직접 bash 명령에 포함시킵니다.
   + 변수를 암시적으로 정의하려면 작업의 `Steps` 섹션에서 참조하는 파일에 변수를 지정합니다.

     예시는 [변수의 예](workflows-working-with-variables-ex.md) 섹션을 참조하세요. 자세한 내용은 작업에 해당하는 [워크플로 YAML 정의](workflow-reference.md) 섹션을 참조하세요.

1. (선택 사항) 커밋하기 전에 워크플로의 YAML 코드를 검증하려면 **검증**을 선택합니다.

1. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

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

**'단계' 섹션에서 변수 정의(YAML 편집기)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트를 선택합니다.

1. 탐색 창에서 **CI/CD**를 선택한 다음 **워크플로**를 선택합니다.

1. 워크플로의 이름을 선택합니다. 소스 리포지토리 또는 워크플로가 정의된 브랜치 이름을 기준으로 필터링하거나, 워크플로 이름 또는 상태를 기준으로 필터링할 수 있습니다.

1. **편집**을 선택합니다.

1. **YAML**을 선택합니다.

1. 워크플로 작업에서 작업의 `Steps` 섹션에서 변수를 명시적으로 또는 암시적으로 정의합니다.
   + 변수를 명시적으로 정의하려면 `Steps` 섹션으로 직접 bash 명령에 포함시킵니다.
   + 변수를 암시적으로 정의하려면 작업의 `Steps` 섹션에서 참조하는 파일에 변수를 지정합니다.

     예시는 [변수의 예](workflows-working-with-variables-ex.md) 섹션을 참조하세요. 자세한 내용은 작업에 해당하는 [워크플로 YAML 정의](workflow-reference.md) 섹션을 참조하세요.

1. (선택 사항) 커밋하기 전에 워크플로의 YAML 코드를 검증하려면 **검증**을 선택합니다.

1. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

------

# 보안 암호 정의
<a name="workflows-working-with-variables-define-secret"></a>

CodeCatalyst 콘솔의 **보안 암호** 페이지에서 보안 암호를 정의합니다. 자세한 내용은 [보안 암호를 사용하여 데이터 마스킹](workflows-secrets.md) 섹션을 참조하세요.

예를 들어 보안 암호는 다음과 같이 정의할 수 있습니다.
+ 이름(키): **my-password**
+ 값: **^\$1H3\$1\$1b9**

보안 암호가 정의된 후 워크플로 정의 파일에 보안 암호 키(**my-password**)를 지정할 수 있습니다. 이렇게 하는 방법의 예는 [예시: 보안 암호 참조](workflows-working-with-variables-ex.md#workflows-working-with-variables-ex-refer-secret) 섹션을 참조하세요.

# 다른 작업에서 사용할 수 있도록 변수 내보내기
<a name="workflows-working-with-variables-export-input"></a>

다음 지침에 따라 작업에서 변수를 내보내 다른 작업에서 참조할 수 있도록 합니다.

변수를 내보내기 전에 다음 사항에 유의하세요.
+ 변수가 정의된 작업 내에서 변수를 참조하기만 하면 되는 경우에는 내보낼 필요가 없습니다.
+ 모든 작업이 변수 내보내기를 지원하는 것은 아닙니다. 작업이 이 특성을 지원하는지 확인하려면 다음 시각적 편집기 지침을 실행하고 작업에 **출력** 탭의 **변수** 버튼이 포함되어 있는지 확인합니다. 그렇다면 변수 내보내기가 지원됩니다.
+ GitHub 작업에서 변수를 내보내려면 [GitHub 출력 파라미터 내보내기](integrations-github-action-export.md) 섹션을 참조하세요.

변수에 대한 자세한 내용은 [워크플로에서 변수 사용](workflows-working-with-variables.md) 섹션을 참조하세요.

**사전 조건**  
내보낼 변수를 정의했는지 확인합니다. 자세한 내용은 [변수 정의](workflows-working-with-variables-define-input.md) 섹션을 참조하세요.

------
#### [ Visual ]

**변수 내보내기(시각적 편집기)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트를 선택합니다.

1. 탐색 창에서 **CI/CD**를 선택한 다음 **워크플로**를 선택합니다.

1. 워크플로의 이름을 선택합니다. 소스 리포지토리 또는 워크플로가 정의된 브랜치 이름을 기준으로 필터링하거나, 워크플로 이름 또는 상태를 기준으로 필터링할 수 있습니다.

1. **편집**을 선택합니다.

1. **비주얼**을 선택합니다.

1. 워크플로 다이어그램에서 변수를 내보낼 작업을 선택합니다.

1. **출력**을 선택합니다.

1. **변수 - 선택 사항**에서 **변수 추가**를 선택한 후 다음을 수행합니다.

   작업을 내보낼 변수의 이름을 지정합니다. 이 변수는 동일한 작업의 `Inputs` 또는 `Steps` 섹션에 이미 정의되어 있어야 합니다.

1. (선택 사항) 커밋하기 전에 워크플로의 YAML 코드를 검증하려면 **검증**을 선택합니다.

1. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

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

**변수 내보내기(YAML 편집기)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트를 선택합니다.

1. 탐색 창에서 **CI/CD**를 선택한 다음 **워크플로**를 선택합니다.

1. 워크플로의 이름을 선택합니다. 소스 리포지토리 또는 워크플로가 정의된 브랜치 이름을 기준으로 필터링하거나, 워크플로 이름 또는 상태를 기준으로 필터링할 수 있습니다.

1. **편집**을 선택합니다.

1. **YAML**을 선택합니다.

1. 변수를 내보내려는 작업에서 다음과 유사한 코드를 추가합니다.

   ```
   action-name:
     Outputs:
       Variables:
         - Name: variable-name
   ```

   더 많은 예시는 [변수의 예](workflows-working-with-variables-ex.md)를 참조합니다.

1. (선택 사항) 커밋하기 전에 워크플로의 YAML 코드를 검증하려면 **검증**을 선택합니다.

1. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

------

# 변수를 정의하는 작업에서 변수 참조
<a name="workflows-working-with-variables-reference-input"></a>

다음 지침에 따라 변수를 정의하는 작업에서 변수를 참조합니다.

**참고**  
GitHub 작업에서 생성된 변수를 참조하려면 [GitHub 출력 파라미터 참조](integrations-github-action-referencing.md) 섹션을 참조하세요.

변수에 대한 자세한 내용은 [워크플로에서 변수 사용](workflows-working-with-variables.md) 섹션을 참조하세요.

**사전 조건**  
참조하려는 변수를 정의했는지 확인합니다. 자세한 내용은 [변수 정의](workflows-working-with-variables-define-input.md) 섹션을 참조하세요.

------
#### [ Visual ]

*사용할 수 없습니다. YAML을 선택하여 YAML 지침을 봅니다.*

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

**변수를 정의하는 작업에서 변수 참조**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트를 선택합니다.

1. 탐색 창에서 **CI/CD**를 선택한 다음 **워크플로**를 선택합니다.

1. 워크플로의 이름을 선택합니다. 소스 리포지토리 또는 워크플로가 정의된 브랜치 이름을 기준으로 필터링하거나, 워크플로 이름 또는 상태를 기준으로 필터링할 수 있습니다.

1. **편집**을 선택합니다.

1. **YAML**을 선택합니다.

1. 참조하려는 변수를 정의하는 CodeCatalyst 액션에서 다음 bash 구문을 사용하여 변수를 추가합니다.

   ```
   $variable-name
   ```

   예제:

   ```
   MyAction:
       Configuration:
         Steps:
           - Run: $variable-name
   ```

   더 많은 예시는 [변수의 예](workflows-working-with-variables-ex.md)를 참조합니다. 자세한 내용은 [워크플로 YAML 정의](workflow-reference.md)에서 작업에 대한 참조 정보를 참조하세요.

1. (선택 사항) 커밋하기 전에 워크플로의 YAML 코드를 검증하려면 **검증**을 선택합니다.

1. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

------

# 다른 작업에 의한 변수 출력 참조
<a name="workflows-working-with-variables-reference-action"></a>

다음 지침에 따라 다른 작업의 변수를 참조합니다.

**참고**  
 GitHub 작업의 변수 출력을 참조하려면 [GitHub 출력 파라미터 참조](integrations-github-action-referencing.md) 섹션을 참조하세요.

변수에 대한 자세한 내용은 [워크플로에서 변수 사용](workflows-working-with-variables.md) 섹션을 참조하세요.

**사전 조건**  
참조하려는 변수를 내보냈는지 확인합니다. 자세한 내용은 [다른 작업에서 사용할 수 있도록 변수 내보내기](workflows-working-with-variables-export-input.md) 섹션을 참조하세요.

------
#### [ Visual ]

*사용할 수 없습니다. YAML을 선택하여 YAML 지침을 봅니다.*

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

**다른 작업의 변수 출력 참조(YAML 편집기)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트를 선택합니다.

1. 탐색 창에서 **CI/CD**를 선택한 다음 **워크플로**를 선택합니다.

1. 워크플로의 이름을 선택합니다. 소스 리포지토리 또는 워크플로가 정의된 브랜치 이름을 기준으로 필터링하거나, 워크플로 이름 또는 상태를 기준으로 필터링할 수 있습니다.

1. **편집**을 선택합니다.

1. **YAML**을 선택합니다.

1. CodeCatalyst 작업에서 다음 구문을 사용하여 변수에 대한 참조를 추가합니다.

   ```
   ${action-group-name.action-name.variable-name}
   ```

   다음과 같이 바꿉니다.
   + 변수를 출력하는 작업이 포함된 작업 그룹의 이름이 포함된 *action-group-name*입니다.
**참고**  
작업 그룹이 없거나 변수가 동일한 작업 그룹의 작업에서 생성되는 경우 *action-group-name*을 생략할 수 있습니다.
   + *action-name*을 변수를 출력하는 작업의 이름으로 바꿉니다.
   + *variable-nam*을 변수 이름으로 바꿉니다.

   예제:

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: ${MyFirstAction.TIMESTAMP}
   ```

   더 많은 예시는 [변수의 예](workflows-working-with-variables-ex.md)를 참조합니다. 자세한 내용은 작업에 해당하는 [워크플로 YAML 정의](workflow-reference.md) 섹션을 참조하세요.

1. (선택 사항) 커밋하기 전에 워크플로의 YAML 코드를 검증하려면 **검증**을 선택합니다.

1. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

------

# 보안 암호 참조
<a name="workflows-working-with-variables-reference-secret"></a>

워크플로 정의 파일에서 보안 암호 참조에 대한 지침은 [보안 암호 사용](workflows-secrets.using.md) 섹션을 참조하세요.

관련 예시는 [예시: 보안 암호 참조](workflows-working-with-variables-ex.md#workflows-working-with-variables-ex-refer-secret) 섹션을 참조하세요

# 사전 정의된 변수 사용
<a name="workflows-using-predefined-variables"></a>

*사전 정의된 변수*는 워크플로에서 자동으로 내보내고 워크플로 작업에 사용할 수 있는 키-값 페어입니다.

변수에 대한 자세한 내용은 [워크플로에서 변수 사용](workflows-working-with-variables.md) 섹션을 참조하세요.

**Topics**
+ [사전 정의된 변수 참조의 예](workflows-predefined-examples.md)
+ [사전 정의된 변수 참조](workflows-working-with-variables-reference-output-vars.md)
+ [워크플로에서 내보내는 사전 정의된 변수 확인](workflows-working-with-variables-determine-output-vars.md)
+ [사전 정의된 변수 목록](workflow-ref-action-variables.md)

# 사전 정의된 변수 참조의 예
<a name="workflows-predefined-examples"></a>

다음 예시에서는 워크플로 정의 파일에서 사전 정의된 변수를 참조하는 방법을 보여줍니다.

사전 정의된 변수에 대한 자세한 내용은 [사전 정의된 변수 사용](workflows-using-predefined-variables.md) 섹션을 참조하세요.

**Topics**
+ [예시: 'CommitId' 사전 정의된 변수 참조](#workflows-working-with-variables-ex-refer-action)
+ [예시: 'BranchName' 사전 정의된 변수 참조](#workflows-working-with-variables-ex-branch)

## 예시: 'CommitId' 사전 정의된 변수 참조
<a name="workflows-working-with-variables-ex-refer-action"></a>

다음 예시에서는 `MyBuildAction` 작업에서 사전 정의된 `CommitId` 변수를 참조하는 방법을 보여줍니다. `CommitId` 변수는 CodeCatalyst에서 자동으로 출력됩니다. 자세한 내용은 [사전 정의된 변수 목록](workflow-ref-action-variables.md) 섹션을 참조하세요.

예시에서는 빌드 작업에서 사용되는 변수를 보여주지만 모든 작업에서 `CommitId`를 사용할 수 있습니다.

```
MyBuildAction:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
      #Build Docker image and tag it with a commit ID
        - Run: docker build -t image-repo/my-docker-image:latest .
        - Run: docker tag image-repo/my-docker-image:${WorkflowSource.CommitId}
```

## 예시: 'BranchName' 사전 정의된 변수 참조
<a name="workflows-working-with-variables-ex-branch"></a>

다음 예시에서는 `CDKDeploy` 작업에서 사전 정의된 `BranchName` 변수를 참조하는 방법을 보여줍니다. `BranchName` 변수는 CodeCatalyst에서 자동으로 출력됩니다. 자세한 내용은 [사전 정의된 변수 목록](workflow-ref-action-variables.md) 섹션을 참조하세요.

예시에서는 **AWS CDK 배포** 작업에 사용되는 변수를 보여 주지만, 모든 작업에서 `BranchName`을 사용할 수 있습니다.

```
CDKDeploy:
    Identifier: aws/cdk-deploy@v2
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      StackName: app-stack-${WorkflowSource.BranchName}
```

# 사전 정의된 변수 참조
<a name="workflows-working-with-variables-reference-output-vars"></a>

Amazon CodeCatalyst 워크플로 내의 모든 작업에서 사전 정의된 변수를 참조할 수 있습니다.

다음 지침에 따라 워크플로에서 사전 정의된 변수를 참조합니다.

사전 정의된 변수에 대한 자세한 내용은 [사전 정의된 변수 사용](workflows-using-predefined-variables.md) 섹션을 참조하세요.

**사전 조건**  
`CommitId`와 같이 참조하려는 사전 정의된 변수의 이름을 결정합니다. 자세한 내용은 [워크플로에서 내보내는 사전 정의된 변수 확인](workflows-working-with-variables-determine-output-vars.md) 섹션을 참조하세요.

------
#### [ Visual ]

*사용할 수 없습니다. YAML을 선택하여 YAML 지침을 봅니다.*

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

**사전 정의된 변수 참조(YAML 편집기)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트를 선택합니다.

1. 탐색 창에서 **CI/CD**를 선택한 다음 **워크플로**를 선택합니다.

1. 워크플로의 이름을 선택합니다. 소스 리포지토리 또는 워크플로가 정의된 브랜치 이름을 기준으로 필터링하거나, 워크플로 이름 또는 상태를 기준으로 필터링할 수 있습니다.

1. **편집**을 선택합니다.

1. **YAML**을 선택합니다.

1. CodeCatalyst 작업에서 다음 구문을 사용하여 사전 정의된 변수 참조를 추가합니다.

   ```
   ${action-group-name.action-name-or-WorkflowSource.variable-name}
   ```

   다음과 같이 바꿉니다.
   + *action-group-name*: 작업 이름의 그룹.
**참고**  
작업 그룹이 없거나 변수가 동일한 작업 그룹의 작업에서 생성되는 경우 *action-group-name*을 생략할 수 있습니다.
   + *action-name-or-WorkflowSource*:

     변수를 출력하는 작업의 이름.

     또는

     `WorkflowSource`, 변수가 `BranchName` 또는 `CommitId` 변수인 경우.
   + *variable-nam*을 변수 이름으로 바꿉니다.

   예제:

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: echo ${MyFirstECSAction.cluster}
   ```

   또 다른 예시:

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: echo ${WorkflowSource.CommitId}
   ```

   더 많은 예시는 [사전 정의된 변수 참조의 예](workflows-predefined-examples.md)를 참조합니다. 자세한 내용은 작업에 해당하는 [워크플로 YAML 정의](workflow-reference.md) 섹션을 참조하세요.

1. (선택 사항) 커밋하기 전에 워크플로의 YAML 코드를 검증하려면 **검증**을 선택합니다.

1. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

------

# 워크플로에서 내보내는 사전 정의된 변수 확인
<a name="workflows-working-with-variables-determine-output-vars"></a>

다음 절차를 사용하여 워크플로가 실행될 때 내보내는 사전 정의된 변수를 결정합니다. 그런 다음 동일한 워크플로 내에서 이러한 변수를 참조할 수 있습니다.

사전 정의된 변수에 대한 자세한 내용은 [사전 정의된 변수 사용](workflows-using-predefined-variables.md) 섹션을 참조하세요.

**워크플로에서 내보내는 사전 정의된 변수 확인**
+ 다음 중 하나를 수행하세요.
  + **워크플로를 한 번 실행합니다**. 실행이 완료되면 워크플로에서 내보내는 변수가 실행 세부 정보 페이지의 **변수** 탭에 표시됩니다. 자세한 내용은 [워크플로 실행 상태 및 세부 정보 보기](workflows-view-run.md) 섹션을 참조하세요.
  + **[사전 정의된 변수 목록](workflow-ref-action-variables.md) 섹션을 참조하세요**. 이 참조에는 사전 정의된 각 변수의 변수 이름(키)과 값이 나열됩니다.

**참고**  
워크플로 변수의 최대 총 크기는 [CodeCatalyst의 워크플로 할당량](workflows-quotas.md)에 나열되어 있습니다. 총 크기가 최대값을 초과하면 최대값에 도달한 후 발생하는 작업이 실패할 수 있습니다.

# 사전 정의된 변수 목록
<a name="workflow-ref-action-variables"></a>

다음 섹션을 참조하여 워크플로 실행의 일부로 CodeCatalyst 작업에 의해 자동으로 생성되는 사전 정의된 변수를 확인하세요.

사전 정의된 변수에 대한 자세한 내용은 [사전 정의된 변수 사용](workflows-using-predefined-variables.md) 섹션을 참조하세요.

**참고**  
이 목록에는 CodeCatalyst 소스 및 [CodeCatalyst 작업](workflows-actions.md#workflows-actions-types)에서 내보내는 사전 정의된 변수만 포함됩니다. GitHub Actions 또는 CodeCatalyst Labs 작업과 같은 다른 유형의 작업을 사용하는 경우 대신 [워크플로에서 내보내는 사전 정의된 변수 확인](workflows-working-with-variables-determine-output-vars.md)를 참조하세요.

**나열**

**참고**  
모든 CodeCatalyst 작업이 사전 정의된 변수를 생성하는 것은 아닙니다. 작업이 목록에 없으면 변수가 생성되지 않습니다.
+ ['BranchName' 및 'CommitId' 변수](workflows-sources-variables.md)
+ ['스 CloudFormation 택 배포' 변수](deploy-action-cfn-variables.md)
+ ['Amazon ECS에 배포' 변수](deploy-action-ecs-variables.md)
+ ['Kubernetes 클러스터에 배포' 변수](deploy-action-eks-variables.md)
+ ['AWS CDK 배포' 변수](cdk-dep-action-variables.md)
+ ['AWS CDK 부트스트랩' 변수](cdk-boot-action-variables.md)
+ ['AWS Lambda 간접 호출' 변수](lam-invoke-action-variables.md)
+ ['Amazon ECS 작업 정의 렌더링' 변수](render-ecs-action-variables.md)