

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

# Menentukan nilai parameter dalam AWS CLI
<a name="cli-usage-parameters"></a>

Banyak parameter yang digunakan dalam AWS Command Line Interface (AWS CLI) adalah string sederhana atau nilai numerik, seperti nama kunci-pasangan `my-key-pair` dalam contoh perintah berikut`aws ec2 create-key-pair`. 

```
$ aws ec2 create-key-pair --key-name my-key-pair
```

Pemformatan untuk perintah dapat bervariasi antar terminal. Misalnya, sebagian besar terminal peka huruf besar/kecil tetapi Powershell tidak peka huruf besar/kecil. Ini berarti dua contoh perintah berikut akan menghasilkan hasil yang berbeda untuk terminal peka huruf besar/kecil saat mereka melihat `MyFile*.txt` dan `myfile*.txt` sebagai parameter **yang berbeda**. 

Namun, PowerShell akan memproses permintaan ini sama seperti yang terlihat `MyFile*.txt` dan `myfile*.txt` sebagai parameter yang **sama**. Contoh perintah berikut menunjukkan paramater ini menggunakan perintah: `aws s3 cp`

```
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --include "MyFile*.txt"
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --include "myfile*.txt"
```

*Untuk informasi selengkapnya tentang PowerShell case insensitivy, lihat [About\$1case-sensitivity](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_case-sensitivity) dalam dokumentasi. PowerShell*

Terkadang Anda perlu menggunakan tanda kutip atau literal di sekitar string yang menyertakan karakter khusus atau spasi. Aturan seputar pemformatan ini juga dapat bervariasi antar terminal. Untuk informasi selengkapnya tentang menggunakan tanda kutip di sekitar parameter kompleks, lihat[Menggunakan tanda kutip dan literal dengan string di AWS CLI](cli-usage-parameters-quoting-strings.md).

Topik-topik ini mencakup aturan pemformatan terminal yang paling umum. Jika Anda mengalami masalah dengan terminal mengenali nilai parameter Anda, pastikan untuk meninjau topik di bagian ini dan juga untuk memeriksa dokumentasi terminal Anda untuk aturan sintaks spesifik mereka.

**Topics**
+ [

# Jenis parameter umum di AWS CLI
](cli-usage-parameters-types.md)
+ [

# Menggunakan tanda kutip dan literal dengan string di AWS CLI
](cli-usage-parameters-quoting-strings.md)
+ [

# Memuat parameter dari file di AWS CLI
](cli-usage-parameters-file.md)
+ [

# AWS CLI kerangka dan file input di AWS CLI
](cli-usage-skeleton.md)
+ [

# Menggunakan sintaks singkatan di AWS CLI
](cli-usage-shorthand.md)

# Jenis parameter umum di AWS CLI
<a name="cli-usage-parameters-types"></a>

Bagian ini menjelaskan beberapa jenis parameter umum dan format khas yang diperlukan. 

Jika Anda mengalami masalah dalam memformat parameter untuk perintah tertentu, periksa bantuan dengan memasukkan **help** setelah nama perintah. Bantuan untuk setiap subperintah mencakup nama dan deskripsi opsi. Jenis parameter opsi tercantum dalam tanda kurung. Untuk informasi selengkapnya tentang melihat bantuan, lihat[Mengakses bantuan dan sumber daya untuk AWS CLI](cli-usage-help.md).

**Topics**
+ [

## String
](#parameter-type-string)
+ [

## Stempel waktu
](#parameter-type-timestamp)
+ [

## Daftar
](#parameter-type-list)
+ [

## Boolean
](#parameter-type-boolean)
+ [

## Bilangan Bulat
](#parameter-type-integer)
+ [

## Biner/gumpalan (objek besar biner) dan gumpalan streaming
](#parameter-type-blobs)
+ [

## Peta
](#parameter-type-map)
+ [

## Dokumen
](#parameter-type-document)

## String
<a name="parameter-type-string"></a>

Parameter string dapat berisi karakter alfanumerik, simbol, dan spasi putih dari set karakter [ASCII](https://wikipedia.org/wiki/ASCII). String yang berisi spasi putih harus dikelilingi oleh tanda kutip. Kami menyarankan Anda untuk tidak menggunakan simbol atau spasi putih selain karakter spasi standar dan untuk mematuhi [aturan kutipan](cli-usage-parameters-quoting-strings.md) terminal Anda untuk mencegah hasil yang tidak terduga.

Beberapa parameter string dapat menerima data biner dari file. Lihat [File biner](cli-usage-parameters-file.md#cli-usage-parameters-file-binary) sebagai contoh. 

## Stempel waktu
<a name="parameter-type-timestamp"></a>

Stempel waktu diformat sesuai dengan [standar ISO](https://www.iso.org/iso-8601-date-and-time-format.html) 8601. Ini sering disebut sebagai parameter "`DateTime`" atau `Date` "”. 

```
$ aws ec2 describe-spot-price-history --start-time 2014-10-13T19:00:00Z
```

Format yang dapat diterima meliputi:
+ *YYYY*- *MM* - *DD* T*hh*:*mm*: *ss.sss**TZD (UTC)*, misalnya, 2014-10-01T 20:30:00.000 Z
+ *YYYY*- *MM* - *DD* T*hh*:*mm*: *ss.sss**TZD (with offset)*, misalnya, 2014-10-01T 12:30:00.000-08:00
+ *YYYY*- *MM* -*DD*, misalnya, 2014-10-01
+ Waktu Unix dalam hitungan detik, misalnya, 1412195400. Ini kadang-kadang disebut sebagai [waktu Unix Epoch](https://wikipedia.org/wiki/Unix_time) dan mewakili jumlah detik sejak tengah malam, 1 Januari 1970 UTC.

Secara default, AWS CLI versi 2 menerjemahkan semua DateTime nilai ***respons*** ke format ISO 8601.

Anda dapat mengatur format stempel waktu dengan menggunakan pengaturan `cli\$1timestamp\$1format` file.

## Daftar
<a name="parameter-type-list"></a>

Satu atau lebih string dipisahkan oleh spasi. Jika salah satu item string berisi spasi, Anda harus meletakkan tanda kutip di sekitar item itu. Amati [aturan kutipan](cli-usage-parameters-quoting-strings.md) terminal Anda untuk mencegah hasil yang tidak terduga.

```
$ aws ec2 describe-spot-price-history --instance-types m1.xlarge m1.medium
```

## Boolean
<a name="parameter-type-boolean"></a>

Bendera biner yang mengaktifkan atau menonaktifkan opsi. Misalnya, `ec2 describe-spot-price-history` memiliki `--dry-run` parameter Boolean yang, ketika ditentukan, memvalidasi kueri dengan layanan tanpa benar-benar menjalankan kueri. 

```
$ aws ec2 describe-spot-price-history --dry-run
```

Output menunjukkan apakah perintah itu terbentuk dengan baik. Perintah ini juga menyertakan `--no-dry-run` versi parameter yang dapat Anda gunakan untuk secara eksplisit menunjukkan bahwa perintah harus dijalankan secara normal. Menyertakannya tidak perlu karena ini adalah perilaku default. 

## Bilangan Bulat
<a name="parameter-type-integer"></a>

Nomor bulat yang tidak ditandatangani.

```
$ aws ec2 describe-spot-price-history --max-items 5
```

## Biner/gumpalan (objek besar biner) dan gumpalan streaming
<a name="parameter-type-blobs"></a>

Dalam AWS CLI, Anda dapat melewatkan nilai biner sebagai string langsung pada baris perintah. Ada dua jenis gumpalan:
+ [Gumpalan](#parameter-type-blob)
+ [Gumpalan streaming](#parameter-type-streaming-blob)

### blob
<a name="parameter-type-blob"></a>

Untuk meneruskan nilai ke parameter dengan tipe`blob`, Anda harus menentukan jalur ke file lokal yang berisi data biner menggunakan `fileb://` awalan. File yang direferensikan menggunakan `fileb://` awalan selalu diperlakukan sebagai biner mentah yang tidak dikodekan. Jalur yang ditentukan ditafsirkan sebagai relatif terhadap direktori kerja saat ini. Misalnya, `--plaintext` parameter untuk `aws kms encrypt` adalah gumpalan.

```
$ aws kms encrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --plaintext fileb://ExamplePlaintextFile \
    --output text \
    --query CiphertextBlob | base64 \
    --decode > ExampleEncryptedFile
```

**catatan**  
Untuk kompatibilitas mundur, Anda dapat menggunakan `file://` awalan. Ada dua format yang digunakan berdasarkan pengaturan file `cli\$1binary\$1format` atau opsi baris `--cli-binary-format` perintah:  
Default untuk AWS CLI versi 2. Jika nilai pengaturan adalah`base64`, file yang direferensikan menggunakan `file://` awalan diperlakukan sebagai teks berenkode base64. 
Default untuk AWS CLI versi 1. Jika nilai pengaturan adalah`raw-in-base64-out`, file yang direferensikan menggunakan `file://` awalan dibaca sebagai teks dan kemudian AWS CLI upaya untuk menyandikannya ke biner.
Untuk informasi selengkapnya, lihat opsi pengaturan file `cli\$1binary\$1format` atau baris `--cli-binary-format` perintah.

### Gumpalan streaming
<a name="parameter-type-streaming-blob"></a>

Gumpalan streaming seperti `aws cloudsearchdomain upload-documents` tidak menggunakan awalan. Sebagai gantinya, parameter blob streaming diformat menggunakan jalur file langsung. Contoh berikut menggunakan path file langsung `document-batch.json` untuk `aws cloudsearchdomain upload-documents` perintah:

```
$ aws cloudsearchdomain upload-documents \
    --endpoint-url https://doc-my-domain.us-west-1.cloudsearch.amazonaws.com \
    --content-type application/json \
    --documents document-batch.json
```

## Peta
<a name="parameter-type-map"></a>

[Satu set pasangan kunci-nilai ditentukan dalam JSON atau dengan menggunakan sintaks singkatan CLI.](cli-usage-shorthand.md) Contoh JSON berikut membaca item dari tabel Amazon DynamoDB bernama *my-table* dengan parameter peta,. `--key` Parameter menentukan kunci utama bernama *id* dengan nilai angka *1* dalam struktur JSON bersarang.

Untuk penggunaan JSON yang lebih maju di baris perintah, pertimbangkan untuk menggunakan prosesor JSON baris perintah, seperti`jq`, untuk membuat string JSON. Untuk informasi lebih lanjut tentang`jq`, lihat [repositori jq](http://stedolan.github.io/jq/) di. *GitHub*

```
$ aws dynamodb get-item --table-name my-table --key '{"id": {"N":"1"}}'

{
    "Item": {
        "name": {
            "S": "John"
        },
        "id": {
            "N": "1"
        }
    }
}
```

## Dokumen
<a name="parameter-type-document"></a>

**catatan**  
[Sintaks singkatan](cli-usage-shorthand.md) tidak kompatibel dengan jenis dokumen.

Jenis dokumen digunakan untuk mengirim data tanpa perlu menanamkan JSON di dalam string. Jenis dokumen memungkinkan layanan menyediakan skema arbitrer bagi Anda untuk menggunakan tipe data yang lebih fleksibel. 

Ini memungkinkan untuk mengirim data JSON tanpa perlu melarikan diri dari nilai. Misalnya, alih-alih menggunakan input JSON yang lolos berikut:

```
{"document": "{\"key\":true}"}
```

Anda dapat menggunakan jenis dokumen berikut:

```
{"document": {"key": true}}
```

### Nilai yang valid untuk jenis dokumen
<a name="parameter-type-document-valid"></a>

Karena sifat fleksibel dari jenis dokumen, ada beberapa jenis nilai yang valid. Nilai-nilai yang valid meliputi:

**String**  

```
--option '"value"'
```

**Number**  

```
--option 123
--option 123.456
```

**Boolean**  

```
--option true
```

**Nol**  

```
--option null
```

**Susunan**  

```
--option '["value1", "value2", "value3"]'
--option '["value", 1, true, null, ["key1", 2.34], {"key2": "value2"}]'
```

**Objek**  

```
--option '{"key": "value"}'
--option '{"key1": "value1", "key2": 123, "key3": true, "key4": null, "key5": ["value3", "value4"], "key6": {"value5": "value6"}'
```

# Menggunakan tanda kutip dan literal dengan string di AWS CLI
<a name="cli-usage-parameters-quoting-strings"></a>

Ada terutama dua cara tanda kutip tunggal dan ganda digunakan dalam AWS CLI.
+ [Menggunakan tanda kutip di sekitar string yang berisi spasi putih](#cli-usage-parameters-quoting-strings-around)
+ [Menggunakan tanda kutip di dalam string](#cli-usage-parameters-quoting-strings-containing)

## Menggunakan tanda kutip di sekitar string yang berisi spasi putih
<a name="cli-usage-parameters-quoting-strings-around"></a>

Nama parameter dan nilainya dipisahkan oleh spasi pada baris perintah. Jika nilai string berisi spasi tertanam, maka Anda harus mengelilingi seluruh string dengan tanda kutip untuk AWS CLI mencegah salah menafsirkan ruang sebagai pembagi antara nilai dan nama parameter berikutnya. Jenis tanda kutip yang Anda gunakan tergantung pada sistem operasi yang Anda gunakan. AWS CLI 

------
#### [ Linux and macOS ]

Gunakan tanda kutip tunggal `' '` 

```
$ aws ec2 create-key-pair --key-name 'my key pair'
```

Untuk informasi selengkapnya tentang penggunaan tanda kutip, lihat dokumentasi pengguna untuk shell pilihan Anda.

------
#### [ PowerShell ]

**Kutipan tunggal (disarankan)**

Tanda kutip tunggal `' '` disebut `verbatim` string. String diteruskan ke perintah persis seperti yang Anda ketikkan, yang berarti PowerShell variabel tidak akan melewatinya.

```
PS C:\> aws ec2 create-key-pair --key-name 'my key pair'
```

**Kutipan ganda**

Tanda kutip ganda `" "` disebut `expandable` string. Variabel dapat dilewatkan dalam string yang dapat diperluas.

```
PS C:\> aws ec2 create-key-pair --key-name "my key pair"
```

Untuk informasi selengkapnya tentang menggunakan tanda kutip, lihat [Tentang Aturan Mengutip](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7) di *Microsoft PowerShell Docs*.

------
#### [ Windows command prompt ]

Gunakan tanda `" "` kutip ganda.

```
C:\> aws ec2 create-key-pair --key-name "my key pair"
```

------

Secara opsional, Anda dapat memisahkan nama parameter dari nilai dengan tanda sama dengan `=` bukan spasi. Ini biasanya diperlukan hanya jika nilai parameter dimulai dengan tanda hubung.

```
$ aws ec2 delete-key-pair --key-name=-mykey
```

## Menggunakan tanda kutip di dalam string
<a name="cli-usage-parameters-quoting-strings-containing"></a>

String mungkin berisi tanda kutip, dan shell Anda mungkin memerlukan kutipan keluar agar berfungsi dengan baik. Salah satu jenis nilai parameter umum adalah string JSON. Ini kompleks karena mencakup spasi dan tanda kutip ganda `" "` di sekitar setiap nama elemen dan nilai dalam struktur JSON. Cara memasukkan parameter yang berformat JSON pada baris perintah berbeda-beda tergantung sistem operasi Anda. 

Untuk penggunaan JSON yang lebih maju di baris perintah, pertimbangkan untuk menggunakan prosesor JSON baris perintah, seperti`jq`, untuk membuat string JSON. Untuk informasi lebih lanjut tentang`jq`, lihat [repositori jq](http://stedolan.github.io/jq/) di. *GitHub*

------
#### [ Linux and macOS ]

Untuk Linux dan macOS untuk menafsirkan string secara harfiah menggunakan tanda kutip tunggal `' '` untuk melampirkan struktur data JSON, seperti pada contoh berikut. Anda tidak perlu melepaskan tanda kutip ganda yang disematkan dalam string JSON, karena mereka diperlakukan secara harfiah. Karena JSON terlampir dalam tanda kutip tunggal, setiap tanda kutip tunggal dalam string harus diloloskan, ini biasanya dilakukan dengan menggunakan garis miring terbalik sebelum kutipan tunggal. `\'`

```
$ aws ec2 run-instances \
    --image-id ami-12345678 \
    --block-device-mappings '[{"DeviceName":"/dev/sdb","Ebs":{"VolumeSize":20,"DeleteOnTermination":false,"VolumeType":"standard"}}]'
```

Untuk informasi selengkapnya tentang penggunaan tanda kutip, lihat dokumentasi pengguna untuk shell pilihan Anda.

------
#### [ PowerShell ]

Gunakan tanda kutip tunggal `' '` atau tanda kutip ganda. `" "`

**Kutipan tunggal (disarankan)**

Tanda kutip tunggal `' '` disebut `verbatim` string. String diteruskan ke perintah persis seperti yang Anda ketikkan, yang berarti PowerShell variabel tidak akan melewatinya.

Karena struktur data JSON menyertakan tanda kutip ganda, kami menyarankan tanda kutip **tunggal** `' '` untuk melampirkannya. Jika Anda menggunakan tanda kutip **tunggal**, Anda tidak perlu melepaskan tanda kutip **ganda** yang disematkan dalam string JSON. Namun, Anda harus keluar dari setiap tanda kutip **tunggal** dengan backtick ``` dalam struktur JSON.

```
PS C:\> aws ec2 run-instances `
    --image-id ami-12345678 `
    --block-device-mappings '[{"DeviceName":"/dev/sdb","Ebs":{"VolumeSize":20,"DeleteOnTermination":false,"VolumeType":"standard"}}]'
```

**Kutipan ganda**

Tanda kutip ganda `" "` disebut `expandable` string. Variabel dapat dilewatkan dalam string yang dapat diperluas.

Jika Anda menggunakan tanda kutip **ganda**, Anda tidak perlu melepaskan tanda kutip **tunggal** yang disematkan dalam string JSON. Namun, Anda harus keluar dari setiap tanda kutip **ganda** dengan backtick ``` dalam struktur JSON, seperti contoh berikut.

```
PS C:\> aws ec2 run-instances `
    --image-id ami-12345678 `
    --block-device-mappings "[{`"DeviceName`":`"/dev/sdb`",`"Ebs`":{`"VolumeSize`":20,`"DeleteOnTermination`":false,`"VolumeType`":`"standard`"}}]"
```

Untuk informasi selengkapnya tentang menggunakan tanda kutip, lihat [Tentang Aturan Mengutip](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7) di *Microsoft PowerShell Docs*.

**Awas**  
Sebelum PowerShell mengirim perintah ke AWS CLI, itu menentukan apakah perintah Anda ditafsirkan menggunakan aturan tipikal PowerShell atau `CommandLineToArgvW` kutipan. Saat PowerShell proses menggunakan`CommandLineToArgvW`, Anda harus melarikan diri dari karakter dengan garis miring terbalik`\`.  
*Untuk informasi lebih lanjut tentang `CommandLineToArgvW` in PowerShell, lihat [Ada apa dengan perlakuan aneh tanda kutip dan garis miring terbalik oleh CommandLineToArgv W](https://devblogs.microsoft.com/oldnewthing/20100917-00/?p=12833) di *Microsoft DevBlogs*, [Semua orang mengutip argumen baris perintah dengan cara yang salah di](https://docs.microsoft.com/en-us/archive/blogs/twistylittlepassagesallalike/everyone-quotes-command-line-arguments-the-wrong-way) *Blog Microsoft Docs*, dan fungsi [CommandLineToArgvW di](https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw#remarks) Microsoft Docs.*  
**Kutipan tunggal**  
Tanda kutip tunggal `' '` disebut `verbatim` string. String diteruskan ke perintah persis seperti yang Anda ketikkan, yang berarti PowerShell variabel tidak akan melewatinya. Melarikan diri dari karakter dengan garis miring terbalik`\`.  

```
PS C:\> aws ec2 run-instances `
    --image-id ami-12345678 `
    --block-device-mappings '[{\"DeviceName\":\"/dev/sdb\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false,\"VolumeType\":\"standard\"}}]'
```
**Kutipan ganda**  
Tanda kutip ganda `" "` disebut `expandable` string. Variabel dapat dilewatkan dalam `expandable` string. Untuk string kutip ganda Anda harus melarikan diri dua kali menggunakan *`\$1* untuk setiap kutipan alih-alih hanya menggunakan backtick. Backtick lolos dari garis miring terbalik, dan kemudian garis miring terbalik digunakan sebagai karakter pelarian untuk proses tersebut. `CommandLineToArgvW`  

```
PS C:\> aws ec2 run-instances `
    --image-id ami-12345678 `
    --block-device-mappings "[{`\"DeviceName`\":`\"/dev/sdb`\",`\"Ebs`\":{`\"VolumeSize`\":20,`\"DeleteOnTermination`\":false,`\"VolumeType`\":`\"standard`\"}}]"
```
**Gumpalan (disarankan)**  
Untuk melewati aturan PowerShell kutipan untuk input data JSON, gunakan Blobs untuk meneruskan data JSON Anda langsung ke file. AWS CLI Untuk informasi lebih lanjut tentang Blobs, lihat[blob](cli-usage-parameters-types.md#parameter-type-blob).

------
#### [ Windows command prompt ]

Prompt perintah Windows memerlukan tanda kutip ganda `" "` untuk melampirkan struktur data JSON. Juga, untuk mencegah prosesor perintah salah menafsirkan tanda kutip ganda yang disematkan di JSON, Anda juga harus melarikan diri (mendahului dengan `\` karakter garis miring terbalik) setiap tanda kutip ganda `"` dalam struktur data JSON itu sendiri, seperti pada contoh berikut. 

```
C:\> aws ec2 run-instances ^
    --image-id ami-12345678 ^
    --block-device-mappings "[{\"DeviceName\":\"/dev/sdb\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false,\"VolumeType\":\"standard\"}}]"
```

Hanya tanda kutip ganda terluar yang tidak lolos.

------

# Memuat parameter dari file di AWS CLI
<a name="cli-usage-parameters-file"></a>

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 Python`locale.getpreferredencoding()`.

Metode ini untuk memuat file untuk satu parameter. Untuk informasi tentang memuat beberapa parameter dengan satu file, lihat[AWS CLI kerangka dan file input di AWS CLI](cli-usage-skeleton.md).

**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. 

**Topics**
+ [

## Cara memuat parameter dari file
](#cli-usage-parameters-file-how)
+ [

## File biner
](#cli-usage-parameters-file-binary)
+ [

## Memuat file sebagai nilai sintaks singkatan
](#cli-usage-parameters-file-shorthand)

## Cara memuat parameter dari file
<a name="cli-usage-parameters-file-how"></a>

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](cli-usage-parameters-quoting-strings.md) 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 bawah`%USERPROFILE%`.

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
<a name="cli-usage-parameters-file-binary"></a>

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-data`parameter. 
+  **`aws s3api put-object:`**`--sse-customer-key`parameter. 
+  **`aws kms decrypt:`**`--ciphertext-blob`parameter. 

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

Untuk contoh lain yang mereferensikan file yang berisi parameter berformat JSON, lihat. [Melampirkan kebijakan terkelola IAM ke pengguna](cli-services-iam.md#cli-services-iam-policy) 

## Memuat file sebagai nilai sintaks singkatan
<a name="cli-usage-parameters-file-shorthand"></a>

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](cli-usage-shorthand.md)

# AWS CLI kerangka dan file input di AWS CLI
<a name="cli-usage-skeleton"></a>

Sebagian besar AWS CLI perintah menerima mengimpor input parameter dari file. Template ini dapat dihasilkan menggunakan `generate-cli-skeleton` opsi dan kemudian diimpor menggunakan `--cli-input-yaml` parameter `--cli-input-json` dan.

**Topics**
+ [

## Tentang AWS CLI kerangka dan file input
](#cli-usage-skeleton-about)
+ [

## Menghasilkan dan mengimpor kerangka perintah
](#cli-usage-skeleton-generate)
+ [

## Menggabungkan file input dan parameter baris perintah
](#cli-usage-skeleton-combine)

## Tentang AWS CLI kerangka dan file input
<a name="cli-usage-skeleton-about"></a>

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

Perintah yang sama menggunakan `--generate-cli-skeleton` parameter untuk menghasilkan file dalam format JSON atau YAMAL dengan semua parameter yang dapat Anda edit dan isi. Kemudian Anda dapat menjalankan perintah dengan `--cli-input-yaml` parameter `--cli-input-json` or dan arahkan ke file yang diisi.

**penting**  
 AWS CLI Perintah khusus, seperti [perintah](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html) tidak mendukung `--cli-input-yaml` parameter `--generate-cli-skeleton` atau `--cli-input-json` dan yang dijelaskan dalam topik ini. Untuk memeriksa apakah perintah tertentu mendukung parameter ini, jalankan [`help`perintah](cli-usage-help.md#cli-usage-help-command) untuk perintah yang ingin Anda gunakan atau lihat [referensi AWS CLI versi 2](https://docs.aws.amazon.com/cli/latest/reference/index.html).

`--generate-cli-skeleton`Menghasilkan dan menampilkan template parameter yang dapat Anda sesuaikan dan gunakan sebagai input pada perintah. Template yang dihasilkan mencakup semua parameter yang didukung perintah.

`--generate-cli-skeleton`Parameter menerima salah satu nilai berikut:
+ `input`— Template yang dihasilkan mencakup semua parameter input yang diformat sebagai JSON. Ini adalah nilai default.
+ `yaml-input`— Template yang dihasilkan mencakup semua parameter input yang diformat sebagai YAMAL.
+ `output`- Template yang dihasilkan mencakup semua parameter output yang diformat sebagai JSON.  Saat ini Anda tidak dapat meminta parameter keluaran sebagai YAMAL. 

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

------
#### [ YAML ]

Contoh berikut menunjukkan cara menghasilkan template yang diformat dalam YAMAL dengan menggunakan nilai `yaml-input` untuk parameter. `--generate-cli-skeleton`

```
$ aws ec2 run-instances --generate-cli-skeleton yaml-input
```

```
BlockDeviceMappings:  # The block device mapping entries.
- DeviceName: ''  # The device name (for example, /dev/sdh or xvdh).
  VirtualName: '' # The virtual device name (ephemeralN).
  Ebs: # Parameters used to automatically set up Amazon EBS volumes when the instance is launched.
    DeleteOnTermination: true  # Indicates whether the EBS volume is deleted on instance termination.
    Iops: 0 # The number of I/O operations per second (IOPS) that the volume supports.
    SnapshotId: '' # The ID of the snapshot.
    VolumeSize: 0 # The size of the volume, in GiB.
    VolumeType: st1 # The volume type. Valid values are: standard, io1, gp2, sc1, st1.
    Encrypted: true # Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot.
    KmsKeyId: '' # Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed KMS key under which the EBS volume is encrypted.
  NoDevice: '' # Suppresses the specified device included in the block device mapping of the AMI.
ImageId: '' # The ID of the AMI.
InstanceType: c4.4xlarge # The instance type. Valid values are: t1.micro, t2.nano, t2.micro, t2.small, t2.medium, t2.large, t2.xlarge, t2.2xlarge, t3.nano, t3.micro, t3.small, t3.medium, t3.large, t3.xlarge, t3.2xlarge, t3a.nano, t3a.micro, t3a.small, t3a.medium, t3a.large, t3a.xlarge, t3a.2xlarge, m1.small, m1.medium, m1.large, m1.xlarge, m3.medium, m3.large, m3.xlarge, m3.2xlarge, m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge, m2.xlarge, m2.2xlarge, m2.4xlarge, cr1.8xlarge, r3.large, r3.xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge, r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge, r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r5.8xlarge, r5.12xlarge, r5.16xlarge, r5.24xlarge, r5.metal, r5a.large, r5a.xlarge, r5a.2xlarge, r5a.4xlarge, r5a.8xlarge, r5a.12xlarge, r5a.16xlarge, r5a.24xlarge, r5d.large, r5d.xlarge, r5d.2xlarge, r5d.4xlarge, r5d.8xlarge, r5d.12xlarge, r5d.16xlarge, r5d.24xlarge, r5d.metal, r5ad.large, r5ad.xlarge, r5ad.2xlarge, r5ad.4xlarge, r5ad.8xlarge, r5ad.12xlarge, r5ad.16xlarge, r5ad.24xlarge, x1.16xlarge, x1.32xlarge, x1e.xlarge, x1e.2xlarge, x1e.4xlarge, x1e.8xlarge, x1e.16xlarge, x1e.32xlarge, i2.xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i3.large, i3.xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge, i3.16xlarge, i3.metal, i3en.large, i3en.xlarge, i3en.2xlarge, i3en.3xlarge, i3en.6xlarge, i3en.12xlarge, i3en.24xlarge, i3en.metal, hi1.4xlarge, hs1.8xlarge, c1.medium, c1.xlarge, c3.large, c3.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, c4.large, c4.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.12xlarge, c5.18xlarge, c5.24xlarge, c5.metal, c5d.large, c5d.xlarge, c5d.2xlarge, c5d.4xlarge, c5d.9xlarge, c5d.18xlarge, c5n.large, c5n.xlarge, c5n.2xlarge, c5n.4xlarge, c5n.9xlarge, c5n.18xlarge, cc1.4xlarge, cc2.8xlarge, g2.2xlarge, g2.8xlarge, g3.4xlarge, g3.8xlarge, g3.16xlarge, g3s.xlarge, g4dn.xlarge, g4dn.2xlarge, g4dn.4xlarge, g4dn.8xlarge, g4dn.12xlarge, g4dn.16xlarge, cg1.4xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge, p3.16xlarge, p3dn.24xlarge, d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, f1.2xlarge, f1.4xlarge, f1.16xlarge, m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.8xlarge, m5.12xlarge, m5.16xlarge, m5.24xlarge, m5.metal, m5a.large, m5a.xlarge, m5a.2xlarge, m5a.4xlarge, m5a.8xlarge, m5a.12xlarge, m5a.16xlarge, m5a.24xlarge, m5d.large, m5d.xlarge, m5d.2xlarge, m5d.4xlarge, m5d.8xlarge, m5d.12xlarge, m5d.16xlarge, m5d.24xlarge, m5d.metal, m5ad.large, m5ad.xlarge, m5ad.2xlarge, m5ad.4xlarge, m5ad.8xlarge, m5ad.12xlarge, m5ad.16xlarge, m5ad.24xlarge, h1.2xlarge, h1.4xlarge, h1.8xlarge, h1.16xlarge, z1d.large, z1d.xlarge, z1d.2xlarge, z1d.3xlarge, z1d.6xlarge, z1d.12xlarge, z1d.metal, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, u-18tb1.metal, u-24tb1.metal, a1.medium, a1.large, a1.xlarge, a1.2xlarge, a1.4xlarge, a1.metal, m5dn.large, m5dn.xlarge, m5dn.2xlarge, m5dn.4xlarge, m5dn.8xlarge, m5dn.12xlarge, m5dn.16xlarge, m5dn.24xlarge, m5n.large, m5n.xlarge, m5n.2xlarge, m5n.4xlarge, m5n.8xlarge, m5n.12xlarge, m5n.16xlarge, m5n.24xlarge, r5dn.large, r5dn.xlarge, r5dn.2xlarge, r5dn.4xlarge, r5dn.8xlarge, r5dn.12xlarge, r5dn.16xlarge, r5dn.24xlarge, r5n.large, r5n.xlarge, r5n.2xlarge, r5n.4xlarge, r5n.8xlarge, r5n.12xlarge, r5n.16xlarge, r5n.24xlarge.
Ipv6AddressCount: 0 # [EC2-VPC] The number of IPv6 addresses to associate with the primary network interface.
Ipv6Addresses: # [EC2-VPC] The IPv6 addresses from the range of the subnet to associate with the primary network interface.
- Ipv6Address: ''  # The IPv6 address.
KernelId: '' # The ID of the kernel.
KeyName: '' # The name of the key pair.
MaxCount: 0 # [REQUIRED] The maximum number of instances to launch.
MinCount: 0 # [REQUIRED] The minimum number of instances to launch.
Monitoring: # Specifies whether detailed monitoring is enabled for the instance.
  Enabled: true  # [REQUIRED] Indicates whether detailed monitoring is enabled.
Placement: # The placement for the instance.
  AvailabilityZone: ''  # The Availability Zone of the instance.
  Affinity: '' # The affinity setting for the instance on the Dedicated Host.
  GroupName: '' # The name of the placement group the instance is in.
  PartitionNumber: 0 # The number of the partition the instance is in.
  HostId: '' # The ID of the Dedicated Host on which the instance resides.
  Tenancy: dedicated # The tenancy of the instance (if the instance is running in a VPC). Valid values are: default, dedicated, host.
  SpreadDomain: '' # Reserved for future use.
RamdiskId: '' # The ID of the RAM disk to select.
SecurityGroupIds: # The IDs of the security groups.
- ''
SecurityGroups: # [default VPC] The names of the security groups.
- ''
SubnetId: '' # [EC2-VPC] The ID of the subnet to launch the instance into.
UserData: '' # The user data to make available to the instance.
AdditionalInfo: '' # Reserved.
ClientToken: '' # Unique, case-sensitive identifier you provide to ensure the idempotency of the request.
DisableApiTermination: true # If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can.
DryRun: true # Checks whether you have the required permissions for the action, without actually making the request, and provides an error response.
EbsOptimized: true # Indicates whether the instance is optimized for Amazon EBS I/O.
IamInstanceProfile: # The IAM instance profile.
  Arn: ''  # The Amazon Resource Name (ARN) of the instance profile.
  Name: '' # The name of the instance profile.
InstanceInitiatedShutdownBehavior: stop # Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). Valid values are: stop, terminate.
NetworkInterfaces: # The network interfaces to associate with the instance.
- AssociatePublicIpAddress: true  # Indicates whether to assign a public IPv4 address to an instance you launch in a VPC.
  DeleteOnTermination: true # If set to true, the interface is deleted when the instance is terminated.
  Description: '' # The description of the network interface.
  DeviceIndex: 0 # The position of the network interface in the attachment order.
  Groups: # The IDs of the security groups for the network interface.
  - ''
  Ipv6AddressCount: 0 # A number of IPv6 addresses to assign to the network interface.
  Ipv6Addresses: # One or more IPv6 addresses to assign to the network interface.
  - Ipv6Address: ''  # The IPv6 address.
  NetworkInterfaceId: '' # The ID of the network interface.
  PrivateIpAddress: '' # The private IPv4 address of the network interface.
  PrivateIpAddresses: # One or more private IPv4 addresses to assign to the network interface.
  - Primary: true  # Indicates whether the private IPv4 address is the primary private IPv4 address.
    PrivateIpAddress: '' # The private IPv4 addresses.
  SecondaryPrivateIpAddressCount: 0 # The number of secondary private IPv4 addresses.
  SubnetId: '' # The ID of the subnet associated with the network interface.
  InterfaceType: '' # The type of network interface.
PrivateIpAddress: '' # [EC2-VPC] The primary IPv4 address.
ElasticGpuSpecification: # An elastic GPU to associate with the instance.
- Type: ''  # [REQUIRED] The type of Elastic Graphics accelerator.
ElasticInferenceAccelerators: # An elastic inference accelerator to associate with the instance.
- Type: ''  # [REQUIRED]  The type of elastic inference accelerator.
TagSpecifications: # The tags to apply to the resources during launch.
- ResourceType: network-interface  # The type of resource to tag. Valid values are: client-vpn-endpoint, customer-gateway, dedicated-host, dhcp-options, elastic-ip, fleet, fpga-image, host-reservation, image, instance, internet-gateway, launch-template, natgateway, network-acl, network-interface, reserved-instances, route-table, security-group, snapshot, spot-instances-request, subnet, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-route-table, volume, vpc, vpc-peering-connection, vpn-connection, vpn-gateway.
  Tags: # The tags to apply to the resource.
  - Key: ''  # The key of the tag.
    Value: '' # The value of the tag.
LaunchTemplate: # The launch template to use to launch the instances.
  LaunchTemplateId: ''  # The ID of the launch template.
  LaunchTemplateName: '' # The name of the launch template.
  Version: '' # The version number of the launch template.
InstanceMarketOptions: # The market (purchasing) option for the instances.
  MarketType: spot  # The market type. Valid values are: spot.
  SpotOptions: # The options for Spot Instances.
    MaxPrice: ''  # The maximum hourly price you're willing to pay for the Spot Instances.
    SpotInstanceType: one-time # The Spot Instance request type. Valid values are: one-time, persistent.
    BlockDurationMinutes: 0 # The required duration for the Spot Instances (also known as Spot blocks), in minutes.
    ValidUntil: 1970-01-01 00:00:00 # The end date of the request.
    InstanceInterruptionBehavior: terminate # The behavior when a Spot Instance is interrupted. Valid values are: hibernate, stop, terminate.
CreditSpecification: # The credit option for CPU usage of the T2 or T3 instance.
  CpuCredits: ''  # [REQUIRED] The credit option for CPU usage of a T2 or T3 instance.
CpuOptions: # The CPU options for the instance.
  CoreCount: 0  # The number of CPU cores for the instance.
  ThreadsPerCore: 0 # The number of threads per CPU core.
CapacityReservationSpecification: # Information about the Capacity Reservation targeting option.
  CapacityReservationPreference: none  # Indicates the instance's Capacity Reservation preferences. Valid values are: open, none.
  CapacityReservationTarget: # Information about the target Capacity Reservation.
    CapacityReservationId: ''  # The ID of the Capacity Reservation.
HibernationOptions: # Indicates whether an instance is enabled for hibernation.
  Configured: true  # If you set this parameter to true, your instance is enabled for hibernation.
LicenseSpecifications: # The license configurations.
- LicenseConfigurationArn: ''  # The Amazon Resource Name (ARN) of the license configuration.
```

------

## Menghasilkan dan mengimpor kerangka perintah
<a name="cli-usage-skeleton-generate"></a>

**Untuk menghasilkan dan menggunakan file kerangka parameter**

1. Jalankan perintah dengan `--generate-cli-skeleton` parameter untuk menghasilkan JSON atau YAMAL dan arahkan output ke file untuk menyimpannya.

------
#### [ JSON ]

   ```
   $ aws ec2 run-instances --generate-cli-skeleton input > ec2runinst.json
   ```

------
#### [ YAML ]

   ```
   $ aws ec2 run-instances --generate-cli-skeleton yaml-input > ec2runinst.yaml
   ```

------

1. 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. Konfirmasikan file tersebut masih valid JSON atau YAML setelah Anda menghapus elemen yang tidak Anda butuhkan.

------
#### [ JSON ]

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

------
#### [ YAML ]

   ```
   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. 

1. 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 default Wilayah AWS. 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](https://aws.amazon.com/amazon-linux-ami/).

------
#### [ JSON ]

   ```
   {
       "DryRun": true,
       "ImageId": "ami-dfc39aef",
       "KeyName": "mykey",
       "SecurityGroups": [
           "my-sg"
       ],
       "InstanceType": "t2.micro",
       "Monitoring": {
           "Enabled": true
       }
   }
   ```

------
#### [ YAML ]

   ```
   DryRun: true
   ImageId: 'ami-dfc39aef'
   KeyName: 'mykey'
   SecurityGroups:
   - 'my-sg'
   InstanceType: 't2.micro'
   Monitoring: 
     Enabled: true
   ```

------

1. Jalankan perintah dengan parameter lengkap dengan meneruskan file template yang sudah selesai ke `cli-input-yaml` parameter `--cli-input-json` or -- dengan menggunakan `file://` awalan. AWS CLI Menafsirkan jalur menjadi relatif terhadap direktori kerja Anda saat ini. Contoh berikut AWS CLI mencari file 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.
   ```

------
#### [ YAML ]

   ```
   $ aws ec2 run-instances --cli-input-yaml file://ec2runinst.yaml
   ```

   ```
   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 atau YAMAL terbentuk dengan benar dan nilai parameternya valid. Jika masalah lain dilaporkan dalam output, perbaiki dan ulangi langkah sebelumnya hingga pesan `Request would have succeeded` "" ditampilkan. 

1. 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
       }
   }
   ```

------
#### [ YAML ]

   ```
   DryRun: false
   ImageId: 'ami-dfc39aef'
   KeyName: 'mykey'
   SecurityGroups:
   - 'my-sg'
   InstanceType: 't2.micro'
   Monitoring: 
     Enabled: true
   ```

------

1. 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": [
   ...
   ```

------
#### [ YAML ]

   ```
   $ aws ec2 run-instances --cli-input-yaml file://ec2runinst.yaml --output yaml
   ```

   ```
   OwnerId: '123456789012'
   ReservationId: 'r-d94a2b1',
   Groups":
   - ''
   Instances:
   ...
   ```

------

## Menggabungkan file input dan parameter baris perintah
<a name="cli-usage-skeleton-combine"></a>

File input dapat digunakan untuk semua parameter, atau dapat dikombinasikan dengan parameter yang ditentukan dalam file AWS CLI. Anda dapat menggunakan fitur ini untuk pengaturan yang sering Anda gunakan kembali dalam file input, sambil menjaga pengaturan individual Anda dalam perintah itu sendiri.

`aws ec2 run-instances`Contoh berikut menggabungkan penggunaan file input dan parameter. Kami menyediakan jenis instans, nama kunci, grup keamanan, pengenal Amazon Machine Image (AMI) untuk digunakan dan mengasumsikan default Wilayah AWS. 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](https://aws.amazon.com/amazon-linux-ami/).

------
#### [ JSON ]

Isi file JSON:

```
{
    "ImageId": "ami-dfc39aef",
    "KeyName": "mykey",
    "SecurityGroups": [
        "my-sg"
    ],
    "InstanceType": "t2.micro",
    "Monitoring": {
        "Enabled": true
    }
}
```

------
#### [ YAML ]

Isi file YAMAL:

```
ImageId: 'ami-dfc39aef'
KeyName: 'mykey'
SecurityGroups:
- 'my-sg'
InstanceType: 't2.micro'
Monitoring: 
  Enabled: true
```

------

Contoh berikut menggunakan file input dalam kombinasi dengan `--dry-run` parameter untuk melakukan dry-run perintah untuk mengkonfirmasi apakah Anda memiliki izin yang diperlukan dan telah mengisi file dengan nilai yang valid.

------
#### [ JSON ]

```
$ aws ec2 run-instances --cli-input-json file://ec2runinst.json --dry-run
```

```
A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.
```

------
#### [ YAML ]

```
$ aws ec2 run-instances --cli-input-yaml file://ec2runinst.yaml --dry-run
```

```
A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.
```

------

Contoh berikut kemudian menggunakan file input yang sama, tetapi dengan `--no-dry-run` parameter untuk melakukan perintah secara penuh.

------
#### [ JSON ]

```
$ aws ec2 run-instances --cli-input-json file://ec2runinst.json --no-dry-run --output json
```

```
{
    "OwnerId": "123456789012",
    "ReservationId": "r-d94a2b1",
    "Groups": [],
    "Instances": [
...
```

------
#### [ YAML ]

```
$ aws ec2 run-instances --cli-input-yaml file://ec2runinst.yaml --no-dry-run --output yaml
```

```
OwnerId: '123456789012'
ReservationId: 'r-d94a2b1',
Groups":
- ''
Instances:
...
```

------

# Menggunakan sintaks singkatan di AWS CLI
<a name="cli-usage-shorthand"></a>

The AWS Command Line Interface (AWS CLI) dapat menerima banyak parameter opsinya dalam format JSON. Namun, bisa membosankan untuk memasukkan daftar atau struktur JSON besar pada baris perintah. Untuk membuat ini lebih mudah, AWS CLI juga mendukung sintaks singkatan yang memungkinkan representasi yang lebih sederhana dari parameter opsi Anda daripada menggunakan format JSON lengkap.

**Topics**
+ [

## Parameter struktur dengan pasangan kunci-nilai
](#shorthand-structure-parameters)
+ [

## Memuat file sebagai nilai sintaks singkatan
](#shorthand-files)
+ [

## Menggunakan sintaks singkatan dengan AWS CLI
](#shorthand-list-parameters)

## Parameter struktur dengan pasangan kunci-nilai
<a name="shorthand-structure-parameters"></a>

Sintaks singkatan dalam AWS CLI memudahkan pengguna untuk memasukkan parameter yang datar (struktur non-bersarang). Formatnya adalah daftar pasangan kunci-nilai yang dipisahkan koma. Pastikan untuk menggunakan aturan [kutipan](cli-usage-parameters-quoting-strings.md) dan escaping yang sesuai untuk terminal Anda karena sintaks singkatan adalah string.

------
#### [ Linux or macOS ]

```
--option key1=value1,key2=value2,key3=value3
```

Setara dengan contoh berikut, diformat dalam JSON.

```
--option '{"key1":"value1","key2":"value2","key3":"value3"}'
```

------
#### [ Windows ]

```
--option "key1=value1,key2=value2,key3=value3"
```

Setara dengan contoh berikut, diformat dalam JSON.

```
--option '{"key1":"value1","key2":"value2","key3":"value3"}'
```

------

Tidak boleh ada spasi putih di antara setiap pasangan nilai kunci yang dipisahkan koma. Berikut adalah contoh perintah Amazon `update-table` DynamoDB dengan opsi yang ditentukan `--provisioned-throughput` dalam singkatan.

```
$ aws dynamodb update-table \
    --provisioned-throughput ReadCapacityUnits=15,WriteCapacityUnits=10 \
    --table-name MyDDBTable
```

Ini setara dengan contoh berikut yang diformat dalam JSON.

```
$ aws dynamodb update-table \
    --provisioned-throughput '{"ReadCapacityUnits":15,"WriteCapacityUnits":10}' \
    --table-name MyDDBTable
```

## Memuat file sebagai nilai sintaks singkatan
<a name="shorthand-files"></a>

Ketika suatu nilai besar atau kompleks, seringkali lebih mudah untuk memuat 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. Saat memuat file dalam sintaks singkatan, aturan [pemformatan AWS CLI file yang biasa berlaku](cli-usage-parameters-file.md). 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
```

## Menggunakan sintaks singkatan dengan AWS CLI
<a name="shorthand-list-parameters"></a>

Anda dapat menentukan parameter Input dalam formulir daftar dengan dua cara: JSON atau singkatan. Sintaks AWS CLI singkatan dirancang untuk membuatnya lebih mudah untuk meneruskan daftar dengan angka, string, atau struktur non-bersarang. 

Format dasar ditampilkan di sini, di mana nilai-nilai dalam daftar dipisahkan oleh satu spasi.

```
--option value1 value2 value3
```

Ini setara dengan contoh berikut, diformat dalam JSON.

```
--option '[value1,value2,value3]'
```

Seperti disebutkan sebelumnya, Anda dapat menentukan daftar angka, daftar string, atau daftar struktur non-bersarang di singkatan. Berikut ini adalah contoh `stop-instances` perintah untuk Amazon Elastic Compute Cloud (Amazon EC2), di mana parameter input (daftar string) untuk `--instance-ids` opsi ditentukan dalam singkatan.

```
$ aws ec2 stop-instances \
    --instance-ids i-1486157a i-1286157c i-ec3a7e87
```

Ini setara dengan contoh berikut yang diformat dalam JSON.

```
$ aws ec2 stop-instances \
    --instance-ids '["i-1486157a","i-1286157c","i-ec3a7e87"]'
```

Contoh berikut menunjukkan `create-tags` perintah Amazon EC2, yang mengambil daftar struktur non-bersarang untuk opsi tersebut. `--tags` `--resources`Pilihan menentukan ID dari contoh untuk tag.

```
$ aws ec2 create-tags \
    --resources i-1286157c \
    --tags Key=My1stTag,Value=Value1 Key=My2ndTag,Value=Value2 Key=My3rdTag,Value=Value3
```

Ini setara dengan contoh berikut, diformat dalam JSON. Parameter JSON ditulis di atas beberapa baris untuk keterbacaan.

```
$ aws ec2 create-tags \
    --resources i-1286157c \
    --tags '[
        {"Key": "My1stTag", "Value": "Value1"},
        {"Key": "My2ndTag", "Value": "Value2"},
        {"Key": "My3rdTag", "Value": "Value3"}
    ]'
```