Mengatur AWS Region untuk 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.

Mengatur AWS Region untuk AWS SDK for Java 2.x

Klien SDK terhubung ke Layanan AWS dalam spesifik AWS Region yang Anda tentukan saat Anda membuat klien. Konfigurasi ini memungkinkan aplikasi Anda berinteraksi dengan AWS sumber daya di wilayah geografis tersebut. Saat Anda membuat klien layanan tanpa menyetel Region secara eksplisit, SDK menggunakan Region default dari konfigurasi eksternal Anda.

Konfigurasikan secara eksplisit AWS Region

Untuk secara eksplisit menetapkan Region, kami sarankan Anda menggunakan konstanta yang didefinisikan dalam kelas Region. Ini adalah enumerasi dari semua wilayah yang tersedia untuk umum.

Untuk membuat klien dengan Region yang disebutkan dari kelas, gunakan metode pembuat klien. region

Ec2Client ec2 = Ec2Client.builder() .region(Region.US_WEST_2) .build();

Jika Region yang ingin Anda gunakan bukan salah satu enumerasi di Region kelas, Anda dapat membuat Region baru dengan menggunakan metode statis. of Metode ini memungkinkan Anda mengakses Wilayah baru tanpa memutakhirkan SDK.

Region newRegion = Region.of("us-east-42"); Ec2Client ec2 = Ec2Client.builder() .region(newRegion) .build();
catatan

Setelah Anda membangun klien dengan pembangun, itu tidak dapat diubah dan AWS Region tidak dapat diubah. Jika Anda perlu bekerja dengan beberapa AWS Region untuk layanan yang sama, Anda harus membuat beberapa klien—satu per Wilayah.

Biarkan SDK secara otomatis menentukan default AWS Region dari lingkungan

Ketika kode Anda berjalan pada Amazon EC2 atau AWS Lambda, Anda mungkin ingin mengonfigurasi klien untuk menggunakan kode AWS Region yang sama dengan yang dijalankan kode Anda. Ini memisahkan kode Anda dari lingkungan tempat ia berjalan dan membuatnya lebih mudah untuk menerapkan aplikasi Anda ke beberapa AWS Region untuk latensi atau redundansi yang lebih rendah.

Untuk menggunakan rantai AWS Region penyedia default untuk menentukan Wilayah dari lingkungan, gunakan create metode pembuat klien.

Ec2Client ec2 = Ec2Client.create();

Anda juga dapat mengkonfigurasi klien dengan cara lain, tetapi tidak mengatur Wilayah. SDK mengambil AWS Region dengan menggunakan rantai penyedia wilayah default:

Ec2Client ec2Client = Ec2Client.builder() .credentialsProvider(ProfileCredentialsProvider.builder() .profileName("my-profile") .build()) .build();

Jika Anda tidak menyetel secara eksplisit menggunakan region metode ini, SDK akan berkonsultasi AWS Region dengan rantai penyedia wilayah default untuk menentukan Wilayah yang akan digunakan.

Memahami rantai AWS Region penyedia default

SDK mengambil langkah-langkah berikut untuk mencari: AWS Region

  1. Setiap Region eksplisit yang disetel dengan menggunakan region metode pada builder itu sendiri lebih diutamakan daripada yang lainnya.

  2. SDK mencari properti sistem JVM aws.region dan menggunakan nilainya jika ditemukan.

  3. Variabel AWS_REGION lingkungan diperiksa. Jika disetel, Wilayah itu digunakan untuk mengkonfigurasi klien.

    catatan

    Lambda Wadah menetapkan variabel lingkungan ini.

  4. SDK memeriksa profil aktif di file konfigurasi dan kredensial AWS bersama. Jika region properti ada, SDK menggunakannya.

    defaultProfil adalah profil aktif kecuali diganti oleh variabel AWS_PROFILE lingkungan atau properti sistem aws.profile JVM. Jika SDK menemukan region properti di kedua file untuk profil yang sama (termasuk default profil), SDK akan menggunakan nilai dalam file kredensial bersama.

  5. SDK mencoba menggunakan layanan metadata Amazon EC2 instance (IMDS) untuk menentukan Wilayah instance yang sedang berjalan. Amazon EC2

    • Untuk keamanan yang lebih besar, Anda harus menonaktifkan SDK dari mencoba menggunakan IMDS versi 1. Anda menggunakan pengaturan yang sama untuk menonaktifkan versi 1 yang dijelaskan di Dapatkan kredensi peran IAM dengan aman bagian.

  6. Jika SDK masih belum menemukan Wilayah pada titik ini, pembuatan klien gagal dengan pengecualian.

Saat mengembangkan AWS aplikasi, pendekatan umum adalah menggunakan file konfigurasi bersama untuk mengatur Wilayah untuk pengembangan lokal, dan mengandalkan rantai penyedia wilayah default untuk menentukan Wilayah saat aplikasi berjalan pada AWS infrastruktur. Ini sangat menyederhanakan pembuatan klien dan membuat aplikasi Anda tetap portabel.

Periksa untuk melihat apakah layanan tersedia di suatu Wilayah

Untuk melihat apakah tertentu Layanan AWS tersedia di Wilayah, gunakan serviceMetadata metode statis pada klien layanan:

DynamoDbClient.serviceMetadata().regions().forEach(System.out::println);

Cuplikan sebelumnya mencetak daftar panjang AWS Region kode yang memiliki layanan DynamoDB:

af-south-1 ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ...

Anda dapat menggunakan kode untuk mencari enumerasi kelas Region untuk Wilayah yang Anda butuhkan untuk digunakan oleh klien layanan Anda.

Misalnya, jika Anda ingin bekerja dengan DynamoDB di Wilayah dengan ap-northeast-2 kode, buat klien DynamoDB Anda dengan setidaknya konfigurasi berikut:

DynamoDbClient ddb = DynamoDbClient.builder() .region(Region.AP_NORTHEAST_2) .build();

Pilih titik akhir tertentu

Dalam situasi tertentu—seperti untuk menguji fitur pratinjau layanan sebelum fitur lulus ke ketersediaan umum—Anda mungkin perlu menentukan titik akhir tertentu di Wilayah. Dalam situasi ini, klien layanan dapat dikonfigurasi dengan memanggil endpointOverride metode.

Misalnya, untuk mengonfigurasi Amazon EC2 klien agar menggunakan Wilayah Eropa (Irlandia) dengan titik akhir tertentu, gunakan kode berikut.

Ec2Client ec2 = Ec2Client.builder() .region(Region.EU_WEST_1) .endpointOverride(URI.create("https://ec2.eu-west-1.amazonaws.com")) .build();

Lihat Wilayah dan Titik Akhir untuk daftar wilayah saat ini dan titik akhir yang sesuai untuk semua AWS layanan.