

これは 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 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` を実行して、一致するすべての機能フラグを表示することもできます。その部分文字列に一致する機能フラグが 1 つしかない場合、特定の詳細が表示されます。

```
$ 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...
```