

Amazon CodeCatalyst는 더 이상 신규 고객에게 공개되지 않습니다. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [CodeCatalyst에서 마이그레이션하는 방법](migration.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) 섹션을 참조하세요