Usar endpoints de pilha dupla do S3 no Outposts - Amazon S3 on Outposts

Usar endpoints de pilha dupla do S3 no Outposts

Os endpoints de pilha dupla do S3 no Outposts oferecem suporte a solicitações para buckets do S3 no Outposts por IPv6 e IPv4. Esta seção descreve como usar os endpoints de pilha dupla do S3 no Outposts.

Endpoints de pilha dupla do S3 no Outposts

Quando você faz uma solicitação para um endpoint de pilha dupla, o URL do bucket do S3 no Outposts é resolvido para um endereço IPv6 ou IPv4. Para obter mais informações sobre como acessar um bucket do S3 no Outposts por IPv6, consulte Fazer solicitações ao S3 no Outposts por IPv6.

Para acessar um bucket do S3 no Outposts por meio de um endpoint de pilha dupla, use um nome de endpoint do tipo caminho. O S3 no Outposts oferece suporte apenas a nomes regionais de endpoint de pilha dupla, o que significa que você deve especificar a região como parte do nome.

Para endpoints FIPS de pilha dupla do tipo caminho, use a seguinte convenção de nomenclatura:

s3-outposts-fips.region.api.aws

Para endpoints não FIPS de pilha dupla, use a seguinte convenção de nomenclatura:

s3-outposts.region.api.aws
nota

Os nomes de endpoint do tipo hospedado virtual não são compatíveis com o S3 no Outposts.

Usar endpoints de pilha dupla da AWS CLI

Esta seção fornece exemplos de comandos da AWS CLI usados para fazer solicitações a um endpoint de pilha dupla. Para obter instruções de configuração da AWS CLI, consulte Como começar a usar a AWS CLI e o SDK para Java.

Define o valor de configuração use_dualstack_endpoint como true em um perfil no arquivo do AWS Config para direcionar todas as solicitações do Amazon S3 feitas pelos comandos s3 e s3api da AWS CLI ao endpoint de pilha dupla para a região especificada. Especifique a região no arquivo de configuração ou em um comando usando a opção --region.

Ao usar endpoints de pilha dupla com a AWS CLI, somente o tipo de endereçamento path é compatível. O tipo de endereçamento, definido no arquivo de configuração, determina se o nome do bucket está no nome do host ou no URL. Para obter mais informações, consulte s3outposts no Guia de Usuário AWS CLI.

Para usar um endpoint de pilha dupla por meio da AWS CLI, use o parâmetro --endpoint-url com o endpoint http://s3.dualstack.region.amazonaws.com ou https://s3-outposts-fips.region.api.aws em qualquer comando s3control ou s3outposts.

Por exemplo:

$ aws s3control list-regional-buckets --endpoint-url https://s3-outposts.region.api.aws

Usar endpoints de pilha dupla do S3 no Outposts com os AWS SDKs

Esta seção fornece exemplos de como acessar um endpoint de pilha dupla usando os AWS SDKs.

AWS SDK for Java 2.xExemplo do endpoint de pilha dupla do

Os exemplos a seguir mostram como usar as classes S3ControlClient e S3OutpostsClient para habilitar endpoints de pilha dupla ao criar um cliente do S3 no Outposts usando o AWS SDK for Java 2.x. Para obter instruções sobre como criar e testar um exemplo funcional em Java para o Amazon S3 no Outposts, consulte Como começar a usar a AWS CLI e o SDK para Java.

exemplo : criar uma classe S3ControlClient com endpoints de pilha dupla habilitados
import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3control.S3ControlClient; import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsRequest; import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsResponse; import software.amazon.awssdk.services.s3control.model.S3ControlException; public class DualStackEndpointsExample1 { public static void main(String[] args) { Region clientRegion = Region.of("us-east-1"); String accountId = "111122223333"; String navyId = "9876543210"; try { // Create an S3ControlClient with dual-stack endpoints enabled. S3ControlClient s3ControlClient = S3ControlClient.builder() .region(clientRegion) .dualstackEnabled(true) .build(); ListRegionalBucketsRequest listRegionalBucketsRequest = ListRegionalBucketsRequest.builder() .accountId(accountId) .outpostId(navyId) .build(); ListRegionalBucketsResponse listBuckets = s3ControlClient.listRegionalBuckets(listRegionalBucketsRequest); System.out.printf("ListRegionalBuckets Response: %s%n", listBuckets.toString()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (S3ControlException e) { // Unknown exceptions will be thrown as an instance of this type. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 on Outposts couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3 on Outposts. e.printStackTrace(); } } }
exemplo : criar um S3OutpostsClient com endpoints de pilha dupla habilitados
import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3outposts.S3OutpostsClient; import software.amazon.awssdk.services.s3outposts.model.ListEndpointsRequest; import software.amazon.awssdk.services.s3outposts.model.ListEndpointsResponse; import software.amazon.awssdk.services.s3outposts.model.S3OutpostsException; public class DualStackEndpointsExample2 { public static void main(String[] args) { Region clientRegion = Region.of("us-east-1"); try { // Create an S3OutpostsClient with dual-stack endpoints enabled. S3OutpostsClient s3OutpostsClient = S3OutpostsClient.builder() .region(clientRegion) .dualstackEnabled(true) .build(); ListEndpointsRequest listEndpointsRequest = ListEndpointsRequest.builder().build(); ListEndpointsResponse listEndpoints = s3OutpostsClient.listEndpoints(listEndpointsRequest); System.out.printf("ListEndpoints Response: %s%n", listEndpoints.toString()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (S3OutpostsException e) { // Unknown exceptions will be thrown as an instance of this type. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 on Outposts couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3 on Outposts. e.printStackTrace(); } } }

Se você estiver usando o AWS SDK for Java 2.x no Windows, talvez precise definir a seguinte propriedade da máquina virtual Java (JVM):

java.net.preferIPv6Addresses=true