

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

# Mengatur format output di AWS CLI
<a name="cli-usage-output-format"></a>

Topik ini menjelaskan format keluaran yang berbeda untuk AWS Command Line Interface (AWS CLI). AWS CLI Mendukung format output berikut:
+ **[`json`](#json-output)**— Output diformat sebagai string [JSON](https://json.org/).
+  **[`yaml`](#yaml-output)**— Output diformat sebagai string [YAMAL.](https://yaml.org/)
+ **[`yaml-stream`](#yaml-stream-output)**— Output dialirkan dan diformat sebagai string [YAMAL](https://yaml.org/). Streaming memungkinkan penanganan tipe data besar yang lebih cepat.
+ **[`text`](#text-output)**- Output diformat sebagai beberapa baris nilai string yang dipisahkan tab. Ini dapat berguna untuk meneruskan output ke prosesor teks, seperti`grep`,`sed`, atau`awk`.
+ **[`table`](#table-output)**— Output diformat sebagai tabel menggunakan karakter \$1\$1- untuk membentuk batas sel. Ini biasanya menyajikan informasi dalam format “ramah manusia” yang jauh lebih mudah dibaca daripada yang lain, tetapi tidak berguna secara terprogram.
+ **[`off`](#off-output)**— Output menekan semua output perintah ke stdout. Ini berguna dalam skrip otomatisasi dan CI/CD saluran pipa di mana Anda hanya perlu memeriksa kode keluar perintah tanpa memproses output.

## Cara memilih format output
<a name="cli-usage-output-format-how"></a>

Seperti yang dijelaskan dalam topik [konfigurasi](cli-chap-configure.md), Anda dapat menentukan format output dalam tiga cara:
+ **Menggunakan `output` opsi dalam profil bernama dalam `config` file** - Contoh berikut menetapkan format output default ke`text`.

  ```
  [default]
  output=text
  ```
+ **Menggunakan variabel `AWS_DEFAULT_OUTPUT` lingkungan** - Output berikut menetapkan format `table` untuk perintah dalam sesi baris perintah ini sampai variabel diubah atau sesi berakhir. Menggunakan variabel lingkungan ini mengesampingkan nilai apa pun yang ditetapkan dalam file. `config`

  ```
  $ export AWS_DEFAULT_OUTPUT="table"
  ```
+ **Menggunakan `--output` opsi pada baris perintah** - Contoh berikut menetapkan output dari hanya satu perintah ini`json`. Menggunakan opsi ini pada perintah mengesampingkan variabel lingkungan yang saat ini ditetapkan atau nilai dalam file. `config`

  ```
  $ aws swf list-domains --registration-status REGISTERED --output json
  ```

**penting**  
Jenis output yang Anda tentukan mengubah cara `--query` opsi beroperasi:  
Jika Anda menentukan`--output text`, output diberi paginasi *sebelum* `--query` filter diterapkan, dan AWS CLI menjalankan kueri sekali pada *setiap halaman* output. Karena ini, kueri menyertakan elemen pencocokan pertama pada setiap halaman yang dapat menghasilkan output tambahan yang tidak terduga. Untuk memfilter output tambahan, Anda dapat menggunakan alat baris perintah lainnya seperti `head` atau`tail`.
Jika Anda menentukan `--output json` `--output yaml`,, atau `--output yaml-stream` output sepenuhnya diproses sebagai struktur asli tunggal sebelum `--query` filter diterapkan. AWS CLI Menjalankan kueri hanya sekali terhadap seluruh struktur, menghasilkan hasil yang difilter yang kemudian dikeluarkan.

## Format keluaran JSON
<a name="json-output"></a>

[JSON](https://json.org) adalah format output default dari file. AWS CLI Sebagian besar bahasa pemrograman dapat dengan mudah memecahkan kode string JSON menggunakan fungsi bawaan atau dengan perpustakaan yang tersedia untuk umum. Anda dapat menggabungkan output JSON dengan [opsi --query](cli-usage-filter.md) dengan cara yang ampuh untuk memfilter dan memformat output berformat AWS CLI JSON. 

Untuk pemfilteran lebih lanjut yang mungkin tidak dapat Anda lakukan`--query`, Anda dapat mempertimbangkan`jq`, prosesor JSON baris perintah. Anda dapat mengunduhnya dan menemukan tutorial resminya di [http://stedolan.github.io/jq/](http://stedolan.github.io/jq/).

Berikut ini adalah contoh output JSON.

```
$ aws iam list-users --output json
```

```
{
    "Users": [
        {
            "Path": "/",
            "UserName": "Admin",
            "UserId": "AIDA1111111111EXAMPLE",
            "Arn": "arn:aws:iam::123456789012:user/Admin",
            "CreateDate": "2014-10-16T16:03:09+00:00",
            "PasswordLastUsed": "2016-06-03T18:37:29+00:00"
        },
        {
            "Path": "/backup/",
            "UserName": "backup-user",
            "UserId": "AIDA2222222222EXAMPLE",
            "Arn": "arn:aws:iam::123456789012:user/backup/backup-user",
            "CreateDate": "2019-09-17T19:30:40+00:00"
        },
        {
            "Path": "/",
            "UserName": "cli-user",
            "UserId": "AIDA3333333333EXAMPLE",
            "Arn": "arn:aws:iam::123456789012:user/cli-user",
            "CreateDate": "2019-09-17T19:11:39+00:00"
        }
    ]
}
```

## Format keluaran YAMAL
<a name="yaml-output"></a>

[YAMG](https://yaml.org) [adalah pilihan yang baik untuk menangani output secara terprogram dengan layanan dan alat yang memancarkan atau menggunakan string berformat [YAMAL, seperti dengan dukungannya](https://yaml.org) untuk template berformat YAMG. CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-formats.html)

Untuk pemfilteran lebih lanjut yang mungkin tidak dapat Anda lakukan`--query`, Anda dapat mempertimbangkan`yq`, prosesor YAMAL baris perintah. Anda dapat mengunduh `yq` di [repositori yq](https://github.com/mikefarah/yq) di. *GitHub*

Berikut ini adalah contoh output YAMAL.

```
$ aws iam list-users --output yaml
```

```
Users:
- Arn: arn:aws:iam::123456789012:user/Admin
  CreateDate: '2014-10-16T16:03:09+00:00'
  PasswordLastUsed: '2016-06-03T18:37:29+00:00'
  Path: /
  UserId: AIDA1111111111EXAMPLE
  UserName: Admin
- Arn: arn:aws:iam::123456789012:user/backup/backup-user
  CreateDate: '2019-09-17T19:30:40+00:00'
  Path: /backup/
  UserId: AIDA2222222222EXAMPLE
  UserName: arq-45EFD6D1-CE56-459B-B39F-F9C1F78FBE19
- Arn: arn:aws:iam::123456789012:user/cli-user
  CreateDate: '2019-09-17T19:30:40+00:00'
  Path: /
  UserId: AIDA3333333333EXAMPLE
  UserName: cli-user
```

## Format keluaran aliran YAMAL
<a name="yaml-stream-output"></a>

`yaml-stream`Format ini memanfaatkan format [YAMAL](https://yaml.org) sambil memberikan tampilan kumpulan data besar yang lebih responsif/lebih cepat dengan mengalirkan data kepada Anda. Anda dapat mulai melihat dan menggunakan data YAMAL sebelum seluruh unduhan kueri. 

Untuk pemfilteran lebih lanjut yang mungkin tidak dapat Anda lakukan`--query`, Anda dapat mempertimbangkan`yq`, prosesor YAMAL baris perintah. Anda dapat mengunduh `yq` di [repositori yq](https://github.com/mikefarah/yq) di. *GitHub*

Berikut ini adalah contoh `yaml-stream` output.

```
$ aws iam list-users --output yaml-stream
```

```
- IsTruncated: false
  Users:
  - Arn: arn:aws:iam::123456789012:user/Admin
    CreateDate: '2014-10-16T16:03:09+00:00'
    PasswordLastUsed: '2016-06-03T18:37:29+00:00'
    Path: /
    UserId: AIDA1111111111EXAMPLE
    UserName: Admin
  - Arn: arn:aws:iam::123456789012:user/backup/backup-user
    CreateDate: '2019-09-17T19:30:40+00:00'
    Path: /backup/
    UserId: AIDA2222222222EXAMPLE
    UserName: arq-45EFD6D1-CE56-459B-B39F-F9C1F78FBE19
  - Arn: arn:aws:iam::123456789012:user/cli-user
    CreateDate: '2019-09-17T19:30:40+00:00'
    Path: /
    UserId: AIDA3333333333EXAMPLE
    UserName: cli-user
```

Berikut ini adalah contoh `yaml-stream` output dalam hubungannya dengan menggunakan `--page-size` parameter untuk paginasi konten YAML yang dialirkan.

```
$ aws iam list-users --output yaml-stream --page-size 2
```

```
- IsTruncated: true
  Marker: ab1234cdef5ghi67jk8lmo9p/q012rs3t445uv6789w0x1y2z/345a6b78c9d00/1efgh234ij56klmno78pqrstu90vwxyx  
  Users:
  - Arn: arn:aws:iam::123456789012:user/Admin
    CreateDate: '2014-10-16T16:03:09+00:00'
    PasswordLastUsed: '2016-06-03T18:37:29+00:00'
    Path: /
    UserId: AIDA1111111111EXAMPLE
    UserName: Admin
  - Arn: arn:aws:iam::123456789012:user/backup/backup-user
    CreateDate: '2019-09-17T19:30:40+00:00'
    Path: /backup/
    UserId: AIDA2222222222EXAMPLE
    UserName: arq-45EFD6D1-CE56-459B-B39F-F9C1F78FBE19
- IsTruncated: false
  Users:
  - Arn: arn:aws:iam::123456789012:user/cli-user
    CreateDate: '2019-09-17T19:30:40+00:00'
    Path: /
    UserId: AIDA3333333333EXAMPLE
    UserName: cli-user
```

## Format keluaran teks
<a name="text-output"></a>

`text`Format mengatur AWS CLI output ke dalam baris yang dibatasi tab. Ini bekerja dengan baik dengan alat teks Unix tradisional seperti`grep`,`sed`, dan`awk`, dan pemrosesan teks yang dilakukan oleh PowerShell. 

Format `text` output mengikuti struktur dasar yang ditunjukkan di bawah ini. Kolom diurutkan menurut abjad dengan nama kunci yang sesuai dari objek JSON yang mendasarinya.

```
IDENTIFIER  sorted-column1 sorted-column2
IDENTIFIER2 sorted-column1 sorted-column2
```

Berikut ini adalah contoh `text` output. Setiap bidang adalah tab yang terpisah dari yang lain, dengan tab tambahan di mana ada bidang kosong.

```
$ aws iam list-users --output text
```

```
USERS   arn:aws:iam::123456789012:user/Admin                2014-10-16T16:03:09+00:00   2016-06-03T18:37:29+00:00   /          AIDA1111111111EXAMPLE   Admin
USERS   arn:aws:iam::123456789012:user/backup/backup-user   2019-09-17T19:30:40+00:00                               /backup/   AIDA2222222222EXAMPLE   backup-user
USERS   arn:aws:iam::123456789012:user/cli-user             2019-09-17T19:11:39+00:00                               /          AIDA3333333333EXAMPLE   cli-user
```

Kolom keempat adalah `PasswordLastUsed` bidang, dan kosong untuk dua entri terakhir karena pengguna tersebut tidak pernah masuk ke Konsol Manajemen AWS.

**penting**  
*Kami sangat menyarankan bahwa jika Anda menentukan `text` output, Anda juga selalu menggunakan [`--query`](cli-usage-filter.md)opsi untuk memastikan perilaku yang konsisten*.   
Ini karena format teks menurut abjad mengurutkan kolom keluaran dengan nama kunci objek JSON yang mendasari yang dikembalikan oleh AWS layanan, dan sumber daya serupa mungkin tidak memiliki nama kunci yang sama. Misalnya, representasi JSON dari instans Amazon EC2 berbasis Linux mungkin memiliki elemen yang tidak ada dalam representasi JSON dari instance berbasis Windows, atau sebaliknya. Selain itu, sumber daya mungkin memiliki elemen nilai kunci yang ditambahkan atau dihapus di pembaruan masa depan, mengubah urutan kolom. Di sinilah `--query` menambah fungsionalitas `text` output untuk memberi Anda kontrol penuh atas format output.   
Dalam contoh berikut, perintah menentukan elemen mana yang akan ditampilkan dan *mendefinisikan urutan* kolom dengan notasi daftar. `[key1, key2, ...]` Ini memberi Anda keyakinan penuh bahwa nilai kunci yang benar selalu ditampilkan di kolom yang diharapkan. Akhirnya, perhatikan bagaimana AWS CLI output `None` sebagai nilai untuk kunci yang tidak ada.  

```
$ aws iam list-users --output text --query 'Users[*].[UserName,Arn,CreateDate,PasswordLastUsed,UserId]'
```

```
Admin         arn:aws:iam::123456789012:user/Admin         2014-10-16T16:03:09+00:00   2016-06-03T18:37:29+00:00   AIDA1111111111EXAMPLE
backup-user   arn:aws:iam::123456789012:user/backup-user   2019-09-17T19:30:40+00:00   None                        AIDA2222222222EXAMPLE
cli-user      arn:aws:iam::123456789012:user/cli-backup    2019-09-17T19:11:39+00:00   None                        AIDA3333333333EXAMPLE
```

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan `grep` dan `awk` dengan `text` output dari `aws ec2 describe-instances` perintah. Perintah pertama menampilkan Availability Zone, status saat ini, dan ID instance dari setiap instance dalam `text` output. Perintah kedua memproses output yang hanya menampilkan instance IDs dari semua instance yang berjalan di `us-west-2a` Availability Zone.

```
$ aws ec2 describe-instances --query 'Reservations[*].Instances[*].[Placement.AvailabilityZone, State.Name, InstanceId]' --output text
```

```
us-west-2a      running i-4b41a37c
us-west-2a      stopped i-a071c394
us-west-2b      stopped i-97a217a0
us-west-2a      running i-3045b007
us-west-2a      running i-6fc67758
```

```
$ aws ec2 describe-instances --query 'Reservations[*].Instances[*].[Placement.AvailabilityZone, State.Name, InstanceId]' --output text | grep us-west-2a | grep running | awk '{print $3}'
```

```
i-4b41a37c
i-3045b007
i-6fc67758
```

Contoh berikut melangkah lebih jauh dan menunjukkan tidak hanya cara memfilter output, tetapi bagaimana menggunakan output itu untuk mengotomatiskan jenis instance yang berubah untuk setiap instance yang dihentikan.

```
$ aws ec2 describe-instances --query 'Reservations[*].Instances[*].[State.Name, InstanceId]' --output text |
> grep stopped |
> awk '{print $2}' |
> while read line;
> do aws ec2 modify-instance-attribute --instance-id $line --instance-type '{"Value": "m1.medium"}';
> done
```

`text`Outputnya juga bisa berguna di PowerShell. Karena kolom dalam `text` output dibatasi tab, Anda dapat dengan mudah membagi output menjadi array dengan menggunakan PowerShell pembatas. ``t` Perintah berikut menampilkan nilai kolom ketiga (`InstanceId`) jika kolom pertama (`AvailabilityZone`) cocok dengan string`us-west-2a`.

```
PS C:\>aws ec2 describe-instances --query 'Reservations[*].Instances[*].[Placement.AvailabilityZone, State.Name, InstanceId]' --output text |
%{if ($_.split("`t")[0] -match "us-west-2a") { $_.split("`t")[2]; } }
```

```
-4b41a37c
i-a071c394
i-3045b007
i-6fc67758
```

Perhatikan bahwa meskipun contoh sebelumnya menunjukkan cara menggunakan `--query` parameter untuk mengurai objek JSON yang mendasarinya dan mengeluarkan kolom yang diinginkan, PowerShell memiliki kemampuannya sendiri untuk menangani JSON, jika kompatibilitas lintas platform tidak menjadi perhatian. Alih-alih menangani output sebagai teks, seperti yang dibutuhkan kebanyakan shell perintah, PowerShell memungkinkan Anda menggunakan `ConvertFrom-JSON` cmdlet untuk menghasilkan objek yang terstruktur secara hierarkis. Anda kemudian dapat langsung mengakses anggota yang Anda inginkan dari objek itu.

```
(aws ec2 describe-instances --output json | ConvertFrom-Json).Reservations.Instances.InstanceId
```

**Tip**  
Jika Anda mengeluarkan teks, dan memfilter output ke satu bidang menggunakan `--query` parameter, outputnya adalah satu baris nilai yang dipisahkan tab. Untuk mendapatkan setiap nilai ke baris terpisah, Anda dapat menempatkan bidang output dalam tanda kurung, seperti yang ditunjukkan pada contoh berikut.  
Tab dipisahkan, output satu baris:  

```
$ aws iam list-groups-for-user --user-name susan  --output text --query "Groups[].GroupName"
```

```
HRDepartment    Developers      SpreadsheetUsers  LocalAdmins
```
Setiap nilai pada barisnya sendiri dengan memasukkan `[GroupName]` tanda kurung:  

```
$ aws iam list-groups-for-user --user-name susan  --output text --query "Groups[].[GroupName]"
```

```
HRDepartment
Developers
SpreadsheetUsers
LocalAdmins
```

## Format keluaran tabel
<a name="table-output"></a>

`table`Format ini menghasilkan representasi yang dapat dibaca manusia dari AWS CLI output kompleks dalam bentuk tabel.

```
$ aws iam list-users --output table
```

```
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
|                                                                                 ListUsers                                                                     |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
||                                                                                  Users                                                                      ||
|+----------------------------------------------------+---------------------------+---------------------------+----------+-----------------------+-------------+|
||                         Arn                        |       CreateDate          |    PasswordLastUsed       |   Path   |        UserId         |   UserName  ||
|+----------------------------------------------------+---------------------------+---------------------------+----------+-----------------------+-------------+|
||  arn:aws:iam::123456789012:user/Admin              | 2014-10-16T16:03:09+00:00 | 2016-06-03T18:37:29+00:00 | /        | AIDA1111111111EXAMPLE | Admin       ||
||  arn:aws:iam::123456789012:user/backup/backup-user | 2019-09-17T19:30:40+00:00 |                           | /backup/ | AIDA2222222222EXAMPLE | backup-user ||
||  arn:aws:iam::123456789012:user/cli-user           | 2019-09-17T19:11:39+00:00 |                           | /        | AIDA3333333333EXAMPLE | cli-user    ||
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
```

Anda dapat menggabungkan `--query` opsi dengan `table` format untuk menampilkan satu set elemen yang telah dipilih sebelumnya dari output mentah. Perhatikan perbedaan output antara notasi kamus dan daftar: pada contoh pertama, nama kolom diurutkan menurut abjad, dan pada contoh kedua, kolom yang tidak disebutkan namanya diurutkan seperti yang ditentukan oleh pengguna. Untuk informasi selengkapnya tentang `--query` opsi, lihat[Output penyaringan di AWS CLI](cli-usage-filter.md).

```
$ aws ec2 describe-volumes --query 'Volumes[*].{ID:VolumeId,InstanceId:Attachments[0].InstanceId,AZ:AvailabilityZone,Size:Size}' --output table
```

```
------------------------------------------------------
|                   DescribeVolumes                  | 
+------------+----------------+--------------+-------+
|     AZ     |      ID        | InstanceId   | Size  |
+------------+----------------+--------------+-------+
|  us-west-2a|  vol-e11a5288  |  i-a071c394  |  30   |
|  us-west-2a|  vol-2e410a47  |  i-4b41a37c  |  8    |
+------------+----------------+--------------+-------+
```

```
$ aws ec2 describe-volumes --query 'Volumes[*].[VolumeId,Attachments[0].InstanceId,AvailabilityZone,Size]' --output table
```

```
----------------------------------------------------
|                  DescribeVolumes                 |
+--------------+--------------+--------------+-----+
|  vol-e11a5288|  i-a071c394  |  us-west-2a  |  30 |
|  vol-2e410a47|  i-4b41a37c  |  us-west-2a  |  8  |
+--------------+--------------+--------------+-----+
```

## Format keluaran mati
<a name="off-output"></a>

`off`Format menekan semua output perintah ke stdout. Ini berguna dalam skrip otomatisasi dan CI/CD saluran pipa di mana Anda hanya perlu memeriksa kode keluar perintah tanpa memproses output. Pesan kesalahan masih ditampilkan di stderr.

Contoh berikut menunjukkan bagaimana `off` format menekan output yang berhasil. Anda dapat memeriksa kode keluar untuk menentukan keberhasilan:

```
$ aws s3api list-buckets --output off
$ echo $?
0
```

Ini sangat berguna dalam skrip shell tempat Anda ingin memverifikasi sumber daya ada tanpa menangkap output:

```
#!/bin/bash
if aws s3api head-bucket --bucket my-bucket --output off 2>/dev/null; then
    echo "Bucket exists"
else
    echo "Bucket does not exist"
fi
```

**catatan**  
`off`Formatnya hanya menekan stdout. Kesalahan masih ditulis ke stderr.