

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

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

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

檢視和修改 CDK CLI 的功能旗標組態。

功能旗標控制 CDK CLI 的行為，您可以使用它們來啟用或停用特定功能。使用 `cdk flags`命令來檢視您目前的特徵標記組態，並視需要修改它們。

**警告**  
`cdk flags` 命令正在開發 AWS CDK。此命令目前的功能被視為可立即生產且安全使用。不過，此命令的範圍及其功能可能會有所變更。因此，您必須提供使用此命令`unstable=flags`的選項來選擇加入。

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

```
$ cdk flags <arguments> <options>
```

## 引數
<a name="ref-cli-cmd-flags-args"></a><a name="ref-cli-cmd-flags-args-flagname"></a>

 **FLAGNAME**   
您要檢視或修改的特定功能旗標名稱。  
 *類型：*字串  
 *必要*：否

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

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

 `--set <BOOLEAN>`   
修改功能旗標組態。<a name="ref-cli-cmd-flags-options-all"></a>

 `--all <BOOLEAN>`   
修改或檢視所有功能旗標。<a name="ref-cli-cmd-flags-options-recommended"></a>

 `--recommended <BOOLEAN>`   
將旗標變更為建議狀態。<a name="ref-cli-cmd-flags-options-default"></a>

 `--default <BOOLEAN>`   
將旗標變更為預設狀態。<a name="ref-cli-cmd-flags-options-unconfigured"></a>

 `--unconfigured <BOOLEAN>`   
修改未設定的功能旗標。<a name="ref-cli-cmd-flags-options-value"></a>

 `--value <STRING>`   
要設定特徵標記組態的值。  
 *requiresArg*： true<a name="ref-cli-cmd-flags-options-safe"></a>

 `--safe <BOOLEAN>`   
啟用不影響應用程式的所有功能旗標。<a name="ref-cli-cmd-flags-options-interactive"></a>

 `--interactive, -i <BOOLEAN>`   
flags 命令的互動式選項。

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

### 檢視功能旗標組態
<a name="ref-cli-cmd-flags-examples-1"></a>

執行 `cdk flags`以檢視與建議狀態不同的功能旗標組態報告。未設定的旗標會標示為 `<unset>` ，表示該旗標目前沒有值。旗標會以下列順序顯示：
+ 旗標設定為不符合建議值的值
+ 您尚未設定的旗標

```
$ cdk flags --unstable=flags
Feature Flag                           Recommended                       User
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         <unset>
```

您也可以執行 `cdk flags --all`來查看所有特徵標記的報告，順序如下：
+ 旗標設定為符合建議值的值
+ 旗標設定為不符合建議值的值
+ 您尚未設定的旗標

```
$ cdk flags --unstable=flags --all
Feature Flag                              Recommended                     User
@aws-cdk/...                                true                         true
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         <unset>
```

### 修改特徵標記值
<a name="ref-cli-cmd-flags-examples-2"></a>

若要以互動方式修改您的功能旗標，請執行 `cdk flags --interactive`（或 `cdk flags -i`) 以檢視功能表選項清單。

若要將每個功能旗標變更為建議值，請執行 `cdk flags --set --recommended --all`。此命令會使用最新的 CDK 功能旗標組態，讓您的功能旗標組態保持up-to-date狀態。請注意，執行此命令可能會覆寫現有的設定值。

```
$ cdk flags --unstable=flags --set --recommended --all
Feature Flag                              Recommended Value            User Value
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         <unset>
  Synthesizing...
    Resources
    [~] AWS::S3::Bucket MyBucket
    └─ [~] Properties
        └─ [~] Encryption
                ...
    Number of stacks with differences: 2
  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```

如果您想要保留現有設定旗標的狀態，請執行 `cdk flags --set --recommended --unconfigured`。此選項只會將未設定的功能旗標變更為我們的建議值。

```
$ cdk flags --unstable=flags --set --recommended --unconfigured
Feature Flag                              Recommended Value            User Value
* @aws-cdk/...                              true                         <unset>
* @aws-cdk/...                              true                         <unset>
  Synthesizing...
    Resources
    [~] AWS::S3::Bucket MyBucket
    └─ [~] Properties
        └─ [~] Encryption
            ├─ [-] None
            └─ [+] ServerSideEncryptionConfiguration:
                    - ...
            ...
    Number of stacks with differences: 2
  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```

如果您想要確保任何未設定的功能旗標不會干擾您的應用程式，請執行 `cdk flags --set --default --unconfigured`命令，將未設定的旗標變更為其預設值。例如，如果 `@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021` 未設定，則執行 後會顯示通知`cdk synth`。不過，如果您將旗標設定為其預設狀態 (false)，則會將其設定、關閉，且不會影響您的應用程式。

```
$ cdk flags --unstable=flags --set --default --unconfigured
Feature Flag                              Recommended Value            User Value
* @aws-cdk/...                              true                         <unset>
* @aws-cdk/...                              true                         <unset>
  Synthesizing...

  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```

### 檢查特定功能旗標
<a name="ref-cli-cmd-flags-examples-3"></a>

#### 檢視有關旗標的詳細資訊
<a name="_view_more_information_about_a_flag"></a>

除了執行 `cdk flags`和 `cdk flags --all` 檢視您的特徵標記組態之外，您也可以使用 `cdk flags "FLAGNAME"` 來檢查特定特徵標記，並了解標記的功能。如果您想要了解特定旗標及其對應用程式的影響，這可能會有所幫助。

```
$ cdk flags --unstable=flags "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021"
    Description: Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.
    Recommended Value: true
    User Value: true
```

#### 依子字串篩選旗標
<a name="_filter_flags_by_substring"></a>

您也可以執行 `cdk flags substring`來檢視所有相符的功能旗標。如果只有一個符合該子字串的功能旗標，則會顯示特定詳細資訊。

```
$ cdk flags --unstable=flags ebs
@aws-cdk/aws-ec2:ebsDefaultGp3Volume
    Description: When enabled, the default volume type of the EBS volume will be GP3
    Recommended Value: true
    User Value: true
```

如果多個旗標符合子字串，則資料表中會顯示所有相符的旗標。如果您輸入多個子字串，則會傳回包含任何子字串的所有相符旗標。

```
$ cdk flags --unstable=flags s3 lambda
Feature Flag                              Recommended                     User
* @aws-cdk/s3...                            true                         false
* @aws-cdk/lambda...                        true                         false
* @aws-cdk/lambda...                        true                         <unset>
```

#### 修改特定旗標
<a name="_modify_a_specific_flag"></a>

如果您需要修改旗標的值，並希望確保將其設定為正確且支援的狀態，請執行 `cdk flags --set "FLAGNAME" --value="state"`。

```
$ cdk flags --unstable=flags --set "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021" --value="true"
  Synthesizing...
    Resources
    [~] AWS::CloudFront::Distribution MyDistribution
    └─ [~] Properties
        └─ [~] DefaultSecurityPolicy
            ├─ [-] TLSv1.0
            └─ [+] TLSv1.2_2021
                    - ...
    Number of stacks with differences: 2
  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```