Memuat parameter dari file di AWS CLI - AWS Command Line Interface

Dokumentasi ini AWS CLI hanya untuk Versi 1. Untuk dokumentasi yang terkait dengan Versi 2 AWS CLI, lihat Panduan Pengguna Versi 2.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memuat parameter dari file di AWS CLI

Beberapa parameter mengharapkan nama file sebagai argumen, dari mana AWS CLI memuat data. Parameter lain memungkinkan Anda untuk menentukan nilai parameter sebagai teks yang diketik pada baris perintah atau membaca dari file. Apakah file diperlukan atau opsional, Anda harus menyandikan file dengan benar sehingga AWS CLI dapat memahaminya. Pengkodean file harus sesuai dengan lokal default sistem pembacaan. Anda dapat menentukan ini dengan menggunakan metode Pythonlocale.getpreferredencoding().

catatan

Secara default, Windows PowerShell mengeluarkan teks sebagai UTF -16, yang bertentangan dengan pengkodean UTF -8 yang digunakan oleh JSON file dan banyak sistem Linux. Kami menyarankan Anda menggunakan -Encoding ascii dengan PowerShell Out-File perintah Anda untuk memastikan AWS CLI dapat membaca file yang dihasilkan.

Cara memuat parameter dari file

Terkadang lebih mudah untuk memuat nilai parameter dari file alih-alih mencoba mengetikkan semuanya sebagai nilai parameter baris perintah, seperti ketika parameternya adalah JSON string yang kompleks. Untuk menentukan file yang berisi nilai, tentukan file URL dalam format berikut.

file://complete/path/to/file
  • Dua karakter garis miring '/' pertama adalah bagian dari spesifikasi. Jika jalur yang diperlukan dimulai dengan '/', hasilnya adalah tiga karakter garis miring:file:///folder/file.

  • URLMenyediakan path ke file yang berisi konten parameter yang sebenarnya.

  • Saat menggunakan file dengan spasi atau karakter khusus, ikuti aturan mengutip dan melarikan diri untuk terminal Anda.

catatan

Perilaku ini dinonaktifkan secara otomatis untuk parameter yang sudah mengharapkanURL, seperti parameter yang mengidentifikasi AWS CloudFormation templateURL. Anda juga dapat menonaktifkan perilaku ini dengan menonaktifkan cli_follow_urlparampengaturan dalam file AWS CLI konfigurasi Anda.

Jalur file dalam contoh berikut ditafsirkan relatif terhadap direktori kerja saat ini.

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"

Opsi file:// awalan mendukung ekspansi bergaya Unix, termasuk "~/“," “, dan"”./. ../ Pada Windows, ekspresi ~/ "" meluas ke direktori pengguna Anda, disimpan dalam variabel %USERPROFILE% lingkungan. Misalnya, pada Windows 10 Anda biasanya memiliki direktori pengguna di bawahC:\Users\UserName\.

Anda masih harus keluar dari JSON dokumen yang disematkan sebagai nilai JSON dokumen lain.

$ 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\"}" }

File biner

Untuk perintah yang mengambil data biner sebagai parameter, tentukan bahwa data tersebut adalah konten biner dengan menggunakan fileb:// awalan. Perintah yang menerima data biner meliputi:

  • aws ec2 run-instances:--user-dataparameter.

  • aws s3api put-object:--sse-customer-keyparameter.

  • aws kms decrypt:--ciphertext-blobparameter.

Contoh berikut menghasilkan AES kunci biner 256-bit menggunakan alat baris perintah Linux, dan kemudian menyediakannya ke Amazon S3 untuk mengenkripsi sisi server file yang diunggah.

$ 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\"" }

File jarak jauh

Ini AWS CLI juga mendukung pemuatan parameter dari file yang dihosting di internet dengan file http:// atau https://URL. Contoh berikut mereferensikan file yang disimpan dalam bucket Amazon S3. Ini memungkinkan Anda untuk mengakses file parameter dari komputer mana pun, tetapi itu mengharuskan wadah dapat diakses publik.

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

Contoh sebelumnya mengasumsikan bahwa file filename.json berisi data berikut. JSON

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

Untuk contoh lain yang mereferensikan file yang berisi parameter JSON -formatted, lihat. Melampirkan kebijakan IAM terkelola ke pengguna