

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

# Menggunakan API untuk Amazon EC2
<a name="ec2-low-level-api"></a>

**penting**  
Per **14 Oktober 2022,** tanggapan HTTP dari Amazon EC2 API tidak lagi menyertakan elemen frase alasan. Seperti yang direkomendasikan oleh [RFC7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2), Anda harus memastikan bahwa aplikasi Anda tidak menggunakan konten frase alasan. Pastikan aplikasi Anda menggunakan elemen kode status 3 digit yang disertakan dalam respons HTTP sebagai gantinya.

Kami menyediakan Query API untuk Amazon EC2, serta perangkat pengembangan perangkat lunak (SDK) AWS yang memungkinkan Anda mengakses Amazon EC2 dari bahasa pemrograman pilihan Anda. Untuk informasi selengkapnya, lihat Panduan [Pengembang Amazon EC2](https://docs.aws.amazon.com/ec2/latest/devguide/).

**Topics**
+ [Pengetahuan yang dibutuhkan](#required-knowledge)
+ [API yang tersedia untuk Amazon EC2](#using-libraries)
+ [Tindakan berdasarkan layanan](OperationList-query.md)
+ [Permintaan kueri](Query-Requests.md)
+ [Dukungan CORS](cors-support.md)
+ [Manifes Impor VM](manifest.md)
+ [Parameter kueri umum](#CommonParameters)
+ [Izin](ec2-api-permissions.md)
+ [Memecahkan masalah kesalahan permintaan API](query-api-troubleshooting.md)
+ [Kode eror](errors-overview.md)

## Pengetahuan yang dibutuhkan
<a name="required-knowledge"></a>

Jika Anda berencana untuk mengakses Amazon EC2 melalui API, Anda harus terbiasa dengan hal-hal berikut:
+ XML
+ Layanan web
+ Permintaan HTTP
+ Satu atau lebih bahasa pemrograman, seperti Java, PHP, Perl, Python, Ruby, C \#, atau C \+\+.

## API yang tersedia untuk Amazon EC2
<a name="using-libraries"></a>

API Kueri Amazon EC2 menyediakan permintaan HTTP atau HTTPS yang menggunakan kata kerja HTTP GET atau POST dan parameter Kueri bernama. `Action`

AWS menyediakan pustaka, kode sampel, tutorial, dan sumber daya lainnya untuk pengembang perangkat lunak yang lebih suka membangun aplikasi menggunakan API khusus bahasa daripada mengirimkan permintaan melalui HTTP atau HTTPS. Pustaka ini menyediakan fungsi dasar yang secara otomatis menangani tugas-tugas seperti menandatangani permintaan Anda secara kriptografis, mencoba ulang permintaan, dan menangani respons kesalahan, sehingga lebih mudah bagi Anda untuk memulai.

Untuk informasi selengkapnya, lihat [Membuat resource Amazon EC2 menggunakan AWS SDK](https://docs.aws.amazon.com/ec2/latest/devguide/sdk-general-information-section.html) di Panduan Pengembang *Amazon* EC2.

## Parameter kueri umum
<a name="CommonParameters"></a>

Sebagian besar tindakan Amazon EC2 API mendukung parameter yang dijelaskan dalam tabel berikut. Parameter umum bervariasi tergantung pada apakah Anda menggunakan Signature Version 2 atau Signature Version 4 untuk menandatangani permintaan Anda. Untuk informasi selengkapnya, lihat [Menandatangani permintaan AWS API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) di *Panduan Pengguna IAM*.

**Topics**
+ [Parameter untuk Versi Tanda Tangan 4](#common-parameters-sigv4)
+ [Parameter untuk Versi Tanda Tangan 2](#common-parameters-sigv2)

### Parameter untuk Versi Tanda Tangan 4
<a name="common-parameters-sigv4"></a>


| Nama | Deskripsi | Diperlukan | 
| --- | --- | --- | 
|  `Action`  | Tindakan yang harus dilakukan.<br />Contoh: `RunInstances` | Ya | 
|  `Version`  | Versi API yang akan digunakan. | Ya | 
|  `X-Amz-Algorithm`  | Algoritma hash yang Anda gunakan untuk membuat tanda tangan permintaan.<br />Contoh: `AWS4-HMAC-SHA256` | Ya | 
|  `X-Amz-Credential`  | Ruang lingkup kredensyal untuk permintaan, dalam format{{access-key-ID}}//{{YYYYMMDD}}/{{region}}/{{service}}`aws4_request`<br />Contoh: `AKIDEXAMPLE/20140707/us-east-1/ec2/aws4_request`  | Ya | 
|  `X-Amz-Date`  | Tanggal dan waktu di mana permintaan ditandatangani, dalam format yyyyymmddthhmmssz. Tanggal harus sesuai dengan tanggal yang disertakan dalam cakupan kredensi untuk `X-Amz-Credential` parameter, atau tanggal yang digunakan dalam `Authorization` header (lihat catatan di bawah tabel).<br />Contoh: `20140707T150456Z` | Ya | 
| X-Amz-SignedHeaders | Header yang Anda sertakan sebagai bagian dari permintaan. Minimal, Anda harus menyertakan `host` header. Jika Anda menyertakan `x-amz-date` header dalam permintaan Anda, Anda harus memasukkannya ke dalam daftar header yang ditandatangani.<br />Contoh: `content-type;host;user-agent` | Ya | 
|  `X-Amz-Signature`  | Tanda tangan yang berasal dari kunci akses rahasia Anda.<br />Contoh: `ced6826de92d2bdeed8f846f0bf508e8559example` | Ya | 
|  `X-Amz-Security-Token`  | Token keamanan sementara diperoleh melalui panggilan ke AWS Security Token Service.<br />Contoh: `AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L` | Tidak | 
|  `DryRun`  | Memeriksa apakah Anda memiliki izin yang diperlukan untuk tindakan tersebut, tanpa benar-benar membuat permintaan. Jika Anda memiliki izin yang diperlukan, permintaan akan kembali`DryRunOperation`; jika tidak, ia kembali`UnauthorizedOperation`. | Tidak | 

`X-Amz-Signature`Parameter `X-Amz-Algorithm` `X-Amz-Credential``X-Amz-SignedHeaders`,,, dan dapat ditentukan sebagai parameter terpisah dalam string kueri, atau nilainya dapat dimasukkan dalam satu `Authorization` header. Untuk informasi selengkapnya, lihat [Menandatangani permintaan AWS API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) di *Panduan Pengguna IAM*.

### Parameter untuk Versi Tanda Tangan 2
<a name="common-parameters-sigv2"></a>


| Nama | Deskripsi | Diperlukan | 
| --- | --- | --- | 
|  `Action`  | Tindakan yang harus dilakukan.<br />Contoh: `RunInstances` | Ya | 
|  `Version`  | Versi API yang akan digunakan. | Ya | 
|  `AWSAccessKeyId`  | ID kunci akses untuk pengirim permintaan. Ini mengidentifikasi akun yang akan dikenakan biaya untuk penggunaan layanan. Akun yang terkait dengan ID kunci akses harus terdaftar untuk Amazon EC2, atau permintaan tidak diterima.<br /> Contoh: `AKIAIOSFODNN7EXAMPLE`  | Ya | 
|  `Expires`  | Tanggal dan waktu di mana tanda tangan yang termasuk dalam permintaan kedaluwarsa, dalam format YYYY-MM-DDThh:mm:ssZ. Untuk informasi selengkapnya, lihat [ISO 8601](http://www.w3.org/TR/NOTE-datetime).<br />Contoh: `2006-07-07T15:04:56Z` | Bersyarat. Permintaan harus menyertakan salah satu Timestamp atauExpires, tetapi tidak dapat berisi keduanya.  | 
|  `Timestamp`  | Tanggal dan waktu di mana permintaan ditandatangani, dalam format YYYY-MM-DDThh:mm:ssZ. Untuk informasi selengkapnya, lihat [ISO 8601](http://www.w3.org/TR/NOTE-datetime).<br />Contoh: `2006-07-07T15:04:56Z` | Bersyarat. Permintaan harus menyertakan salah satu Timestamp atauExpires, tetapi tidak dapat berisi keduanya.  | 
|  `Signature`  | Tanda tangan permintaan.<br />Contoh: `Qnpl4Qk/7tINHzfXCiT7VEXAMPLE` | Ya | 
|  `SignatureMethod`  | Algoritma hash yang Anda gunakan untuk membuat tanda tangan permintaan. Nilai yang valid: `HmacSHA256` \| `HmacSHA1`. <br />Contoh: `HmacSHA256` | Ya | 
|  `SignatureVersion`  | Versi tanda tangan yang Anda gunakan untuk menandatangani permintaan. Tetapkan nilai ini ke`2`. <br />Contoh: `2` | Ya | 
|  `DryRun`  | Memeriksa apakah Anda memiliki izin yang diperlukan untuk tindakan tersebut, tanpa benar-benar membuat permintaan. Jika Anda memiliki izin yang diperlukan, permintaan akan kembali`DryRunOperation`; jika tidak, ia kembali`UnauthorizedOperation`. | Tidak | 
|  `SecurityToken`  | Token keamanan sementara diperoleh melalui panggilan ke AWS Security Token Service.<br />Contoh: `AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L` | Tidak | 

Nilai parameter harus URL-encoded. Ini berlaku untuk parameter Kueri apa pun yang diteruskan ke Amazon EC2 dan biasanya diperlukan dalam parameter. `Signature` Beberapa klien melakukan ini secara otomatis, tetapi ini bukan norma. 