

# AWS CLI でのコマンドプロンプトの有効化と使用
<a name="cli-usage-parameters-prompting"></a>

AWS CLI バージョン 2 では、`aws` コマンドの実行時にコマンド、パラメータ、およびリソースのプロンプトを表示できます。

**Topics**
+ [仕組み](#cli-usage-auto-prompt-about)
+ [自動プロンプト機能](#cli-usage-auto-prompt-features)
+ [自動プロンプトモード](#cli-usage-auto-prompt-modes)
+ [自動プロンプトの設定](#cli-usage-auto-prompt-configure)

## 仕組み
<a name="cli-usage-auto-prompt-about"></a>

有効にすると、自動プロンプトが **Enter** キーを使用して部分的に入力されたコマンドを完成できるようにします。**Enter** キーを押すと、続けて入力する内容に基づいて、コマンド、パラメータ、およびリソースが提案されます。提案には、左側にコマンド、パラメーター、またはリソースの名前、右側にそれらの説明が記載されます。提案を選択して使用するには、矢印キーを使用して行をハイライト表示してから、**Space** キーを押します。コマンドでの入力が終了したら、**Enter** を押してコマンドを使用します。以下の例は、自動プロンプトから提案されたリストがどのように表示されるかを示しています。

```
$ aws
> aws a
       accessanalyzer                Access Analyzer
       acm                           AWS Certificate Manager
       acm-pca                       AWS Certificate Manager Private Certificate Authority
       alexaforbusiness              Alexa For Business
       amplify                       AWS Amplify
```

## 自動プロンプト機能
<a name="cli-usage-auto-prompt-features"></a>

自動プロンプトには、以下の便利な機能が含まれています。

**ドキュメントパネル**  
現在のコマンドのヘルプドキュメントを提供します。ドキュメントを開くには、**F3** キーを押します。

**コマンド補完**  
使用する `aws` コマンドを提案します。リストを表示するには、コマンドを部分的に入力します。以下の例は、`a` の文字で始まるサービスを検索します。  

```
$ aws
> aws a
       accessanalyzer                Access Analyzer
       acm                           AWS Certificate Manager
       acm-pca                       AWS Certificate Manager Private Certificate Authority
       alexaforbusiness              Alexa For Business
       amplify                       AWS Amplify
```

**パラメータ補完**  
コマンドを入力すると、自動プロンプトがパラメータの提案を開始します。パラメータの説明には、値のタイプ、およびパラメータが何であるかの説明が含まれます。必須のパラメータが最初にリストされ、「required」というラベルが付けられます。以下の例は、`aws dynamodb describe-table` に対するパラメータの自動プロンプトリストを示しています。  

```
$ aws dynamodb describe-table
> aws dynamodb describe-table 
                              --table-name (required)  [string] The name of the table to describe.
                               --cli-input-json         [string] Reads arguments from the JSON string provided. The JSON string follows the format provide...
                               --cli-input-yaml         [string] Reads arguments from the YAML string provided. The YAML string follows the format provide...
                               --generate-cli-skeleton  [string] Prints a JSON skeleton to standard output without sending an API request. If provided wit...
```

**リソース補完**  
自動プロンプトは、利用可能な AWS リソースプロパティを使用して AWS API コールを実行し、リソースの値を提案します。これは、パラメータの入力時に、自動プロンプトが使用可能なユーザー所有のリソースを提案することを可能にします。以下の例では、`--table-name` コマンドの `aws dynamodb describe-table` パラメータを入力するときに、自動プロンプトがテーブル名をリストアップします。  

```
$ aws dynamodb describe-table
> aws dynamodb describe-table --table-name 
                                            Table1
                                            Table2
                                            Table3
```

**短縮構文補完**  
短縮構文を使用するパラメータには、自動プロンプトは使用する値を提案します。以下の例では、自動プロンプトが `--placement` コマンドの `aws ec2 run-instances` パラメータに対する短縮構文をリストアップします。  

```
$ aws ec2 run-instances
> aws ec2 run-instances --placement 
 AvailabilityZone=      [string] The Availability Zone of the instance. If not specified, an Availability Zone wil...
 Affinity=              [string] The affinity setting for the instance on the Dedicated Host. This parameter is no...
 GroupName=             [string] The name of the placement group the instance is in.
 PartitionNumber=       [integer] The number of the partition the instance is in. Valid only if the placement grou...
```

**ファイル補完**  
`aws` コマンドのパラメータを入力するときに、自動入力が `file://` または `fileb://` プレフィックスを使用した後に続くローカルファイル名を提案します。以下の例では、`--item file://` コマンドに `aws ec2 run-instances` を入力した後で、自動プロンプトがローカルファイルを提案します。  

```
$ aws ec2 run-instances
> aws ec2 run-instances --item file:// 
                         item1.txt
                         file1.json
                         file2.json
```

**リージョン補完**  
グローバルパラメータの `--region` を使用するときは、自動プロンプトが選択可能なリージョンをリストアップします。以下の例では、`aws dynamodb list-tables` コマンドの `--region` を入力した後で、自動プロンプトがリージョンをアルファベット順に提案します。  

```
$ aws dynamodb list-tables
> aws dynamodb list-tables --region 
                                     af-south-1
                                     ap-east-1
                                     ap-northeast-1
                                     ap-northeast-2
```

**プロファイル補完**  
グローバルパラメータの `--profile` を使用するときは、自動プロンプトがプロファイルをリストアップします。以下の例では、`--profile` コマンドに `aws dynamodb list-tables` を入力した後で、自動プロンプトがユーザーのプロファイルを提案します。  

```
$ aws dynamodb list-tables
> aws dynamodb list-tables --profile 
                                     profile1
                                     profile2
                                     profile3
```

**あいまい検索**  
特定の文字セットを含むコマンドと値を補完します。以下の例では、`aws dynamodb list-tables` コマンドに `--region eu` を入力した後で、自動プロンプトが `eu` が含まれるリージョンを提案します。  

```
$ aws dynamodb list-tables
> aws dynamodb list-tables --region west
                                         eu-west-1
                                         eu-west-2
                                         eu-west-3
                                         us-west-1
```

**履歴**  
自動プロンプトモードで以前に使用したコマンドを表示して実行するには、**CTRL \$1 R** を押します。履歴には以前のコマンドがリストされ、これらは矢印キーを使用して選択できます。以下の例では、自動プロンプトモードの履歴が表示されています。  

```
$ aws
> aws 
        dynamodb list-tables
        s3 ls
```

## 自動プロンプトモード
<a name="cli-usage-auto-prompt-modes"></a>

AWS CLI バージョン 2 の自動プロンプトには、設定可能な 2 つのモードがあります。
+ **フルモード:** `aws` パラメータを使用して手動で呼び出すか、永続的に有効化したかにかかわらず、`--cli-auto-prompt` コマンドを実行しようとするたびに自動プロンプトを使用します。これには、完全なコマンドまたは不完全なコマンドを問わず、それらの後で **Enter** キーを押すことが含まれます。
+ **部分モード:** コマンドが不完全であるか、クライアント側の検証エラーのために実行できない場合に自動プロンプトを使用します。このモードは、既存のスクリプトまたはランブックがある場合、あるいはすべてのコマンドに対してプロンプトを表示するのではなく、不慣れなコマンドにのみ自動プロンプトを表示したい場合に特に便利です。

## 自動プロンプトの設定
<a name="cli-usage-auto-prompt-configure"></a>

自動プロンプトを設定するには、次の方法を優先順に使用することができます。
+ **コマンドラインオプション**は、単一のコマンドに対して自動プロンプトを有効化または無効化します。`--cli-auto-prompt` を使用して自動プロンプトを呼び出し、`--no-cli-auto-prompt` を使用して自動プロンプトを無効化してください。
+ **環境変数**では、`aws\$1cli\$1auto\$1prompt` 変数が使用されます。
+ **共有設定ファイル**では、`cli\$1auto\$1prompt` 設定が使用されます。