Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Injeksi awalan host
catatan
Untuk bantuan dalam memahami tata letak halaman pengaturan, atau dalam menafsirkan tabel AWS Dukungan oleh SDK dan alat berikut, lihatMemahami halaman pengaturan panduan ini.
Injeksi awalan host adalah fitur di mana AWS SDK secara otomatis menambahkan awalan ke nama host titik akhir layanan untuk operasi API tertentu. Awalan ini dapat berupa string statis atau nilai dinamis yang mencakup data dari parameter permintaan Anda.
Misalnya, saat menggunakan Amazon Simple Storage Service untuk melakukan tindakan pada objek atau bucket Amazon S3, SDK menggantikan nama bucket dan Akun AWS ID Anda di titik akhir API.
Meskipun perilaku ini diperlukan untuk titik akhir AWS layanan normal, perilaku ini dapat menyebabkan masalah saat menggunakan titik akhir khusus seperti titik akhir VPC atau alat pengujian lokal. Dalam kasus ini, Anda mungkin perlu menonaktifkan injeksi awalan host.
Konfigurasikan fungsi ini dengan menggunakan yang berikut:
disable_host_prefix_injection- pengaturan AWSconfigfile bersamaAWS_DISABLE_HOST_PREFIX_INJECTION- variabel lingkunganaws.disableHostPrefixInjection- Properti sistem JVM: hanya Java/Kotlin-
Pengaturan ini mengontrol apakah SDK atau alat akan memodifikasi nama host titik akhir dengan mengawali awalan host seperti yang didefinisikan dalam objek atau variabel klien SDK Anda.
Nilai default:
falseNilai yang valid:
-
true— Nonaktifkan injeksi awalan host. SDK tidak akan mengubah nama host titik akhir. -
false— Aktifkan injeksi awalan host. SDK akan menambahkan awalan host ke nama host titik akhir.
-
Contoh pengaturan nilai ini dalam config file:
[default] disable_host_prefix_injection = true
Linux/macOS contoh pengaturan variabel lingkungan melalui baris perintah:
export AWS_DISABLE_HOST_PREFIX_INJECTION=true
Contoh Windows pengaturan variabel lingkungan melalui baris perintah:
setx AWS_DISABLE_HOST_PREFIX_INJECTION true
Contoh injeksi awalan host
Tabel contoh berikut menunjukkan bagaimana SDK memodifikasi titik akhir saat injeksi awalan host diaktifkan dan dinonaktifkan.
-
Awal an host: Templat string properti awalan host yang ditetapkan pada objek klien SDK atau variabel dalam kode.
-
In put: Input tambahan yang ditetapkan pada objek klien SDK atau variabel dalam kode.
-
Titik akhir klien: Titik akhir turunan klien.
-
Nilai pengaturan: Nilai yang diselesaikan untuk pengaturan sebelumnya.
-
Titik akhir yang dihasilkan: Titik akhir yang dihasilkan yang digunakan klien SDK untuk melakukan panggilan API.
| Awalan host | Masukan | Titik akhir klien | Pengaturan nilai | Titik akhir yang dihasilkan |
|---|---|---|---|---|
| “data.” | {} | "https://service.us-west-2.amazonaws.com" | false | "https://data.service.us-west-2.amazonaws.com" |
| “{Ember} - {AccountId}.” | Ember: “amzn-s3-demo-bucket1",:" 123456789012" AccountId | "https://service.us-west-2.amazonaws.com" | false | "https://amzn-s3-demo-bucket1-123456789012.service.us-west-2.amazonaws.com" |
| “data.” | {} | "https://override.us-west-2.amazonaws.com"(sebagai titik akhir penggantian) | true | "https://override.us-west-2.amazonaws.com" |
Dukungan oleh AWS SDK dan alat
SDK berikut mendukung fitur dan pengaturan yang dijelaskan dalam topik ini. Setiap pengecualian sebagian dicatat. Setiap pengaturan properti sistem JVM didukung oleh AWS SDK untuk Java dan AWS SDK untuk Kotlin satu-satunya.
| SDK | Didukung | Catatan atau informasi lebih lanjut |
|---|---|---|
| AWS CLI v2 | Ya | |
| SDK untuk C++ | Tidak | Pengaturan tidak didukung, tetapi dapat dikonfigurasi dalam kode pada klien menggunakan: enableHostPrefixInjection |
| SDK untuk Go V2 (1.x) | Tidak | Dapat dinonaktifkan menggunakan middleware. |
| SDK untuk Go 1.x (V1) | Tidak | |
| SDK untuk Java 2.x | Tidak | Pengaturan tidak didukung, tetapi dapat dikonfigurasi dalam kode pada klien menggunakan: SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION |
| SDK untuk Java 1.x | Tidak | Pengaturan tidak didukung, tetapi dapat dikonfigurasi dalam kode pada klien menggunakan: withDisableHostPrefixInjection. |
| SDK untuk JavaScript 3.x | Tidak | Pengaturan tidak didukung, tetapi dapat dikonfigurasi dalam kode pada klien menggunakan: disableHostPrefix. |
| SDK untuk JavaScript 2.x | Tidak | Pengaturan tidak didukung, tetapi dapat dikonfigurasi dalam kode pada klien menggunakan: hostPrefixEnabled. |
| SDK para Kotlin | Tidak | |
| SDK untuk.NET 4.x | Tidak | Pengaturan tidak didukung, tetapi dapat dikonfigurasi dalam kode pada klien menggunakan: DisableHostPrefixInjection. |
| SDK untuk.NET 3.x | Tidak | Pengaturan tidak didukung, tetapi dapat dikonfigurasi dalam kode pada klien menggunakan: DisableHostPrefixInjection. |
| SDK para PHP 3.x | Tidak | Pengaturan tidak didukung, tetapi dapat dikonfigurasi dalam kode pada klien menggunakan: disable_host_prefix_injection. |
| SDK untuk Python (Boto3) | Ya | Dapat dikonfigurasi dalam kode pada klien menggunakan: inject_host_prefix |
| SDK para Ruby 3.x | Tidak | Pengaturan tidak didukung, tetapi dapat dikonfigurasi dalam kode pada klien menggunakan: disable_host_prefix_injection |
| SDK para Rust | Tidak | |
| SDK para Swift | Tidak | |
| Alat untuk PowerShell V5 | Tidak | Pengaturan tidak didukung, tetapi dapat dimasukkan dalam cmdlet tertentu menggunakan parameter. -ClientConfig @{DisableHostPrefixInjection = $true} |
| Alat untuk PowerShell V4 | Tidak | Pengaturan tidak didukung, tetapi dapat dimasukkan dalam cmdlet tertentu menggunakan parameter. -ClientConfig @{DisableHostPrefixInjection = $true} |