Nozioni di base tramite l'utilizzo di AWS CLI e SDK per Java - Amazon Simple Storage Service

Nozioni di base tramite l'utilizzo di AWS CLI e SDK per Java

Con Amazon S3 su Outposts è possibile creare bucket S3 su AWS Outposts, nonché archiviare e recuperare facilmente gli oggetti on-Premise per le applicazioni che richiedono l'accesso ai dati in locale, l'elaborazione dei dati in locale e la residenza dei dati. S3 su Outposts fornisce una nuova classe di storage, S3 Outposts (OUTPOSTS), che utilizza le API Amazon S3 ed è progettata per archiviare i dati in modo durevole e ridondante su più dispositivi e server su AWS Outposts. Comunichi con il bucket Outpost utilizzando un punto di accesso e una connessione di endpoint su un Virtual Private Cloud (VPC). Sui bucket Outposts puoi utilizzare le stesse API e caratteristiche di Amazon S3, comprese policy di accesso, crittografia e tagging. Puoi utilizzare S3 su Outposts tramite la AWS Management Console, AWS Command Line Interface (AWS CLI), gli SDK AWS o l'API REST. Per ulteriori informazioni, consulta Che cos'è Amazon S3 su Outposts?

Per iniziare a utilizzare S3 su Outposts devi creare un bucket, un punto di accesso e un endpoint. Quindi puoi caricare gli oggetti nel bucket. Gli esempi seguenti illustrano come iniziare a utilizzare S3 su Outposts utilizzando AWS CLI e l’SDK per Java. Per le nozioni di base sulla console, consulta Nozioni di base per l'utilizzo di AWS Management Console.

Fase 1: creazione di un bucket

Gli esempi seguenti illustrano come creare un bucket S3 su Outposts utilizzando AWS CLI e SDK per Java.

AWS CLI

L'esempio seguente crea un bucket S3 su Outposts (s3-outposts:CreateBucket) utilizzando la AWS CLI. Per eseguire questo comando, sostituire user input placeholders con le proprie informazioni.

aws s3control create-bucket --bucket example-outposts-bucket --outpost-id op-01ac5d28a6a232904
SDK for Java

L'esempio seguente crea un bucket S3 su Outposts (s3-outposts:CreateBucket) utilizzando l'SDK per Java.

import com.amazonaws.services.s3control.model.*; public String createBucket(String bucketName) { CreateBucketRequest reqCreateBucket = new CreateBucketRequest() .withBucket(bucketName) .withOutpostId(OutpostId) .withCreateBucketConfiguration(new CreateBucketConfiguration()); CreateBucketResult respCreateBucket = s3ControlClient.createBucket(reqCreateBucket); System.out.printf("CreateBucket Response: %s%n", respCreateBucket.toString()); return respCreateBucket.getBucketArn(); }

Fase 3: creazione di un punto di accesso

Per accedere al bucket Amazon S3 su Outposts devi creare e configurare un punto di accesso. Questi esempi illustrano come creare un punto di accesso utilizzando AWS CLI e l'SDK per Java.

Gli Access Point semplificano la gestione dell'accesso ai dati su vasta scala per set di dati condivisi in Amazon S3. Gli access point sono endpoint di rete denominati che vengono collegati a bucket che possono essere utilizzati per eseguire operazioni su oggetti di Amazon S3, ad esempio GetObject e PutObject. Con S3 su Outposts devi utilizzare i punti di accesso per accedere a qualsiasi oggetto in un bucket Outposts. I punti di accesso supportano solo l'indirizzamento in stile hosting virtuale.

AWS CLI

Nell'esempio della AWS CLI seguente viene creato un punto di accesso per un bucket di Outposts. Per eseguire questo comando, sostituire user input placeholders con le proprie informazioni.

aws s3control create-access-point --account-id 123456789012 --name example-outposts-access-point --bucket "arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outposts-bucket" --vpc-configuration VpcId=example-vpc-12345
SDK for Java

Nell'esempio SDK per Java seguente viene creato un punto di accesso per un bucket Outposts. Per utilizzare questo comando, sostituisci user input placeholders con le tue informazioni.

import com.amazonaws.services.s3control.model.*; public String createAccessPoint(String bucketArn, String accessPointName) { CreateAccessPointRequest reqCreateAP = new CreateAccessPointRequest() .withAccountId(AccountId) .withBucket(bucketArn) .withName(accessPointName) .withVpcConfiguration(new VpcConfiguration().withVpcId("vpc-12345")); CreateAccessPointResult respCreateAP = s3ControlClient.createAccessPoint(reqCreateAP); System.out.printf("CreateAccessPoint Response: %s%n", respCreateAP.toString()); return respCreateAP.getAccessPointArn(); }

Fase 3: creazione di un endpoint

Per instradare le richieste verso un punto di accesso Amazon S3 su Outposts, è necessario creare e configurare un endpoint S3 su Outposts. Ogni cloud privato virtuale (VPC) del tuo Outpost può avere un endpoint associato. Per ulteriori informazioni sull'endpoint, consulta Requisiti di rete di S3 su Outposts. È necessario creare questi endpoint per poter accedere ai bucket Outposts ed eseguire operazioni sugli oggetti. Per ulteriori informazioni, consultare Endpoint.

Questi esempi illustrano come creare un endpoint utilizzando AWS CLI e SDK per Java. Per ulteriori informazioni sulle autorizzazioni richieste per la creazione e la gestione degli endpoint, consulta Autorizzazioni per endpoint S3 su Outposts.

AWS CLI

Nel seguente esempio AWS CLI viene creato un endpoint per un Outpost utilizzando il tipo di accesso alle risorse del VPC. Il VPC deriva dalla sottorete. Per eseguire questo comando, sostituire user input placeholders con le proprie informazioni.

aws s3outposts create-endpoint --outpost-id op-01ac5d28a6a232904 --subnet-id subnet-8c7a57c5 --security-group-id sg-ab19e0d1

Nel seguente esempio AWS CLI viene creato un endpoint per un Outpost utilizzando il tipo di accesso al pool di indirizzi IP di proprietà del cliente (pool CoIP). Per eseguire questo comando, sostituire user input placeholders con le proprie informazioni.

aws s3outposts create-endpoint --outpost-id op-01ac5d28a6a232904 --subnet-id subnet-8c7a57c5 --security-group-id sg-ab19e0d1 --access-type CustomerOwnedIp --customer-owned-ipv4-pool ipv4pool-coip-12345678901234567
SDK for Java

Nell'esempio SDK per Java seguente viene creato un endpoint per un outpost. Per utilizzare questo comando, sostituisci user input placeholders con le tue informazioni.

import com.amazonaws.services.s3outposts.AmazonS3Outposts; import com.amazonaws.services.s3outposts.AmazonS3OutpostsClientBuilder; import com.amazonaws.services.s3outposts.model.CreateEndpointRequest; import com.amazonaws.services.s3outposts.model.CreateEndpointResult; public void createEndpoint() { AmazonS3Outposts s3OutpostsClient = AmazonS3OutpostsClientBuilder .standard().build(); CreateEndpointRequest createEndpointRequest = new CreateEndpointRequest() .withOutpostId("op-0d79779cef3c30a40") .withSubnetId("subnet-8c7a57c5") .withSecurityGroupId("sg-ab19e0d1") .withAccessType("CustomerOwnedIp") .withCustomerOwnedIpv4Pool("ipv4pool-coip-12345678901234567"); // Use .withAccessType and .withCustomerOwnedIpv4Pool only when the access type is // customer-owned IP address pool (CoIP pool) CreateEndpointResult createEndpointResult = s3OutpostsClient.createEndpoint(createEndpointRequest); System.out.println("Endpoint is created and its ARN is " + createEndpointResult.getEndpointArn()); }

Fase 4: caricamento di un oggetto in un bucket S3 su Outposts

Gli oggetti sono le entità fondamentali archiviate in Amazon S3 su Outposts. Ogni oggetto è contenuto in un bucket. È necessario utilizzare i punti di accesso per accedere a qualsiasi oggetto in un bucket Outpost. Quando specifichi il bucket per le operazioni di oggetto, utilizza il nome della risorsa Amazon (ARN) o l'alias del punto di accesso. Per ulteriori informazioni sugli alias del punto di accesso, consulta Utilizzo di un alias in stile bucket per il punto di accesso del bucket S3 su Outposts.

Nell'esempio seguente viene illustrato il formato ARN per i punti di accesso S3 su Outposts, che include il codice Regione AWS per la Regione in cui si trova l'Outpost, l'ID Account AWS, l'ID Outpost e il nome del punto di accesso:

arn:aws:s3-outposts:region:account-id:outpost/outpost-id/accesspoint/accesspoint-name

Per ulteriori informazioni sugli ARN S3 su Outposts, consulta ARN delle risorse per S3 su Outposts.

Con Amazon S3 su Outposts, i dati degli oggetti vengono sempre archiviati nell'Outpost. Quando AWS installa un rack Outpost, i tuoi dati rimangono locali nel tuo Outpost per soddisfare i requisiti di residenza dei dati. I tuoi oggetti non lasciano mai il tuo Outpost e non sono in una Regione AWS. Dal momento che la AWS Management Console è ospitata nella regione, non puoi utilizzare la console per caricare o gestire oggetti nel tuo Outpost. Tuttavia, puoi utilizzare l'API REST, AWS Command Line Interface (AWS CLI) e gli SDK AWS per caricare e gestire gli oggetti tramite i punti di accesso.

I seguenti esempi AWS CLI e AWS SDK for Java illustrano come caricare un oggetto in un bucket S3 su Outposts utilizzando un punto di accesso.

AWS CLI

Nell'esempio seguente viene inserito un oggetto denominato sample-object.xml in un bucket S3 su Outposts (s3-outposts:PutObject) utilizzando AWS CLI. Per usare questo comando, sostituire user input placeholder con le proprie informazioni. Per ulteriori informazioni su questo comando, consulta put-object nella Guida di riferimento di AWS CLI.

aws s3api put-object --bucket arn:aws:s3-outposts:Region:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-outposts-access-point --key sample-object.xml --body sample-object.xml
SDK for Java

Nell'esempio seguente viene inserito un oggetto in un bucket S3 su Outposts utilizzando SDK per Java. Per utilizzare questo esempio, sostituire user input placeholder con le tue informazioni. Per ulteriori informazioni, consultare Caricamento degli oggetti.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.PutObjectRequest; import java.io.File; public class PutObject { public static void main(String[] args) { String accessPointArn = "*** access point ARN ***"; String stringObjKeyName = "*** String object key name ***"; String fileObjKeyName = "*** File object key name ***"; String fileName = "*** Path to file to upload ***"; try { // This code expects that you have AWS credentials set up per: // https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .enableUseArnRegion() .build(); // Upload a text string as a new object. s3Client.putObject(accessPointArn, stringObjKeyName, "Uploaded String Object"); // Upload a file as a new object with ContentType and title specified. PutObjectRequest request = new PutObjectRequest(accessPointArn, fileObjKeyName, new File(fileName)); ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType("plain/text"); metadata.addUserMetadata("title", "someTitle"); request.setMetadata(metadata); s3Client.putObject(request); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }