의 파일에서 파라미터 로드 AWS CLI - AWS Command Line Interface

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

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

의 파일에서 파라미터 로드 AWS CLI

일부 파라미터는 파일 이름을 인수로 예상하며, 이 인수에서 데이터를 AWS CLI 로드합니다. 다른 어떤 파라미터는 파라미터 값을 명령줄에 입력된 텍스트 또는 파일에서 읽은 텍스트로 지정할 수 있습니다. 파일이 필요하든 선택 사항이든 가 파일을 이해할 AWS CLI 수 있도록 파일을 올바르게 인코딩해야 합니다. 파일의 인코딩은 읽는 시스템의 기본 로캘과 일치해야 합니다. Python locale.getpreferredencoding() 메서드를 사용하여 이를 확인할 수 있습니다.

참고

기본적으로 Windows는 텍스트를 UTF-16으로 PowerShell 출력하며, 이는 JSON 파일 및 많은 Linux 시스템에서 사용되는 UTF-8 인코딩과 충돌합니다. 가 결과 파일을 읽을 AWS CLI 수 있도록 명령과 -Encoding ascii 함께 PowerShell Out-File 를 사용하는 것이 좋습니다.

파일에서 파라미터를 로드하는 방법

파라미터가 복잡한 JSON 문자열인 경우와 같이 모든 파라미터를 명령줄 파라미터 값으로 입력하는 대신 파일에서 파라미터 값을 로드하는 것이 편리할 때도 있습니다. 값이 포함된 파일을 지정하려면 URL 다음 형식으로 파일을 지정합니다.

file://complete/path/to/file
  • 처음 두 개의 슬래시 '/' 문자는 사양의 일부입니다. 필수 경로가 '/'로 시작하면 결과는 슬래시 문자 세 개(file:///folder/file)입니다.

  • 는 실제 파라미터 콘텐츠가 포함된 파일의 경로를 URL 제공합니다.

  • 공백이나 특수 문자가 있는 파일을 사용하는 경우 터미널의 인용 및 이스케이프 규칙을 따릅니다.

참고

AWS CloudFormation 템플릿 를 식별하는 파라미터URL와 같이 이미 를 예상하는 파라미터의 경우 이 동작은 자동으로 비활성화됩니다URL. AWS CLI 구성 파일에서 cli_follow_urlparam 설정을 비활성화하여 이 동작을 비활성화할 수도 있습니다.

다음 예제의 파일 경로는 현재 작업 디렉터리를 기준으로 해석됩니다.

Linux or macOS
// Read from a file in the current directory $ aws ec2 describe-instances --filters file://filter.json // Read from a file in /tmp $ aws ec2 describe-instances --filters file:///tmp/filter.json // Read from a file with a filename with whitespaces $ aws ec2 describe-instances --filters 'file://filter content.json'
Windows command prompt
// Read from a file in C:\temp C:\> aws ec2 describe-instances --filters file://C:\temp\filter.json // Read from a file with a filename with whitespaces C:\> aws ec2 describe-instances --filters "file://C:\temp\filter content.json"

file:// 접두사 옵션은 "~/", "./", "../"를 포함한 Unix 스타일의 확장을 지원합니다. Windows에서는 "~/" 표현식이 %USERPROFILE% 환경 변수에 저장된 사용자 디렉터리로 확장합니다. 예를 들어, Windows 10은 일반적으로 C:\Users\UserName\ 아래에 사용자 디렉터리가 있습니다.

다른 JSON 문서의 값으로 포함된 JSON 문서는 여전히 이스케이프해야 합니다.

$ aws sqs create-queue --queue-name my-queue --attributes file://attributes.json

attributes.json

{ "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-west-2:0123456789012:deadletter\", \"maxReceiveCount\":\"5\"}" }

이진 파일

이진 데이터를 파라미터로 갖고 있는 명령의 경우 fileb:// 접두사를 사용하여 데이터가 이진 콘텐츠임을 지정합니다. 이진 데이터를 수락하는 명령은 다음과 같습니다.

  • aws ec2 run-instances: --user-data 파라미터.

  • aws s3api put-object: --sse-customer-key 파라미터.

  • aws kms decrypt: --ciphertext-blob 파라미터.

다음 예제에서는 Linux 명령줄 도구를 사용하여 바이너리 256비트 AES 키를 생성한 다음 Amazon S3에 제공하여 업로드된 파일 서버 측을 암호화합니다.

$ dd if=/dev/urandom bs=1 count=32 > sse.key 32+0 records in 32+0 records out 32 bytes (32 B) copied, 0.000164441 s, 195 kB/s $ aws s3api put-object \ --bucket amzn-s3-demo-bucket \ --key test.txt \ --body test.txt \ --sse-customer-key fileb://sse.key \ --sse-customer-algorithm AES256 { "SSECustomerKeyMD5": "iVg8oWa8sy714+FjtesrJg==", "SSECustomerAlgorithm": "AES256", "ETag": "\"a6118e84b76cf98bf04bbe14b6045c6c\"" }

원격 파일

AWS CLI 또한 는 http:// 또는 https:// 를 사용하여 인터넷에 호스팅된 파일에서 파라미터 로드를 지원합니다URL. 다음 예제에서는 Amazon S3 버킷에 저장된 파일을 참조합니다. 이렇게 하면 모든 컴퓨터에서 파라미터 파일에 액세스할 수 있지만, 컨테이너에 공개적으로 액세스할 수 있어야 합니다.

$ aws ec2 run-instances \ --image-id ami-12345678 \ --block-device-mappings http://amzn-s3-demo-bucket.s3.amazonaws.com/filename.json

이전 예제에서는 파일에 다음 JSON 데이터가 filename.json 포함되어 있다고 가정합니다.

[ { "DeviceName": "/dev/sdb", "Ebs": { "VolumeSize": 20, "DeleteOnTermination": false, "VolumeType": "standard" } } ]

JSON형식이 지정된 파라미터가 포함된 파일을 참조하는 또 다른 예는 섹션을 참조하세요사용자에게 IAM 관리형 정책 연결.