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.
Tópicos
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.
ou region
.amazonaws.comhttps://s3-outposts-fips.
em qualquer comando region
.api.awss3control
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