View a markdown version of this page

Injeksi awalan host - AWS SDK dan Alat

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 AWS config file bersama
AWS_DISABLE_HOST_PREFIX_INJECTION- variabel lingkungan
aws.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: false

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