From c41c9027fca741434e82e5327b16aea3b95bc550 Mon Sep 17 00:00:00 2001 From: Yang Wang Date: Fri, 18 Jul 2025 00:15:25 +1000 Subject: [PATCH] Update regions_by_endpoint for AWS sdk upgrade. (#131400) Also add test to ensure the file has at least one entry for each region so that it is easy to spot missing regions in future upgrades. Relates: #131050 Resolves: #131392 --- .../repositories/s3/regions_by_endpoint.txt | 16 ++++++++++++++++ .../s3/RegionFromEndpointGuesserTests.java | 13 +++++++++++++ 2 files changed, 29 insertions(+) diff --git a/modules/repository-s3/src/main/resources/org/elasticsearch/repositories/s3/regions_by_endpoint.txt b/modules/repository-s3/src/main/resources/org/elasticsearch/repositories/s3/regions_by_endpoint.txt index 3fae5c314c10b..5ca027a5f4a13 100644 --- a/modules/repository-s3/src/main/resources/org/elasticsearch/repositories/s3/regions_by_endpoint.txt +++ b/modules/repository-s3/src/main/resources/org/elasticsearch/repositories/s3/regions_by_endpoint.txt @@ -6,6 +6,10 @@ ap-east-1 s3-fips.ap-east-1.amazonaws.com ap-east-1 s3-fips.dualstack.ap-east-1.amazonaws.com ap-east-1 s3.ap-east-1.amazonaws.com ap-east-1 s3.dualstack.ap-east-1.amazonaws.com +ap-east-2 s3-fips.ap-east-2.amazonaws.com +ap-east-2 s3-fips.dualstack.ap-east-2.amazonaws.com +ap-east-2 s3.ap-east-2.amazonaws.com +ap-east-2 s3.dualstack.ap-east-2.amazonaws.com ap-northeast-1 s3-fips.ap-northeast-1.amazonaws.com ap-northeast-1 s3-fips.dualstack.ap-northeast-1.amazonaws.com ap-northeast-1 s3.ap-northeast-1.amazonaws.com @@ -56,6 +60,14 @@ aws-iso-b-global s3-fips.aws-iso-b-global.sc2s.sgov.gov aws-iso-b-global s3-fips.dualstack.aws-iso-b-global.sc2s.sgov.gov aws-iso-b-global s3.aws-iso-b-global.sc2s.sgov.gov aws-iso-b-global s3.dualstack.aws-iso-b-global.sc2s.sgov.gov +aws-iso-e-global s3-fips.aws-iso-e-global.cloud.adc-e.uk +aws-iso-e-global s3-fips.dualstack.aws-iso-e-global.cloud.adc-e.uk +aws-iso-e-global s3.aws-iso-e-global.cloud.adc-e.uk +aws-iso-e-global s3.dualstack.aws-iso-e-global.cloud.adc-e.uk +aws-iso-f-global s3-fips.aws-iso-f-global.csp.hci.ic.gov +aws-iso-f-global s3-fips.dualstack.aws-iso-f-global.csp.hci.ic.gov +aws-iso-f-global s3.aws-iso-f-global.csp.hci.ic.gov +aws-iso-f-global s3.dualstack.aws-iso-f-global.csp.hci.ic.gov aws-iso-global s3-fips.aws-iso-global.c2s.ic.gov aws-iso-global s3-fips.dualstack.aws-iso-global.c2s.ic.gov aws-iso-global s3.aws-iso-global.c2s.ic.gov @@ -76,6 +88,10 @@ cn-north-1 s3.cn-north-1.amazonaws.com.cn cn-north-1 s3.dualstack.cn-north-1.amazonaws.com.cn cn-northwest-1 s3.cn-northwest-1.amazonaws.com.cn cn-northwest-1 s3.dualstack.cn-northwest-1.amazonaws.com.cn +eusc-de-east-1 s3-fips.eusc-de-east-1.amazonaws.eu +eusc-de-east-1 s3-fips.dualstack.eusc-de-east-1.amazonaws.eu +eusc-de-east-1 s3.eusc-de-east-1.amazonaws.eu +eusc-de-east-1 s3.dualstack.eusc-de-east-1.amazonaws.eu eu-central-1 s3-fips.dualstack.eu-central-1.amazonaws.com eu-central-1 s3-fips.eu-central-1.amazonaws.com eu-central-1 s3.dualstack.eu-central-1.amazonaws.com diff --git a/modules/repository-s3/src/test/java/org/elasticsearch/repositories/s3/RegionFromEndpointGuesserTests.java b/modules/repository-s3/src/test/java/org/elasticsearch/repositories/s3/RegionFromEndpointGuesserTests.java index 9fe0c40c83979..402181878b600 100644 --- a/modules/repository-s3/src/test/java/org/elasticsearch/repositories/s3/RegionFromEndpointGuesserTests.java +++ b/modules/repository-s3/src/test/java/org/elasticsearch/repositories/s3/RegionFromEndpointGuesserTests.java @@ -9,6 +9,11 @@ package org.elasticsearch.repositories.s3; +import software.amazon.awssdk.endpoints.Endpoint; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.endpoints.S3EndpointParams; +import software.amazon.awssdk.services.s3.endpoints.internal.DefaultS3EndpointProvider; + import org.elasticsearch.core.Nullable; import org.elasticsearch.test.ESTestCase; @@ -23,6 +28,14 @@ public void testRegionGuessing() { assertRegionGuess("random.endpoint.internal.net", null); } + public void testHasEntryForEachRegion() { + final var defaultS3EndpointProvider = new DefaultS3EndpointProvider(); + for (var region : Region.regions()) { + final Endpoint endpoint = safeGet(defaultS3EndpointProvider.resolveEndpoint(S3EndpointParams.builder().region(region).build())); + assertNotNull(region.id(), RegionFromEndpointGuesser.guessRegion(endpoint.url().toString())); + } + } + private static void assertRegionGuess(String endpoint, @Nullable String expectedRegion) { assertEquals(endpoint, expectedRegion, RegionFromEndpointGuesser.guessRegion(endpoint)); }