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().

Metode ini untuk memuat file untuk paramater tunggal. Untuk informasi tentang memuat beberapa parameter dengan satu file, lihatAWS CLI kerangka dan file input di AWS CLI.

catatan

Secara default, Windows PowerShell mengeluarkan teks sebagai UTF-16, yang bertentangan dengan pengkodean UTF-8 yang digunakan oleh file JSON 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 string JSON yang kompleks. Untuk menentukan file yang berisi nilai, tentukan URL file 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.

  • URL menyediakan 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 mengharapkan URL, seperti parameter yang mengidentifikasi URL AWS CloudFormation template. 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 melarikan diri dari dokumen JSON yang disematkan sebagai nilai dokumen JSON 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 kunci AES 256-bit biner 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 https:// URL http:// atau. 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 tersebut filename.json berisi data JSON berikut.

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

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

Memuat file sebagai nilai sintaks singkatan

Bila menggunakan sintaks singkatan di mana nilai besar atau kompleks, seringkali lebih mudah untuk memuat dalam file sebagai nilai. Untuk memuat file sebagai nilai sintaks singkatan, pemformatan akan sedikit berubah. Alih-alih key=value Anda akan menggunakan @= operator alih-alih = operator. @=Menandakan AWS CLI bahwa nilai harus dibaca sebagai jalur file dan bukan string. Contoh berikut menunjukkan pasangan kunci-nilai memuat file untuk nilainya.

Linux or macOS
--option key@=file://template.txt
Windows
--option "key1@=file://template.txt"

Contoh berikut menunjukkan memuat file sertifikat untuk aws rolesanywhere create-trust-anchor perintah.

$ aws rolesanywhere create-trust-anchor --name TrustAnchor \ --source sourceData={x509CertificateData@=file://root-ca.crt},sourceType="CERTIFICATE_BUNDLE" \ --enabled

Untuk informasi selengkapnya tentang sintaks singkatan, lihat. Menggunakan sintaks singkatan di AWS CLI