Mengkonfigurasi titik akhir klien di AWS SDK for Java 2.x - AWS SDK for Java 2.x

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

Mengkonfigurasi titik akhir klien di AWS SDK for Java 2.x

SDK for Java 2.x menyediakan beberapa cara untuk mengonfigurasi titik akhir layanan. Endpoint adalah URL yang digunakan SDK untuk melakukan panggilan API. Layanan AWS Secara default, SDK secara otomatis menentukan titik akhir yang sesuai untuk setiap layanan berdasarkan konfigurasi yang telah Wilayah AWS Anda konfigurasi. Namun, ada skenario di mana Anda mungkin perlu menyesuaikan atau mengganti titik akhir ini:

  • Bekerja dengan implementasi layanan lokal atau pihak ketiga (seperti LocalStack)

  • Menghubungkan ke Layanan AWS melalui proxy atau titik akhir VPC

  • Pengujian terhadap titik akhir layanan beta atau pra-rilis

Opsi konfigurasi titik akhir

AWS SDK for Java 2.x Ini menyediakan beberapa cara untuk mengkonfigurasi titik akhir:

  • Konfigurasi dalam kode dengan menggunakan pembuat klien layanan

  • Konfigurasi eksternal dengan variabel lingkungan

  • Konfigurasi eksternal dengan properti sistem JVM

  • Konfigurasi eksternal dengan file AWS konfigurasi bersama

Konfigurasi titik akhir dalam kode

Menggunakan endpointOverride

Cara paling langsung untuk mengonfigurasi titik akhir adalah dengan menggunakan endpointOverride metode pada pembuat klien layanan. Metode ini menerima URI objek yang mewakili URL endpoint kustom.

contoh Menyetel titik akhir khusus untuk klien Amazon S3
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import java.net.URI; S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .endpointOverride(URI.create("https://my-custom-s3-endpoint.example.com")) .build();

Saat menggunakanendpointOverride, Anda masih harus menentukan wilayah untuk klien, meskipun titik akhir disetel secara eksplisit. Wilayah ini digunakan untuk menandatangani permintaan.

Penemuan titik akhir

Beberapa Layanan AWS mendukung penemuan titik akhir, di mana SDK dapat secara otomatis menemukan titik akhir optimal untuk digunakan. Anda dapat mengaktifkan atau menonaktifkan fitur ini menggunakan endpointDiscoveryEnabled metode pada pembuat klien layanan.

contoh Mengaktifkan penemuan titik akhir untuk klien DynamoDB
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; DynamoDbClient dynamoDb = DynamoDbClient.builder() .region(Region.US_WEST_2) .endpointDiscoveryEnabled(true) .build();

Konfigurasi titik akhir tingkat permintaan

Dalam beberapa kasus, Anda mungkin perlu mengganti titik akhir untuk permintaan tertentu saat menggunakan klien yang sama untuk permintaan lain dengan titik akhir default. AWS SDK for Java 2.x Mendukung ini melalui penggantian permintaan.

contoh Mengganti titik akhir untuk permintaan tertentu
import software.amazon.awssdk.core.SdkRequest; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.GetObjectRequest; import software.amazon.awssdk.http.SdkHttpRequest; S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .build(); // Create a request GetObjectRequest getObjectRequest = GetObjectRequest.builder() .bucket("my-bucket") .key("my-key") .overrideConfiguration(c -> c.putHeader("Host", "custom-endpoint.example.com")) .build(); // Execute the request with the custom endpoint s3.getObject(getObjectRequest);

Perhatikan bahwa penggantian titik akhir tingkat permintaan terbatas dan mungkin tidak berfungsi untuk semua layanan atau skenario. Untuk kebanyakan kasus, disarankan untuk menggunakan konfigurasi titik akhir tingkat klien.

Konfigurasi titik akhir eksternal

Menggunakan variabel lingkungan

Anda dapat mengonfigurasi titik akhir menggunakan variabel lingkungan. SDK mendukung konfigurasi titik akhir khusus layanan melalui variabel lingkungan dalam formatAWS_ENDPOINT_URL_[SERVICE], di mana [SERVICE] adalah pengenal layanan huruf besar.

contoh Menyetel titik akhir S3 menggunakan variabel lingkungan
# For Linux/macOS export AWS_ENDPOINT_URL_S3=https://my-custom-s3-endpoint.example.com # For Windows set AWS_ENDPOINT_URL_S3=https://my-custom-s3-endpoint.example.com

Anda juga dapat mengatur awalan atau akhiran URL endpoint global menggunakan variabel lingkungan berikut:

  • AWS_ENDPOINT_URL- Menetapkan titik akhir global untuk semua layanan

  • AWS_ENDPOINT_URL_PREFIX- Menambahkan awalan ke semua titik akhir layanan

  • AWS_ENDPOINT_URL_SUFFIX- Menambahkan akhiran ke semua titik akhir layanan

Menggunakan properti sistem JVM

Anda juga dapat mengonfigurasi titik akhir menggunakan properti sistem JVM. Formatnya mirip dengan variabel lingkungan tetapi menggunakan konvensi penamaan yang berbeda.

contoh Mengatur titik akhir S3 menggunakan properti sistem JVM
java -Daws.endpointUrl.s3=https://my-custom-s3-endpoint.example.com -jar your-application.jar

Konfigurasi endpoint global juga tersedia melalui properti sistem:

  • aws.endpointUrl- Menetapkan titik akhir global untuk semua layanan

  • aws.endpointUrl.prefix- Menambahkan awalan ke semua titik akhir layanan

  • aws.endpointUrl.suffix- Menambahkan akhiran ke semua titik akhir layanan

Menggunakan file AWS konfigurasi bersama

Ini AWS SDK for Java 2.x juga mendukung konfigurasi titik akhir melalui file AWS konfigurasi bersama, biasanya terletak di ~/.aws/config (Linux/macOS) atau (Windows). %USERPROFILE%\.aws\config Lihat Panduan Referensi Alat AWS SDKs dan untuk informasi dan contoh.

Konfigurasi diutamakan

Ketika beberapa konfigurasi titik akhir hadir, SDK mengikuti urutan prioritas ini (dari tertinggi ke terendah):

  1. Pengesampingan tingkat permintaan (bila berlaku)

  2. Konfigurasi tingkat klien melalui endpointOverride

  3. Variabel-variabel lingkungan

  4. Properti sistem JVM

  5. File AWS konfigurasi bersama

  6. Titik akhir default berdasarkan konfigurasi Wilayah AWS

Konfigurasi titik akhir khusus layanan

Beberapa Layanan AWS memiliki opsi konfigurasi titik akhir tambahan khusus untuk layanan itu. Berikut adalah beberapa contoh:

Konfigurasi Titik Akhir Amazon S3

Amazon S3 mendukung beberapa konfigurasi titik akhir melalui kelas: S3Configuration

  • dualstackEnabled- Memungkinkan IPv6 dukungan

  • accelerateModeEnabled- Mengaktifkan Akselerasi Transfer S3

  • pathStyleAccessEnabled- Menggunakan akses gaya jalur alih-alih gaya yang dihosting virtual

  • useArnRegionEnabled- Menggunakan wilayah dari ARN untuk permintaan lintas wilayah

  • fipsModeEnabled- Permintaan rute ke titik akhir yang sesuai dengan FIPS

contoh Mengkonfigurasi opsi titik akhir khusus S3
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.S3Configuration; S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .serviceConfiguration(S3Configuration.builder() .accelerateModeEnabled(true) .dualstackEnabled(true) .pathStyleAccessEnabled(false) .fipsModeEnabled(true) .build()) .build();

Konfigurasi titik akhir DynamoDB

Untuk DynamoDB, Anda mungkin ingin menggunakan penemuan titik akhir atau terhubung ke DynamoDB lokal untuk pengujian:

contoh Menghubungkan ke DynamoDB lokal
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import java.net.URI; DynamoDbClient dynamoDb = DynamoDbClient.builder() .endpointOverride(URI.create("http://localhost:8000")) // The region is meaningless for DynamoDB local but required for the client builder. .region(Region.US_WEST_2) .build();

DynamoDB juga mendukung penggunaan endpoint berbasis akun, yang dapat Anda konfigurasi dalam kode atau menggunakan pengaturan eksternal. Contoh berikut menunjukkan cara menonaktifkan penggunaan endpoint berbasis akun dalam kode saat Anda membuat klien (pengaturan default lebih disukai):

DynamoDbClient dynamoDbClient = DynamoDbClient.builder() .region(Region.US_EAST_1) .accountIdEndpointMode(AccountIdEndpointMode.DISABLED) .build();

Praktik terbaik

Saat mengonfigurasi titik akhir di AWS SDK for Java 2.x, pertimbangkan praktik terbaik ini:

  • Gunakan konfigurasi eksternal untuk titik akhir khusus lingkungan —Gunakan variabel lingkungan, properti sistem, atau file AWS konfigurasi untuk titik akhir yang bervariasi antar lingkungan (pengembangan, pengujian, produksi).

  • Gunakan konfigurasi dalam kode untuk titik akhir khusus aplikasi — Gunakan endpointOverride metode pembuat klien untuk titik akhir yang spesifik untuk desain aplikasi Anda.

  • Selalu tentukan wilayah —Bahkan saat mengganti titik akhir, selalu tentukan wilayah seperti yang digunakan untuk penandatanganan permintaan.

  • Berhati-hatilah dengan penggantian titik akhir global —Menggunakan penggantian titik akhir global dapat memengaruhi semua layanan, yang mungkin bukan yang Anda inginkan.

  • Pertimbangkan implikasi keamanan —Saat menggunakan titik akhir khusus, pastikan mereka memiliki langkah-langkah keamanan yang tepat, terutama untuk beban kerja produksi.