

# AWS CLI에서 명령 프롬프트 활성화 및 사용
<a name="cli-usage-parameters-prompting"></a>

`aws` 명령을 실행할 때 명령, 파라미터 및 리소스에 대한 AWS CLI 버전 2 프롬프트를 사용할 수 있습니다.

**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
```

**파라미터 완성**  
명령을 입력하면 자동 프롬프트가 파라미터를 제안하기 시작합니다. 파라미터에 대한 설명에는 값 유형 및 파라미터에 대한 설명이 포함됩니다. 필수 파라미터가 먼저 나열되고 필요에 따라 레이블이 지정됩니다. 다음 예제에서는 `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`을 사용하는 경우 자동 프롬프트는 선택할 수 있는 리전을 나열합니다. 다음 예제에서는 `--region` 명령에 대해 `aws dynamodb list-tables`을 입력한 후 자동 프롬프트가 알파벳 순서로 리전을 제안합니다.  

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

**퍼지 검색**  
특정 문자 세트를 포함하는 명령 및 값을 완성합니다. 다음 예제에서는 `eu` 명령에 대해 `--region eu`을 입력한 후 자동 프롬프트가 `aws dynamodb list-tables`가 포함된 리전을 제안합니다.  

```
$ 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에 대한 자동 프롬프트에는 두 가지 모드를 구성할 수 있습니다.
+ **전체 모드:** `aws` 파라미터를 사용하여 호출하든 영구적으로 활성화하든 `--cli-auto-prompt` 명령을 실행할 때마다 자동 프롬프트를 사용합니다. 여기에는 전체 명령 또는 불완전한 명령 다음에 **Enter** 키를 누르는 것이 포함됩니다.
+ **부분 모드:** 명령이 불완전하거나 클라이언트 측 유효성 검사 오류로 인해 실행할 수 없는 경우 자동 프롬프트를 사용합니다. 이 모드는 기존 스크립트 또는 Runbook이 있거나, 모든 명령에 대한 프롬프트가 아니라 익숙하지 않은 명령에 대해서만 자동 프롬프트를 사용하려는 경우 특히 유용합니다.

## 자동 프롬프트 구성
<a name="cli-usage-auto-prompt-configure"></a>

자동 프롬프트를 구성하려면 우선 순위에 따라 다음 방법을 사용할 수 있습니다.
+ **명령줄 옵션**으로 단일 명령에 대해 자동 프롬프트를 사용하거나 사용하지 않도록 설정합니다. 자동 프롬프트를 호출하려면 `--cli-auto-prompt`를 사용하고 자동 프롬프트를 비활성화하려면 `--no-cli-auto-prompt`를 사용합니다.
+ **환경 변수**에는 `aws\$1cli\$1auto\$1prompt` 변수를 사용합니다.
+ **공유 구성 파일**에는 `cli\$1auto\$1prompt` 설정을 사용합니다.