AWS CLIkerangka dan file masukan - 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.

AWS CLIkerangka dan file masukan

Sebagian besar AWS CLI perintah menerima semua input parameter dari file. Template ini dapat dibuat menggunakan generate-cli-skeleton opsi.

Tentang AWS CLI kerangka dan file input

Sebagian besar perintah AWS Command Line Interface (AWS CLI) mendukung kemampuan untuk menerima semua input parameter dari file menggunakan --cli-input-yaml parameter --cli-input-json s.

penting

Beberapa AWS CLI perintah tidak memetakan langsung ke operasi AWS API individual, seperti aws s3perintah aws s3 . Perintah semacam itu tidak mendukung --cli-input-yaml parameter --generate-cli-skeleton atau --cli-input-json yang dijelaskan dalam topik ini. Jika Anda tidak tahu apakah perintah tertentu mendukung parameter ini, jalankan perintah berikut, ganti nama layanan dan perintah dengan yang Anda minati.

$ aws service command help

Outputnya mencakup Synopsis bagian yang menunjukkan parameter yang didukung oleh perintah yang ditentukan.

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

--generate-cli-skeletonParameter menyebabkan perintah tidak berjalan, melainkan untuk menghasilkan dan menampilkan template parameter yang dapat Anda sesuaikan dan gunakan sebagai input pada perintah selanjutnya. Template yang dihasilkan mencakup semua parameter yang didukung perintah.

--generate-cli-skeletonParameter menerima salah satu nilai berikut:

  • input— Template yang dihasilkan mencakup semua parameter input yang diformat sebagai JSON. Ini adalah nilai default.

  • output- Template yang dihasilkan mencakup semua parameter output yang diformat sebagai JSON.

Karena pada dasarnya AWS CLI adalah “pembungkus” di sekitar API layanan, file kerangka mengharapkan Anda untuk mereferensikan semua parameter dengan nama parameter API yang mendasarinya. Ini mungkin berbeda dari nama AWS CLI parameter. Misalnya, AWS CLI parameter bernama user-name mungkin memetakan ke parameter API AWS layanan bernama UserName (perhatikan kapitalisasi yang diubah dan tanda hubung yang hilang). Kami menyarankan Anda menggunakan --generate-cli-skeleton opsi untuk menghasilkan template dengan nama parameter “benar” untuk menghindari kesalahan. Anda juga dapat mereferensikan Panduan Referensi API agar layanan dapat melihat nama parameter yang diharapkan. Anda dapat menghapus parameter apa pun dari templat yang tidak diperlukan dan yang tidak ingin Anda berikan nilainya.

Misalnya, jika Anda menjalankan perintah berikut, itu akan menghasilkan template parameter untuk perintah Amazon Elastic Compute Cloud (Amazon EC2). run-instances

JSON

Contoh berikut menunjukkan bagaimana untuk menghasilkan template diformat dalam JSON dengan menggunakan nilai default (input) untuk parameter. --generate-cli-skeleton

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

Menghasilkan kerangka perintah

Untuk menghasilkan dan menggunakan file kerangka parameter
  1. JSON
    $ aws ec2 run-instances --generate-cli-skeleton input > ec2runinst.json
  2. Buka file kerangka parameter di editor teks Anda dan hapus salah satu parameter yang tidak Anda butuhkan. Misalnya, Anda dapat menghapus template ke bawah ini. Pastikan file tersebut masih valid JSON setelah Anda menghapus elemen yang tidak Anda butuhkan.

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

    Dalam contoh ini, kita membiarkan DryRun parameter disetel true untuk menggunakan fitur dry run Amazon EC2. Fitur ini memungkinkan Anda menguji perintah dengan aman tanpa benar-benar membuat atau memodifikasi sumber daya apa pun.

  3. Isi nilai yang tersisa dengan nilai yang sesuai untuk skenario Anda. Dalam contoh ini, kami menyediakan jenis instans, nama kunci, grup keamanan, dan pengenal Amazon Machine Image (AMI) untuk digunakan. Contoh ini mengasumsikan AWS Region default. AMI ami-dfc39aef adalah gambar Linux Amazon 64-bit yang dihosting di us-west-2 Wilayah. Jika Anda menggunakan Wilayah yang berbeda, Anda harus menemukan ID AMI yang benar untuk digunakan.

    JSON
    { "DryRun": true, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  4. Jalankan perintah dengan parameter lengkap dengan meneruskan file template yang sudah ke cli-input-yaml parameter --cli-input-json dengan menggunakan file:// awalan. AWS CLIMenafsirkan jalur menjadi relatif terhadap direktori kerja Anda saat ini, jadi dalam contoh berikut yang hanya menampilkan nama file tanpa jalur, ia mencari file langsung di direktori kerja saat ini.

    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.

    Kesalahan dry run menunjukkan bahwa JSON dengan benar dan nilai parameternya valid. Jika masalah lain dilaporkan dalam output, perbaiki dan ulangi langkah sebelumnya hingga pesan Request would have succeeded "" ditampilkan.

  5. Sekarang Anda dapat mengatur DryRun parameter false untuk menonaktifkan dry run.

    JSON
    { "DryRun": false, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  6. Jalankan perintah, dan run-instances benar-benar meluncurkan instans Amazon EC2 dan menampilkan detail yang dihasilkan oleh peluncuran yang berhasil. Format output dikontrol oleh --output parameter, terpisah dari format template parameter input Anda.

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