

這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護，並於 2023 年 6 月 1 日結束支援。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# `cdk bootstrap`
<a name="ref-cli-cmd-bootstrap"></a>

透過將名為 的 CDK 引導堆疊部署到 AWS 環境中`CDKToolkit`，為 CDK 部署準備 AWS 環境。

引導堆疊是 CloudFormation 堆疊，可在 AWS 環境中佈建 Amazon S3 儲存貯體和 Amazon ECR 儲存庫。 AWS CDK CLI 使用這些資源在部署期間存放合成的範本和相關資產。

## 用量
<a name="ref-cli-cmd-bootstrap-usage"></a>

```
$ cdk bootstrap <arguments> <options>
```

## 引數
<a name="ref-cli-cmd-bootstrap-args"></a><a name="ref-cli-cmd-bootstrap-args-env"></a>

 ** AWS 環境**   
以下列格式將引導堆疊部署至 的目標 AWS 環境：`aws://<account-id>/<region>`。  
範例：`aws://123456789012/us-east-1`  
此引數可在單一命令中提供多次，以將引導堆疊部署至多個環境。  
根據預設，CDK CLI 會引導 CDK 應用程式中參考的所有環境，或從預設來源判斷環境。這可能是使用 `--profile`選項、來自環境變數或預設 CLI AWS 來源指定的環境。

## 選項
<a name="ref-cli-cmd-bootstrap-options"></a>

如需適用於所有 CDK CLI 命令的全域選項清單，請參閱[全域選項](ref-cli-cmd.md#ref-cli-cmd-options)。<a name="ref-cli-cmd-bootstrap-options-bootstrap-bucket-name"></a>

 `--bootstrap-bucket-name, --toolkit-bucket-name, -b <STRING>`   
CDK CLI 將使用的 Amazon S3 儲存貯體名稱。將會建立此儲存貯體，且目前不得存在。  
提供此選項可覆寫 Amazon S3 儲存貯體的預設名稱。  
使用此選項時，您可能需要自訂合成。若要進一步了解，請參閱[自訂 CDK 堆疊合成](configure-synth.md#bootstrapping-custom-synth)。  
 *預設值*：未定義<a name="ref-cli-cmd-bootstrap-options-bootstrap-customer-key"></a>

 `--bootstrap-customer-key <BOOLEAN>`   
為引導儲存貯體建立客戶主金鑰 (CMK) （將向您收取費用，但可以自訂許可，僅限現代引導）。  
此選項與 不相容`--bootstrap-kms-key-id`。  
 *預設值*：未定義<a name="ref-cli-cmd-bootstrap-options-bootstrap-kms-key-id"></a>

 `--bootstrap-kms-key-id <STRING>`   
用於`SSE-KMS`加密的 AWS KMS 主金鑰 ID。  
提供此選項可覆寫用於加密 Amazon S3 儲存貯體的預設 AWS KMS 金鑰。  
此選項與 不相容`--bootstrap-customer-key`。  
 *預設值*：未定義<a name="ref-cli-cmd-bootstrap-options-cloudformation-execution-policies"></a>

 `--cloudformation-execution-policies <ARRAY>`   
受管 IAM 政策 ARNs，應連接到 AWS CloudFormation 在堆疊部署期間擔任的部署角色。  
根據預設，堆疊會使用 `AdministratorAccess`政策以完整的管理員許可進行部署。  
您可以在單一命令中多次提供此選項。您也可以提供多個 ARNs 做為單一字串，並以逗號分隔個別 ARNs。以下是範例：  

```
$ cdk bootstrap --cloudformation-execution-policies "arn:aws:iam::aws:policy/AWSLambda_FullAccess,arn:aws:iam::aws:policy/AWSCodeDeployFullAccess"
```
為了避免部署失敗，請確定您指定的政策足以讓您對要引導的環境執行任何部署。  
此選項僅適用於現代引導。  
現代引導範本會有效地將 隱含的許可授予`--trust`清單中`--cloudformation-execution-policies`的任何 AWS 帳戶。根據預設，這會擴展讀取和寫入引導帳戶中任何資源的許可。請務必使用您熟悉的政策和信任帳戶來[設定引導堆疊](bootstrapping-customizing.md)。
 *預設值*：`[]`<a name="ref-cli-cmd-bootstrap-options-custom-permissions-boundary"></a>

 `--custom-permissions-boundary, -cpb <STRING>`   
指定要使用的許可界限名稱。  
此選項與 不相容`--example-permissions-boundary`。  
 *預設值*：未定義<a name="ref-cli-cmd-bootstrap-options-example-permissions-boundary"></a>

 `--example-permissions-boundary, -epb <BOOLEAN>`   
使用 AWS CDK 提供的範例許可界限。  
此選項與 不相容`--custom-permissions-boundary`。  
CDK 提供的許可界限政策應視為範例。如果您要測試功能，請編輯內容並參考範例政策。如果尚未存在，請將其轉換為實際部署的新政策。問題是避免偏離。很可能會維護許可界限，並具有專用慣例，包括命名。  
如需設定許可的詳細資訊，包括使用許可界限，請參閱 [安全與安全開發指南](https://github.com/aws/aws-cdk/wiki/Security-And-Safety-Dev-Guide)。  
 *預設值*：未定義<a name="ref-cli-cmd-bootstrap-options-execute"></a>

 `--execute <BOOLEAN>`   
設定是否要執行變更集。  
 *預設值*：`true`<a name="ref-cli-cmd-bootstrap-options-force"></a>

 `--force, -f <BOOLEAN>`   
一律引導，即使它會降級引導範本版本。  
 *預設值*：`false`<a name="ref-cli-cmd-bootstrap-options-help"></a>

 `--help, -h <BOOLEAN>`   
顯示命令的`cdk bootstrap`命令參考資訊。<a name="ref-cli-cmd-bootstrap-options-previous-parameters"></a>

 `--previous-parameters <BOOLEAN>`   
對現有參數使用先前的值。  
使用一組參數部署引導範本後，您必須將此選項設定為 `false`，以變更未來部署的任何參數。當 時`false`，您必須重新提供先前提供的所有參數。  
 *預設值*：`true`<a name="ref-cli-cmd-bootstrap-options-public-access-block-configuration"></a>

 `--public-access-block-configuration <BOOLEAN>`   
封鎖由 CDK CLI 建立和使用的 Amazon S3 儲存貯體上的公有存取組態。  
 *預設值*：`true`<a name="ref-cli-cmd-bootstrap-options-qualifier"></a>

 `--qualifier <STRING>`   
每個引導堆疊的唯一九位數字串值。此值會新增至引導堆疊中資源的實體 ID。  
透過提供限定詞，您可以避免在相同環境中佈建多個引導堆疊時發生資源名稱衝突。  
當您變更限定詞時，您的 CDK 應用程式必須將變更的值傳遞至堆疊合成器。如需詳細資訊，請參閱[自訂 CDK 堆疊合成](configure-synth.md#bootstrapping-custom-synth)。  
 *預設值*：`hnb659fds`。此值沒有意義。<a name="ref-cli-cmd-bootstrap-options-show-template"></a>

 `--show-template <BOOLEAN>`   
將目前的引導範本列印為標準輸出 (`stdout`)，而不是引導。然後，您可以視需要複製和自訂範本。  
 *預設值*：`false`<a name="ref-cli-cmd-bootstrap-options-tags"></a>

 `--tags, -t <ARRAY>`   
要新增至引導堆疊的標籤，格式為 `KEY=VALUE`。  
 *預設值*：`[]`<a name="ref-cli-cmd-bootstrap-options-template"></a>

 `--template <STRING>`   
使用指定檔案中的 範本，而非內建的範本。<a name="ref-cli-cmd-bootstrap-options-termination-protection"></a>

 `--termination-protection <BOOLEAN>`   
引導堆疊上的 Toggle AWS CloudFormation 終止保護。  
當 時`true`，啟用終止保護。這可防止不小心刪除引導堆疊。  
若要進一步了解終止保護，請參閱《* AWS CloudFormation 使用者指南*》中的[保護堆疊不會被刪除](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)。  
 *預設值*：未定義<a name="ref-cli-cmd-bootstrap-options-toolkit-stack-name"></a>

 `--toolkit-stack-name <STRING>`   
要建立的引導堆疊名稱。  
根據預設， 會將名為 `cdk bootstrap` 的堆疊部署`CDKToolkit`到指定的 AWS 環境中。使用此選項為您的引導堆疊提供不同的名稱。  
CDK CLI 使用此值來驗證您的引導堆疊版本。  
 *預設值*：`CDKToolkit`  
 *必要*：是<a name="ref-cli-cmd-bootstrap-options-trust"></a>

 `--trust <ARRAY>`   
應信任 AWS 的帳戶 IDs，才能在此環境中執行部署。  
一律信任執行引導的帳戶。  
此選項要求您也提供 `--cloudformation-execution-policies`。  
您可以在單一命令中多次提供此選項。  
此選項僅適用於現代引導。  
若要將信任的帳戶新增至現有的引導堆疊，您必須指定要信任的所有帳戶，包括您先前可能提供的帳戶。如果您只提供新帳戶來信任，先前信任的帳戶將被移除。  
以下是信任兩個帳戶的範例：  

```
$ cdk bootstrap aws://123456789012/us-west-2 --trust 234567890123 --trust 987654321098 --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess
 ⏳  Bootstrapping environment aws://123456789012/us-west-2...
Trusted accounts for deployment: 234567890123, 987654321098
Trusted accounts for lookup: (none)
Execution policies: arn:aws:iam::aws:policy/AdministratorAccess
CDKToolkit: creating CloudFormation changeset...
 ✅  Environment aws://123456789012/us-west-2 bootstrapped.
```
現代引導範本會有效地將 隱含的許可授予`--trust`清單中`--cloudformation-execution-policies`的任何 AWS 帳戶。根據預設，這會擴展讀取和寫入引導帳戶中任何資源的許可。請務必使用您熟悉的政策和信任帳戶來[設定引導堆疊](bootstrapping-customizing.md)。
 *預設值*：`[]`<a name="ref-cli-cmd-bootstrap-options-trust-for-lookup"></a>

 `--trust-for-lookup <ARRAY>`   
應信任 AWS 的帳戶 IDs可在此環境中查詢值。  
使用此選項可授予帳戶許可，以合成要部署到環境中的堆疊，而無需實際授予他們直接部署這些堆疊的許可。  
您可以在單一命令中多次提供此選項。  
此選項僅適用於現代引導。  
 *預設值*：`[]`

## 範例
<a name="ref-cli-cmd-bootstrap-examples"></a>

### 引導產品描述檔中指定的 AWS 環境
<a name="ref-cli-cmd-bootstrap-examples-1"></a>

```
$ cdk bootstrap --profile prod
```

### 將引導堆疊部署到環境 foo 和 bar
<a name="ref-cli-cmd-bootstrap-examples-2"></a>

```
$ cdk bootstrap --app='node bin/main.js' foo bar
```

### 匯出引導範本以進行自訂
<a name="ref-cli-cmd-bootstrap-examples-3"></a>

如果您有引導範本不符合的特定需求，您可以自訂它以符合您的需求。

您可以匯出引導範本、修改範本，以及使用 AWS CloudFormation 部署範本。以下是匯出現有範本的範例：

```
$ cdk bootstrap --show-template > bootstrap-template.yaml
```

您也可以指示 CDK CLI 使用自訂範本。以下是範例：

```
$ cdk bootstrap --template my-bootstrap-template.yaml
```

### 具有許可界限的引導。然後，移除該許可界限
<a name="ref-cli-cmd-bootstrap-examples-4"></a>

若要使用自訂許可界限引導，我們會執行下列動作：

```
$ cdk bootstrap --custom-permissions-boundary my-permissions-boundary
```

若要移除許可界限，我們會執行下列動作：

```
$ cdk bootstrap --no-previous-parameters
```

### 使用限定詞來區分為開發環境建立的資源
<a name="ref-cli-cmd-bootstrap-examples-5"></a>

```
$ cdk bootstrap --qualifier dev2024
```