AWS CLI 의 스켈레톤 및 입력 파일 AWS CLI - AWS Command Line Interface

이 설명서는 의 버전 1 AWS CLI 전용입니다. 의 버전 2와 관련된 설명서는 버전 2 사용 설명서 를 AWS CLI참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS CLI 의 스켈레톤 및 입력 파일 AWS CLI

대부분의 AWS CLI 명령은 파일에서 모든 파라미터 입력을 허용합니다. 이러한 템플릿은 generate-cli-skeleton 옵션을 사용하여 생성할 수 있습니다.

AWS CLI 스켈레톤 및 입력 파일 정보

대부분의 AWS Command Line Interface (AWS CLI) 명령은 --cli-input-json 파라미터 를 사용하여 파일에서 모든 파라미터 입력을 수락하는 기능을 지원합니다.

이러한 동일한 명령은 편집하고 채울 수 있는 모든 --generate-cli-skeleton 파라미터가 포함된 JSON 형식의 파일을 생성하는 파라미터를 유용하게 제공합니다. 그러면 관련된 --cli-input-json 파라미터를 사용하여 명령을 실행하고 입력된 파일을 가리킬 수 있습니다.

중요

여러 AWS CLI 명령은 명령과 같은 개별 AWS API 작업에 직접 매핑되지 않습니다aws s3. 이러한 명령은 이 주제에서 다루는 --generate-cli-skeleton 또는 --cli-input-json 파라미터를 지원하지 않습니다. 특정 명령이 이러한 파라미터를 지원하는지 여부를 모르는 경우 다음 명령을 실행하여 service 그리고 command 관심 있는 이름이 있는 이름입니다.

$ aws service command help

지정된 명령이 지원하는 파라미터를 보여주는 Synopsis 섹션이 출력에 포함됩니다.

$ aws iam list-users help ... SYNOPSIS list-users ... [--cli-input-json] ... [--generate-cli-skeleton <value>] ...

--generate-cli-skeleton 파라미터를 사용하면 명령이 실행되지 않지만, 사용자 지정하여 이후 명령에 입력으로 사용할 수 있는 파라미터 템플릿을 생성하고 표시할 수 있습니다. 생성된 템플릿에는 명령이 지원하는 모든 파라미터가 포함됩니다.

--generate-cli-skeleton 파라미터는 다음 값 중 하나를 허용합니다.

  • input - 생성된 템플릿에는 형식으로 지정된 모든 입력 파라미터가 포함됩니다JSON. 이것이 기본값입니다.

  • output - 생성된 템플릿에는 형식으로 지정된 모든 출력 파라미터가 포함됩니다JSON.

AWS CLI 는 기본적으로 서비스의 에 대한 '래퍼'이므로 API스켈레톤 파일은 기본 파라미터 이름으로 모든 API 파라미터를 참조해야 합니다. 이는 AWS CLI 파라미터 이름과 다를 수 있습니다. 예를 들어 라는 AWS CLI 파라미터는 라는 AWS 서비스 API 파라미터에 매핑될 user-name 수 있습니다UserName(변경된 대문자 및 누락된 대시 표시). 실수를 방지하려면 --generate-cli-skeleton 옵션을 사용하여 “정확한” 파라미터 이름으로 템플릿을 생성하는 것이 좋습니다. 서비스의 API 참조 가이드를 참조하여 예상 파라미터 이름을 확인할 수도 있습니다. 템플릿에서 필요하지 않아 값을 지정하지 않을 파라미터를 모두 삭제할 수 있습니다.

예를 들어 다음 명령을 실행하면 Amazon Elastic Compute Cloud(Amazon EC2) 명령 에 대한 파라미터 템플릿이 생성됩니다run-instances.

JSON

다음 예제에서는 --generate-cli-skeleton 파라미터의 기본값(input)을 JSON 사용하여 형식이 지정된 템플릿을 생성하는 방법을 보여줍니다.

$ aws ec2 run-instances --generate-cli-skeleton
{ "DryRun": true, "ImageId": "", "MinCount": 0, "MaxCount": 0, "KeyName": "", "SecurityGroups": [ "" ], "SecurityGroupIds": [ "" ], "UserData": "", "InstanceType": "", "Placement": { "AvailabilityZone": "", "GroupName": "", "Tenancy": "" }, "KernelId": "", "RamdiskId": "", "BlockDeviceMappings": [ { "VirtualName": "", "DeviceName": "", "Ebs": { "SnapshotId": "", "VolumeSize": 0, "DeleteOnTermination": true, "VolumeType": "", "Iops": 0, "Encrypted": true }, "NoDevice": "" } ], "Monitoring": { "Enabled": true }, "SubnetId": "", "DisableApiTermination": true, "InstanceInitiatedShutdownBehavior": "", "PrivateIpAddress": "", "ClientToken": "", "AdditionalInfo": "", "NetworkInterfaces": [ { "NetworkInterfaceId": "", "DeviceIndex": 0, "SubnetId": "", "Description": "", "PrivateIpAddress": "", "Groups": [ "" ], "DeleteOnTermination": true, "PrivateIpAddresses": [ { "PrivateIpAddress": "", "Primary": true } ], "SecondaryPrivateIpAddressCount": 0, "AssociatePublicIpAddress": true } ], "IamInstanceProfile": { "Arn": "", "Name": "" }, "EbsOptimized": true }

명령 스켈레톤 생성

파라미터 스켈레톤 파일을 생성하고 사용하려면
  1. --generate-cli-skeleton 파라미터로 명령을 실행하여 JSON 를 생성하고 출력을 파일로 전달하여 저장합니다.

    JSON
    $ aws ec2 run-instances --generate-cli-skeleton input > ec2runinst.json
  2. 텍스트 편집기에서 파라미터 스켈레톤 파일을 열고 필요하지 않은 파라미터를 제거합니다. 예를 들어, 템플릿을 다음과 같이 줄일 수 있습니다. 파일이 여전히 유효한지 JSON 필요하지 않은 요소를 제거한 후에도 유효한지 확인하세요.

    JSON
    { "DryRun": true, "ImageId": "", "KeyName": "", "SecurityGroups": [ "" ], "InstanceType": "", "Monitoring": { "Enabled": true } }

    이 예제에서는 Amazon EC2드라이 런 기능을 사용하도록 DryRun 파라미터를 true로 설정한 상태로 둡니다. 이 기능을 사용하면 실제로 리소스를 생성하거나 수정하지 않고도 명령을 안전하게 테스트할 수 있습니다.

  3. 나머지 값을 시나리오에 적합한 값으로 채우십시오. 이 예제에서는 사용할 Amazon Machine Image(AMI)의 인스턴스 유형, 키 이름, 보안 그룹 및 식별자를 제공합니다. 이 예제에서는 기본 AWS 리전을 가정합니다. AMI ami-dfc39aefus-west-2 리전에서 호스팅되는 64비트 Amazon Linux 이미지입니다. 다른 리전을 사용하는 경우 를 사용하려면 올바른 AMI ID를 찾아야 합니다.

    JSON
    { "DryRun": true, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  4. file:// 접두사를 사용해 완료된 템플릿 파일을 --cli-input-json 파라미터로 전달하여 완료된 파라미터로 명령을 실행합니다. 는 경로를 현재 작업 디렉터리를 기준으로 AWS CLI 해석하므로 다음 예제에서는 경로가 없는 파일 이름만 표시하므로 현재 작업 디렉터리에서 파일을 직접 찾습니다.

    JSON
    $ aws ec2 run-instances --cli-input-json file://ec2runinst.json
    A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.

    건식 실행 오류는 JSON 가 올바르게 형성되었고 파라미터 값이 유효함을 나타냅니다. 출력에 다른 문제가 보고되면 문제를 해결하고 "Request would have succeeded" 메시지가 표시될 때까지 이전 단계를 반복합니다.

  5. 이제 테스트 실행을 비활성화하기 위해 DryRun 파라미터를 false로 설정할 수 있습니다.

    JSON
    { "DryRun": false, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  6. 명령을 실행하고 run-instances 실제로 Amazon EC2 인스턴스를 시작하고 성공적인 시작으로 생성된 세부 정보를 표시합니다. 출력 형식은 입력 파라미터 템플릿의 형식과 별도로 --output 파라미터에 의해 제어됩니다.

    JSON
    $ aws ec2 run-instances --cli-input-json file://ec2runinst.json --output json
    { "OwnerId": "123456789012", "ReservationId": "r-d94a2b1", "Groups": [], "Instances": [ ...