

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

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

# 'AWS CDK 배포' 작업 YAML
<a name="cdk-dep-action-ref"></a>

다음은 **AWS CDK 배포** 작업의 YAML 정의입니다. 이러한 작업 사용 방법을 배우려면 [워크플로를 사용하여 AWS CDK 앱 배포](cdk-dep-action.md) 섹션을 참조하세요.

이 작업 정의는 더 광범위한 워크플로 정의 파일 내의 섹션으로 존재합니다. 이 파일에 대한 자세한 내용은 [워크플로 YAML 정의](workflow-reference.md)을 참조합니다.

**참고**  
이어지는 대부분의 YAML 속성에는 시각적 편집기에 해당 UI 요소가 있습니다. UI 요소를 찾으려면 **Ctrl\$1F**를 사용합니다. 요소가 연결된 YAML 속성과 함께 나열됩니다.

```
# The workflow definition starts here.
# See 최상위 속성 for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  CDKDeploy\$1nn: 
    Identifier: aws/cdk-deploy@v2
    DependsOn:
      - CDKBootstrap
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - artifact-name
    Outputs:
      Artifacts:
        - Name: cdk_artifact
          Files: 
            - "cdk.out/**/*"
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: iam-role-name
    Configuration:
      StackName: my-cdk-stack
      Region: us-west-2
      Tags: '{"key1": "value1", "key2": "value2"}'
      Context: '{"key1": "value1", "key2": "value2"}'
      CdkCliVersion: version
      CdkRootPath: directory-containing-cdk.json-file
      CfnOutputVariables: '["CnfOutputKey1","CfnOutputKey2","CfnOutputKey3"]'
      CloudAssemblyRootPath: path-to-cdk.out
```

## CDKDeploy
<a name="cdk.dep.name"></a>

(필수)

작업 이름을 지정합니다. 워크플로 내의 모든 작업 이름은 고유해야 합니다. 작업 이름은 영숫자 문자(a-z, A-Z, 0-9), 하이픈(-) 및 밑줄(\$1)로 제한됩니다. 스페이스은 허용되지 않습니다. 작업 이름에서 특수 문자와 공백을 활성화하는 데 따옴표를 사용할 수 없습니다.

기본값: `CDKDeploy_nn`.

해당 UI: 구성 탭/**작업 이름**

## Identifier
<a name="cdk.dep.identifier"></a>

(*CDKDeploy*/**Identifier**)

(필수)

작업을 식별합니다. 버전을 변경하려는 경우가 아니면 이 속성을 변경하지 마세요. 자세한 내용은 [사용할 작업 버전 지정](workflows-action-versions.md) 섹션을 참조하세요.

**참고**  
를 지정`aws/cdk-deploy@v2`하면 Node.js 18과 같은 최신 도구가 포함된 [2024년 3월 이미지](build-images.md#build.default-image)에서 작업이 실행됩니다. 를 지정`aws/cdk-deploy@v1`하면 Node.js 16과 같은 이전 도구가 포함된 [2022년 11월 이미지](build-images.md#build.previous-image)에서 작업이 실행됩니다.

기본값: `aws/cdk-deploy@v2`.

해당 UI: 워크플로 다이어그램/CDKDeploy\$1nn/**aws/cdk-deploy@v2** 레이블

## DependsOn
<a name="cdk.dep.dependson"></a>

(*CDKDeploy*/**DependsOn**)

(선택 사항)

**AWS CDK 배포** 작업을 실행하려면 성공적으로 실행해야 하는 작업 또는 작업 그룹을 지정합니다. 다음과 같이 `DependsOn` 속성에서 **AWS CDK 부트스트랩** 작업을 지정하는 것이 좋습니다.

```
CDKDeploy:
  Identifier: aws/cdk-deploy@v2
  DependsOn:
    - CDKBootstrap
```

**참고**  
[부트스트래핑](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html)은 AWS CDK 앱을 배포하기 위한 필수 사전 조건입니다. 워크플로에 **AWS CDK 부트스트랩** 작업을 포함하지 않는 경우 **AWS CDK 배포** 작업을 실행하기 전에 AWS CDK 부트스트랩 스택을 배포할 다른 방법을 찾아야 합니다. 자세한 설명은 [워크플로를 사용하여 AWS CDK 앱 배포](cdk-dep-action.md)에서 ['AWS CDK 배포' 작업 추가](cdk-dep-action-add.md) 섹션을 참조하세요.

'depends on' 함수에 대한 자세한 내용은 [작업 순서 지정](workflows-depends-on.md) 섹션을 참조하세요.

해당 UI: 입력 탭/**의존 - 선택 사항**

## Compute
<a name="cdk.dep.computename"></a>

(*CDKDeploy*/**Compute**)

(선택 사항)

워크플로 작업을 실행하는 데 사용되는 컴퓨팅 엔진입니다. 워크플로 수준 또는 작업 수준에서 컴퓨팅을 지정할 수 있지만 둘 다 지정할 수는 없습니다. 워크플로 수준에서 지정하면 컴퓨팅 구성이 워크플로에 정의된 모든 작업에 적용됩니다. 워크플로 수준에서는 동일한 인스턴스에서 여러 작업을 실행할 수도 있습니다. 자세한 내용은 [작업 간에 컴퓨팅 공유](compute-sharing.md) 섹션을 참조하세요.

해당 UI: *없음*

## Type
<a name="cdk.dep.computetype"></a>

(*CDKDeploy*/Compute/**Type**)

([Compute](#cdk.dep.computename) 포함 시 필수)

컴퓨팅 엔진의 유형입니다. 다음 값 중 하나를 사용할 수 있습니다.
+ **EC2**(시각 편집기) 또는 `EC2`(YAML 편집기)

  작업 실행 중 유연성을 위해 최적화되었습니다.
+ **Lambda**(시각 편집기) 또는 `Lambda`(YAML 편집기)

  작업 시작 속도를 최적화했습니다.

컴퓨팅 유형에 대한 자세한 정보는 [컴퓨팅 유형](workflows-working-compute.md#compute.types)을 참고하세요.

해당 UI: 구성 탭/고급 - 선택 사항/**컴퓨팅 유형**

## Fleet
<a name="cdk.dep.computefleet"></a>

(*CDKDeploy*/Compute/**Fleet**)

(선택 사항)

워크플로 또는 워크플로 작업을 실행할 시스템 또는 플릿을 지정합니다. 온디맨드 플릿의 경우 작업이 시작되면 워크플로가 필요한 리소스를 프로비저닝하고 작업이 완료되면 시스템이 파괴됩니다. 온디맨드 플릿의 예시: `Linux.x86-64.Large`, `Linux.x86-64.XLarge`. 온디맨드 플릿에 대한 자세한 내용은 [온디맨드 플릿 속성](workflows-working-compute.md#compute.on-demand) 섹션을 참조하세요.

프로비저닝된 플릿을 사용하면 워크플로 작업을 실행하도록 전용 시스템 세트를 구성할 수 있습니다. 이러한 시스템은 유휴 상태로 유지되므로 작업을 즉시 처리할 수 있습니다. 프로비저닝된 플릿에 대한 자세한 내용은 [프로비저닝된 플릿 속성](workflows-working-compute.md#compute.provisioned-fleets) 섹션을 참조하세요.

`Fleet` 생략 시 기본값은 `Linux.x86-64.Large`입니다.

해당 UI: 구성 탭/고급 - 선택적/**컴퓨팅 플릿**

## Timeout
<a name="cdk.dep.timeout"></a>

(*CDKDeploy*/**Timeout**)

(필수)

CodeCatalyst가 작업을 종료하기 전에 작업을 실행할 수 있는 시간을 분(YAML 편집기) 또는 시간 및 분(시각적 편집기) 단위로 지정합니다. 최소값은 5분이고 최대값은 [CodeCatalyst의 워크플로 할당량](workflows-quotas.md)에 설명되어 있습니다. 기본 제한 시간은 최대 제한 시간과 동일합니다.

해당 UI: 구성 탭/**제한 시간 - 선택 사항 **

## Inputs
<a name="cdk.dep.inputs"></a>

(*CDKDeploy*/**Inputs**)

(선택 사항)

이 `Inputs` 섹션에서는 워크플로 실행 중에 에 `CDKDeploy` 필요한 데이터를 정의합니다.

**참고**  
각 **AWS CDK 배포** 작업에 대해 하나의 입력(소스 또는 아티팩트)만 허용됩니다.

해당 UI: **입력** 탭

## Sources
<a name="cdk.dep.inputs.sources"></a>

(*CDKDeploy*/Inputs/**Sources**)

(배포하려는 AWS CDK 앱이 소스 리포지토리에 저장된 경우 필수)

 AWS CDK 앱이 소스 리포지토리에 저장된 경우 해당 소스 리포지토리의 레이블을 지정합니다. **AWS CDK 배포** 작업은 배포 프로세스를 시작하기 전에 이 리포지토리의 앱을 합성합니다. 현재, `WorkflowSource` 레이블만 지원됩니다.

 AWS CDK 앱이 소스 리포지토리에 포함되지 않은 경우 다른 작업에서 생성된 아티팩트에 있어야 합니다.

소스에 대한 자세한 내용은 [워크플로에 소스 리포지토리 연결](workflows-sources.md) 섹션을 참조하세요.

해당 UI: 입력 탭/**소스 - 선택 사항**

## Artifacts - input
<a name="cdk.dep.inputs.artifacts"></a>

(*CDKDeploy*/Inputs/**Artifacts**)

(배포하려는 AWS CDK 앱이 이전 작업의 [출력 아티팩트](workflows-working-artifacts-output.md)에 저장된 경우 필수)

 AWS CDK 앱이 이전 작업에서 생성된 아티팩트에 포함된 경우 여기에 해당 아티팩트를 지정합니다. **AWS CDK 배포** 작업은 배포 프로세스를 시작하기 전에 지정된 아티팩트의 앱을 CloudFormation 템플릿으로 합성합니다. AWS CDK 앱이 아티팩트에 포함되지 않은 경우 앱은 소스 리포지토리에 있어야 합니다.

예시를 포함해 아티팩트에 대한 자세한 내용은 [작업 간 아티팩트 및 파일 공유](workflows-working-artifacts.md) 섹션을 참조하세요.

해당 UI: 입력 탭/**아티팩트 - 선택 사항**

## Outputs
<a name="cdk.dep.outputs"></a>

(*CDKDeploy*/**Outputs**)

(선택 사항)

워크플로 실행 중에 작업에 의해 출력되는 데이터를 정의합니다.

해당 UI: **출력** 탭

## Artifacts - output
<a name="cdk.dep.outputs.artifacts"></a>

(*CDKDeploy*/Outputs/**Artifacts**

(선택 사항)

작업에서 생성된 아티팩트를 지정합니다. 이러한 아티팩트를 다른 작업의 입력으로 참조할 수 있습니다.

예시를 포함해 아티팩트에 대한 자세한 내용은 [작업 간 아티팩트 및 파일 공유](workflows-working-artifacts.md) 섹션을 참조하세요.

해당 UI: 출력 탭/**아티팩트**

## Name
<a name="cdk.dep.outputs.artifacts.name"></a>

(*CDKDeploy*/Outputs/Artifacts/**Name**)

([Artifacts - output](#cdk.dep.outputs.artifacts) 포함 시 필수)

런타임 시 **AWS CDK 배포** 작업에 의해 합성되는 CloudFormation 템플릿을 포함할 아티팩트의 이름을 지정합니다. 기본값은 `cdk_artifact`입니다. 아티팩트를 지정하지 않으면 작업이 템플릿을 합성하지만 아티팩트에 저장하지는 않습니다. 테스트 또는 문제 해결을 위해 합성된 템플릿을 아티팩트에 저장하여 레코드를 보존하는 것이 좋습니다.

해당 UI: 출력 탭/아티팩트/아티팩트 추가/**빌드 아티팩트 이름**

## Files
<a name="cdk.dep.outputs.artifacts.files"></a>

(*CDKDeploy*/Outputs/Artifacts/**Files**)

([Artifacts - output](#cdk.dep.outputs.artifacts) 포함 시 필수)

아티팩트에 포함할 파일을 지정합니다. AWS CDK 앱의 합성된 CloudFormation 템플릿을 `"cdk.out/**/*"` 포함하도록를 지정해야 합니다.

**참고**  
`cdk.out` 는 합성된 파일이 저장되는 기본 디렉터리입니다. `cdk.json` 파일에 이외의 출력 디렉터리를 지정한 경우 대신 여기에 해당 디렉터리`cdk.out`를 지정합니다`cdk.out`.

해당 UI: 출력 탭/아티팩트/아티팩트 추가/**빌드에서 생성된 파일**

## Environment
<a name="cdk.dep.environment"></a>

(*CDKDeploy*/**Environment**)

(필수)

작업에 사용할 CodeCatalyst 환경을 지정합니다. 작업은 선택한 환경에 지정된 AWS 계정 및 선택적 Amazon VPC에 연결됩니다. 작업은 환경에 지정된 기본 IAM 역할을 사용하여에 연결하고 [Amazon VPC 연결](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html)에 지정된 IAM 역할을 AWS 계정사용하여 Amazon VPC에 연결합니다.

**참고**  
기본 IAM 역할에 작업에 필요한 권한이 없는 경우 다른 역할을 사용하도록 작업을 구성할 수 있습니다. 자세한 내용은 [작업의 IAM 역할 변경](deploy-environments-switch-role.md) 섹션을 참조하세요.

환경에 대한 자세한 내용은 [AWS 계정 및 VPCs에 배포](deploy-environments.md) 및 [환경 생성](deploy-environments-creating-environment.md) 섹션을 참조하세요.

해당 UI: 구성 탭/**환경**

## Name
<a name="cdk.dep.environment.name"></a>

(*CDKDeploy*/Environment/**Name**)

([Environment](#cdk.dep.environment) 포함 시 필수)

작업과 연결하려는 기존 환경의 이름을 지정합니다.

해당 UI: 구성 탭/**환경**

## Connections
<a name="cdk.dep.environment.connections"></a>

(*CDKDeploy*/Environment/**Connections**)

(최신 버전의 작업에서는 선택 사항, 이전 버전에서는 필수)

작업과 연결할 계정 연결을 지정합니다. `Environment`에서 계정 연결을 최대 1개까지 지정할 수 있습니다.

계정 연결을 지정하지 않는 경우:
+ 작업은 CodeCatalyst 콘솔의 환경에 지정된 AWS 계정 연결 및 기본 IAM 역할을 사용합니다. 환경에 계정 연결 및 기본 IAM 역할을 추가하는 방법에 대한 자세한 내용은 [환경 생성](deploy-environments-creating-environment.md) 섹션을 참조하세요.
+ 기본 IAM 역할에는 작업에 필요한 정책 및 권한이 포함되어야 합니다. 이러한 정책 및 권한이 무엇인지 확인하려면 작업의 YAML 정의 설명서에서 **역할** 속성에 대한 설명을 참조하세요.

계정 연결에 대한 자세한 정보는 [연결된를 사용하여 AWS 리소스에 대한 액세스 허용 AWS 계정](ipa-connect-account.md) 섹션을 참조하세요. 환경에 계정 연결을 추가하는 방법에 대한 자세한 내용은 [환경 생성](deploy-environments-creating-environment.md) 섹션을 참조하세요.

해당 UI: 작업 버전에 따라 다음 중 하나:
+ (최신 버전) 구성 탭/환경/*내 환경*의 내용/점 3개 메뉴/**역할 전환**
+ (이전 버전) 구성 탭/'환경/계정/역할'/**AWS 계정 연결**

## Name
<a name="cdk.dep.environment.connections.name"></a>

(*CDKDeploy*/Environment/Connections/**Name**)

([Connections](#cdk.dep.environment.connections) 포함 시 필수)

계정 연결의 이름을 지정합니다.

해당 UI: 작업 버전에 따라 다음 중 하나:
+ (최신 버전) 구성 탭/환경/*내 환경*의 내용/점 3개 메뉴/**역할 전환**
+ (이전 버전) 구성 탭/'환경/계정/역할'/**AWS 계정 연결**

## Role
<a name="cdk.dep.environment.connections.role"></a>

(*CDKDeploy*/Environment/Connections/**Role**)

([Connections](#cdk.dep.environment.connections) 포함 시 필수)

계정 연결의 이름을 지정합니다.

**AWS CDK 배포** 작업이 AWS CDK 애플리케이션 스택에 액세스 AWS 하고 배포하는 데 사용하는 IAM 역할의 이름을 지정합니다. [CodeCatalyst 스페이스에 역할을 추가](ipa-connect-account-addroles.md)했고 역할에 다음 정책이 포함되어 있는지 확인합니다.

IAM 역할을 지정하지 않으면 작업은 CodeCatalyst 콘솔의 [환경](deploy-environments.md)에 나열된 기본 IAM 역할을 사용합니다. 환경에서 기본 역할을 사용하는 경우 다음 정책이 있는지 확인합니다.
+ 다음 권한 정책:
**주의**  
다음 정책에 표시된 대로 권한을 제한합니다. 더 광범위한 권한을 가진 역할을 사용하면 보안 위험이 발생할 수 있습니다.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "cloudformation:DescribeStackEvents",
                  "cloudformation:DescribeChangeSet",
                  "cloudformation:DescribeStacks",
                  "cloudformation:ListStackResources"
              ],
              "Resource": "*"
          },
          {
              "Sid": "VisualEditor1",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": "arn:aws:iam::111122223333:role/cdk-*"
          }
      ]
  }
  ```

------
+ 다음 사용자 지정 신뢰 정책:

**참고**  
원하는 경우 이 작업에서 `CodeCatalystWorkflowDevelopmentRole-spaceName` 역할을 사용할 수 있습니다. 이에 대한 자세한 내용은 [계정 및 스페이스의 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 역할 생성](ipa-iam-roles.md#ipa-iam-roles-service-create) 섹션을 참조하세요. `CodeCatalystWorkflowDevelopmentRole-spaceName` 역할에 보안 위험을 초래할 수 있는 전체 액세스 권한이 있음을 이해합니다. 보안에 대한 우려가 적은 자습서 및 시나리오에서만 이 역할을 사용하는 것이 좋습니다.

해당 UI: 작업 버전에 따라 다음 중 하나:
+ (최신 버전) 구성 탭/환경/*내 환경*의 내용/점 3개 메뉴/**역할 전환**
+ (이전 버전) 구성 탭/'환경/계정/역할'/**역할**

## Configuration
<a name="cdk.dep.configuration"></a>

(*CDKDeploy*/**Configuration**)

(필수)

작업의 구성 속성을 정의할 수 있는 섹션입니다.

해당 UI: **구성** 탭

## StackName
<a name="cdk.dep.stack.name"></a>

(*CDKDeploy*/Configuration/**StackName**)

(필수)

 AWS CDK 앱 `bin` 디렉터리의 진입점 파일에 표시되는 AWS CDK 앱 스택의 이름입니다. 다음 예시에서는 스택 이름이 *빨간색 기울임꼴*로 강조 표시된 TypeScript 진입점 파일의 내용을 보여줍니다. 진입점 파일이 다른 언어로 되어 있는 경우 비슷해 보일 것입니다.

```
import * as cdk from 'aws-cdk-lib';
import { CdkWorksopTypescriptStack } from '../lib/cdk_workshop_typescript-stack';

const app = new cdk.App();
new CdkWorkshopTypescriptStack(app, 'CdkWorkshopTypescriptStack');
```

하나의 스택만 지정할 수 있습니다.

**작은 정보**  
스택이 여러 개 있는 경우 중첩 스택이 있는 상위 스택을 생성할 수 있습니다. 그런 다음 이 작업에서 상위 스택을 지정하여 모든 스택을 배포할 수 있습니다.

해당 UI: 구성 탭/**스택 이름**

## Region
<a name="cdk.dep.region"></a>

(*CDKDeploy*/Configuration/**Region**)

(선택 사항)

 AWS CDK 애플리케이션 스택을 배포할 AWS 리전 를 지정합니다. 리전 코드 목록은 [리전 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes)를 참조하세요.

리전을 지정하지 않으면 **AWS CDK 배포** 작업이 AWS CDK 코드에 지정된 리전에 배포됩니다. 자세한 내용을 알아보려면 *AWS Cloud Development Kit (AWS CDK) 개발자 안내서*의 [환경](https://docs.aws.amazon.com/cdk/v2/guide/environments.html)을 참조하세요.

해당 UI: 구성 탭/**리전**

## Tags
<a name="cdk.dep.tags"></a>

(*CDKDeploy*/Configuration/**Tags**)

(선택 사항)

 AWS CDK 애플리케이션 스택의 AWS 리소스에 적용할 태그를 지정합니다. 태그는 스택 자체뿐만 아니라 스택의 개별 리소스에도 적용됩니다. 태그에 대한 자세한 내용을 알아보려면 *AWS Cloud Development Kit (AWS CDK) 개발자 안내서*의 [태그 지정](https://docs.aws.amazon.com/cdk/v2/guide/tagging.html)을 참조하세요.

해당 UI: 구성 탭/고급 - 선택적/**태그**

## Context
<a name="cdk.dep.context"></a>

(*CDKDeploy*/Configuration/**Context**)

(선택 사항)

 AWS CDK 애플리케이션 스택과 연결할 컨텍스트를 키-값 페어 형태로 지정합니다. 컨텍스트에 대한 자세한 내용을 알아보려면 *AWS Cloud Development Kit (AWS CDK) 개발자 안내서*의 [ 런타임 컨텍스트](https://docs.aws.amazon.com/cdk/v2/guide/context.html)를 참조하세요.

해당 UI: 구성 탭/고급 - 선택 사항/**컨텍스트**

## CdkCliVersion
<a name="cdk.dep.cdk.cli.version"></a>

(*CDKDeploy*/Configuration/**CdkCliVersion**)

(선택 사항)

이 속성은 버전 1.0.13 이상의 **AWS CDK 배포** 작업과 버전 1.0.8 이상의 **AWS CDK 부트스트랩** 작업에서 사용할 수 있습니다.

다음 중 하나를 지정하세요.
+ 이 작업에서 사용할 AWS Cloud Development Kit (AWS CDK) 명령줄 인터페이스(CLI)( 도구 키트라고 AWS CDK 도 함)의 전체 버전입니다. 예시: `2.102.1`. 애플리케이션을 구축하고 배포할 때 일관성과 안정성을 보장하기 위해 전체 버전을 지정하는 것이 좋습니다.

  또는
+ `latest`. CDK CLI의 최신 기능과 수정 사항을 활용하도록 `latest`를 지정하는 것이 좋습니다.

이 작업은 지정된 CLI 버전(또는 최신 버전)을 CodeCatalyst [빌드 이미지](build-images.md) AWS CDK 에 다운로드한 다음이 버전을 사용하여 CDK 애플리케이션을 배포하거나 환경을 부트스트랩 AWS 하는 데 필요한 명령을 실행합니다.

사용할 수 있는 지원되는 CDK CLI 버전 목록은 [AWS CDK 버전](https://docs.aws.amazon.com/cdk/api/versions.html) 섹션을 참조하세요.

이 속성을 생략하면 작업은 다음 주제 중 하나에 설명된 기본 AWS CDK CLI 버전을 사용합니다.
+ ['AWS CDK 배포' 작업에서 사용하는 CDK CLI 버전](cdk-dep-action.md#cdk-dep-action-cdk-version) 
+ ["AWS CDK bootstrap" 작업에서 사용하는 CDK CLI 버전](cdk-boot-action.md#cdk-boot-action-cdk-version)

해당 UI: 구성 탭/**AWS CDK CLI 버전**

## CdkRootPath
<a name="cdk.dep.cdk.root.path"></a>

(*CDKDeploy*/Configuration/**CdkRootPath**)

(선택 사항)

 AWS CDK 프로젝트 `cdk.json` 파일이 포함된 디렉터리의 경로입니다. **AWS CDK 배포** 작업은 이 폴더에서 실행되며 작업에서 생성된 모든 출력이 이 디렉터리에 추가됩니다. 지정하지 않으면 **AWS CDK 배포** 작업은 `cdk.json` 파일이 AWS CDK 프로젝트의 루트에 있다고 가정합니다.

해당 UI: **cdk.json이 있는 구성 탭/디렉터리**

## CfnOutputVariables
<a name="cdk.dep.cfn.out"></a>

(*CDKDeploy*/Configuration/**CfnOutputVariables**)

(선택 사항)

 AWS CDK 애플리케이션 코드에서 워크플로 출력 변수로 노출하려는 `CfnOutput` 구문을 지정합니다. 그런 다음 워크플로의 후속 작업에서 워크플로 출력 변수를 참조할 수 있습니다. CodeCatalyst의 변수에 대한 자세한 내용은 [워크플로에서 변수 사용](workflows-working-with-variables.md) 섹션을 참조하세요.

예를 들어 AWS CDK 애플리케이션 코드가 다음과 같은 경우:

```
import { Duration, Stack, StackProps, CfnOutput, RemovalPolicy} from 'aws-cdk-lib';
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as s3 from 'aws-cdk-lib/aws-s3';
import { Construct } from 'constructs';
import * as cdk from 'aws-cdk-lib';
export class HelloCdkStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);
    const bucket = new s3.Bucket(this, 'amzn-s3-demo-bucket', {
      removalPolicy: RemovalPolicy.DESTROY,
    });
    new CfnOutput(this, 'bucketName', {
      value: bucket.bucketName,
      description: 'The name of the s3 bucket',
      exportName: 'amzn-s3-demo-bucket',
    });
    const table = new dynamodb.Table(this, 'todos-table', {
      partitionKey: {name: 'todoId', type: dynamodb.AttributeType.NUMBER},
      billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
      removalPolicy: RemovalPolicy.DESTROY,
    })
    new CfnOutput(this, 'tableName', {
      value: table.tableName,
      description: 'The name of the dynamodb table',
      exportName: 'myDynamoDbTable',
    });
    ...
  }
}
```

...그리고 `CfnOutputVariables` 속성은 다음과 같습니다.

```
Configuration:
  ...
  CfnOutputVariables: '["bucketName","tableName"]'
```

...그런 다음 작업은 다음과 같은 워크플로 출력 변수를 생성합니다.


| Key(키) | 값 | 
| --- | --- | 
|  bucketName  |  `bucket.bucketName`  | 
|  tableName  |  `table.tableName`  | 

그런 다음 후속 작업에서 `bucketName` 및 `tableName` 변수를 참조할 수 있습니다. 후속 작업에서 워크플로 출력 변수를 참조하는 방법을 알아보려면 [사전 정의된 변수 참조](workflows-working-with-variables-reference-output-vars.md) 섹션을 참조하세요.

`CfnOutputVariables` 속성에서 `CfnOutput` 구문을 지정하지 않으면 작업에서 워크플로 출력 변수로 찾는 처음 4개(또는 그 이하)의 CloudFormation 출력 변수가 표시됩니다. 자세한 내용은 ['AWS CDK 배포' 변수](cdk-dep-action-variables.md) 섹션을 참조하세요.

**작은 정보**  
작업이 생성하는 모든 CloudFormation 출력 변수 목록을 가져오려면 **AWS CDK 배포** 작업이 포함된 워크플로를 한 번 실행한 다음 작업의 **로그** 탭을 확인합니다. 로그에는 AWS CDK 앱과 연결된 모든 CloudFormation 출력 변수 목록이 포함됩니다. 모든 CloudFormation 변수가 무엇인지 알고 나면 `CfnOutputVariables` 속성을 사용하여 워크플로 출력 변수로 변환할 변수를 지정할 수 있습니다.

 CloudFormation 출력 변수에 대한 자세한 내용은 *AWS Cloud Development Kit (AWS CDK) API* 참조의 [클래스 CfnOutput(construct)](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnOutput.html)에서 제공되는 `CfnOutput` 구문 설명서를 참조하세요.

해당 UI: 구성 탭/**CloudFormation 출력 변수**

## CloudAssemblyRootPath
<a name="cdk.dep.cloud"></a>

(*CDKDeploy*/Configuration/**CloudAssemblyRootPath**)

(선택 사항)

 AWS CDK 앱 스택을 클라우드 어셈블리로 이미 합성한 경우( `cdk synth` 작업 사용) 클라우드 어셈블리 디렉터리의 루트 경로()를 지정합니다`cdk.out`. 지정된 클라우드 어셈블리 디렉터리에 있는 CloudFormation 템플릿은 `cdk deploy --app` 명령을 AWS 계정 사용하여 **AWS CDK 배포** 작업에 의해에 배포됩니다. `--app` 옵션이 있으면 `cdk synth` 작업이 발생하지 않습니다.

클라우드 어셈블리 디렉터리를 지정하지 않으면 **AWS CDK 배포** 작업이 `--app` 옵션 없이 `cdk deploy` 명령을 실행합니다. `--app` 옵션이 없으면 `cdk deploy` 작업은 (`cdk synth`)를 합성하고 AWS CDK 앱을에 배포합니다 AWS 계정.

**"AWS CDK 배포" 작업이 런타임에 합성을 수행할 수 있는 경우 합성된 기존 클라우드 어셈블리를 지정하는 이유는 무엇입니까?**

기존 합성 클라우드 어셈블리를 지정하여 다음을 수행할 수 있습니다.
+ **"AWS CDK 배포" 작업이 실행될 때마다 정확히 동일한 리소스 세트가 배포되는지 확인합니다.**

  클라우드 어셈블리를 지정하지 않으면 **AWS CDK 배포** 작업이 실행 시점에 따라 다른 파일을 합성하고 배포할 수 있습니다. 예를 들어, **AWS CDK 배포** 작업은 테스트 단계 동안 하나의 종속성 세트와 프로덕션 단계 동안 다른 종속성 세트(단계 간에 종속성이 변경된 경우)를 사용하여 클라우드 어셈블리를 합성할 수 있습니다. 테스트 대상과 배포 대상 간의 정확한 패리티를 보장하려면 한 번 합성한 다음 **클라우드 어셈블리 디렉터리 경로** 필드(시각적 편집기) 또는 `CloudAssemblyRootPath` 속성(YAML 편집기)을 사용하여 이미 합성된 클라우드 어셈블리를 지정하는 것이 좋습니다.
+ ** AWS CDK 앱에서 비표준 패키지 관리자 및 도구 사용**

  `synth` 작업 중에 **AWS CDK 배포** 작업은 npm 또는 pip와 같은 표준 도구를 사용하여 앱을 실행하려고 시도합니다. 이러한 도구를 사용하여 작업을 성공적으로 실행할 수 없는 경우 합성이 발생하지 않고 작업이 실패합니다. 이 문제를 해결하려면 앱 `cdk.json` 파일에서 AWS CDK 앱을 성공적으로 실행하는 데 필요한 정확한 명령을 지정한 다음 **AWS CDK 배포** 작업이 포함되지 않은 방법을 사용하여 앱을 합성할 수 있습니다. 클라우드 어셈블리가 생성된 후 **AWS CDK 배포** 작업의 **클라우드 어셈블리 디렉터리 경로** 필드(시각 편집기) 또는 `CloudAssemblyRootPath` 속성(YAML 편집기)에서 지정할 수 있습니다.

 AWS CDK 앱을 설치하고 실행하기 위한 명령을 포함하도록 `cdk.json` 파일을 구성하는 방법에 대한 자세한 내용은 [앱 명령 지정을](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-app-command) 참조하세요.

`cdk deploy` 및 `cdk synth` 명령과 `--app` 옵션에 대한 자세한 내용은 *AWS Cloud Development Kit (AWS CDK) 개발자 안내서*의 [스택 배포](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-deploy), [스택 합성](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-synth) 및 [합성 건너뛰기](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-deploy-nosynth)를 참조하세요.

클라우드 어셈블리에 대한 자세한 내용은 *AWS Cloud Development Kit (AWS CDK) API 참조*의 [클라우드 어셈블리](https://docs.aws.amazon.com/cdk/api/v2/docs/cloud-assembly-schema-readme.html)를 참조하세요.

해당 UI: 구성 탭/**클라우드 어셈블리 디렉터리 경로**