

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`會導致 動作在 [2024 年 3 月映像](build-images.md#build.default-image)上執行，其中包括較新的工具，例如 Node.js 18。指定 `aws/cdk-deploy@v1`會導致 動作在 [2022 年 11 月映像](build-images.md#build.previous-image)上執行，其中包含舊版工具，例如 Node.js 16。

預設：`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：輸出tab/Artifacts/Add成品/**建置成品名稱**

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

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

（如果[Artifacts - output](#cdk.dep.outputs.artifacts)包含 則為必要）

指定要包含在成品中的檔案。您必須指定 `"cdk.out/**/*"`以包含 AWS CDK 應用程式的合成 CloudFormation 範本。

**注意**  
`cdk.out` 是將合成檔案儲存到其中的預設目錄。如果您在 `cdk.json` 檔案中指定 `cdk.out`以外的輸出目錄，請在此處指定該目錄，而非 `cdk.out`。

對應的 UI：輸出tab/Artifacts/Add**建置產生的成品/檔案**

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

(*CDKDeploy*/**Environment**)

(必要)

指定要與 動作搭配使用的 CodeCatalyst 環境。動作會連線至所選環境中指定的 AWS 帳戶 和選用 Amazon VPC。動作會使用環境中指定的預設 IAM 角色來連線至 AWS 帳戶，並使用 [Amazon VPC 連線](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html)中指定的 IAM 角色來連線至 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`。

如果您未指定帳戶連線：
+ 動作會使用 CodeCatalyst 主控台中環境指定的 AWS 帳戶 連線和預設 IAM 角色。如需將帳戶連線和預設 IAM 角色新增至環境的相關資訊，請參閱 [建立環境](deploy-environments-creating-environment.md)。
+ 預設 IAM 角色必須包含 動作所需的政策和許可。若要判斷這些政策和許可是什麼，請參閱動作 YAML 定義文件中**角色**屬性的描述。

如需帳戶連線的詳細資訊，請參閱 [允許存取已連線 AWS 的資源 AWS 帳戶](ipa-connect-account.md)。如需將帳戶連線新增至環境的相關資訊，請參閱 [建立環境](deploy-environments-creating-environment.md)。

對應的 UI：取決於動作版本，下列其中一項：
+ （較新版本） 組態tab/Environment/What是 *my-environment*？/三個點功能表/**切換角色**
+ （舊版本） 組態索引標籤/'Environment/account/role'/**AWS account connection**

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

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

（如果[Connections](#cdk.dep.environment.connections)包含 則為必要）

指定帳戶連線的名稱。

對應的 UI：取決於動作版本，下列其中一項：
+ （較新版本） 組態tab/Environment/What是 *my-environment*？/三個點功能表/**切換角色**
+ （舊版本） 組態索引標籤/'Environment/account/role'/**AWS account connection**

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

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

（如果[Connections](#cdk.dep.environment.connections)包含 則為必要）

指定帳戶連線的名稱。

指定**AWS CDK 部署**動作用來存取 AWS 和部署 AWS CDK 應用程式堆疊的 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：取決於動作版本，下列其中一項：
+ （較新版本） 組態tab/Environment/What*我的環境*是什麼？/三個點功能表/**切換角色**
+ （舊版本） 組態索引標籤/'Environment/account/role'/**Role**

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

(*CDKDeploy*/**Configuration**)

(必要)

您可以在此區段定義 動作的組態屬性。

對應的 UI：**組態**索引標籤

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

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

(必要)

應用程式 AWS CDK 堆疊的名稱，如應用程式 AWS CDK `bin`目錄中的進入點檔案中所示。下列範例顯示 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 Toolkit)。範例：`2.102.1`。請考慮指定完整版本，以確保建置和部署應用程式時的一致性和穩定性。

  或
+ `latest`。 考慮指定 `latest`以利用 CDK CLI 的最新功能和修正。

動作會將指定的 CLI AWS CDK 版本 （或最新版本） 下載至 CodeCatalyst [建置映像](build-images.md)，然後使用此版本來執行部署 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"]'
```

...然後動作會產生下列工作流程輸出變數：


| 金鑰 | 值 | 
| --- | --- | 
|  bucketName  |  `bucket.bucketName`  | 
|  tableName  |  `table.tableName`  | 

然後，您可以在後續動作中參考 `bucketName`和 `tableName`變數。若要了解如何在後續動作中參考工作流程輸出變數，請參閱 [參考預先定義的變數](workflows-working-with-variables-reference-output-vars.md)。

如果您未在 `CfnOutputVariables` 屬性中指定任何`CfnOutput`建構，則動作會公開其視為工作流程輸出變數的前四個 （或更少） CloudFormation 輸出變數。如需詳細資訊，請參閱[「AWS CDK 部署」變數](cdk-dep-action-variables.md)。

**提示**  
若要取得動作產生的所有 CloudFormation 輸出變數清單，請執行包含**AWS CDK 部署**動作的工作流程一次，然後查看動作的**日誌**索引標籤。日誌包含與您的 AWS CDK 應用程式相關聯的所有 CloudFormation 輸出變數清單。知道所有 CloudFormation 變數是什麼後，您可以使用 `CfnOutputVariables` 屬性指定要轉換為工作流程輸出變數的變數。

如需 CloudFormation 輸出變數的詳細資訊，請參閱 API `CfnOutput` 參考中的建構文件，可在 [ CfnOutput （建構） 類別](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnOutput.html)取得。 *AWS Cloud Development Kit (AWS CDK) *

對應的 UI：組態索引標籤/**CloudFormation 輸出變數**

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

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

(選用)

如果您已將 AWS CDK 應用程式的堆疊合成至雲端組件 （使用 `cdk synth`操作），請指定雲端組件目錄的根路徑 (`cdk.out`)。位於指定雲端組件目錄中的 CloudFormation 範本，將由**AWS CDK 部署**動作 AWS 帳戶 使用 `cdk deploy --app`命令部署至您的 。當 `--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。如果動作無法使用這些工具成功執行您的應用程式，則不會進行合成，且動作會失敗。若要解決此問題，您可以在應用程式的 AWS CDK `cdk.json` 檔案中指定成功執行應用程式所需的確切命令，然後使用不涉及**AWS CDK 部署**動作的方法合成應用程式。產生雲端組件之後，您可以在**AWS CDK 部署**動作的**雲端組件目錄路徑**欄位 （視覺化編輯器） 或`CloudAssemblyRootPath`屬性 (YAML 編輯器） 中指定它。

如需設定 `cdk.json` 檔案以包含安裝和執行 AWS CDK 應用程式的命令的詳細資訊，請參閱[指定應用程式命令](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：組態索引標籤/**通往雲端組件目錄的路徑**