Creazione di un processo di operazioni in batch S3 - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di un processo di operazioni in batch S3

Con Operazioni in batch Amazon S3, puoi eseguire operazioni in batch su larga scala su un elenco di oggetti Amazon S3 specifici. In questa sezione vengono descritte le informazioni necessarie per creare un processo S3 Batch Operations e i risultati di una richiesta CreateJob. Fornisce inoltre istruzioni per creare un processo Batch Operations utilizzando la console Amazon S3, AWS Command Line Interface (AWS CLI) e. AWS SDK for Java

Quando crei un processo S3 Batch Operations, puoi richiedere un report di completamento per tutte le attività o solo per le attività fallite. Se almeno un'attività è stata richiamata correttamente, Operazioni in batch S3 genera un report per i processi che sono stati completati, che non sono andati a buon fine o che sono stati annullati. Per ulteriori informazioni, consulta Esempi: report di completamento delle operazioni in batch S3.

Il video seguente fornisce una breve dimostrazione su come creare un processo Operazioni in batch utilizzando la console Amazon S3.

Elementi della richiesta di un processo di operazioni in batch

Per creare un processo di operazioni in batch S3, è necessario fornire le seguenti informazioni:

Operazione

Specifica l'operazione che vuoi far eseguire alle operazioni in batch S3 sugli oggetti nel manifest. Ogni tipo di operazione accetta parametri specifici di tale operazione. Con Batch Operations, è possibile eseguire un'operazione in blocco, con gli stessi risultati che si otterrebbe se si eseguisse tale operazione one-by-one su ciascun oggetto.

Manifest

Il manifesto è un elenco di tutti gli oggetti sui quali Operazioni in batch S3 esegue l'operazione desiderata. Per specificare un manifesto per un processo Operazioni in batch, puoi utilizzare i seguenti metodi:

  • Crea manualmente il tuo elenco di oggetti personalizzato e CSV formattato.

  • Scegliete un rapporto in formato CSV esistenteCatalogazione e analisi dei dati con S3 Inventory.

  • Indirizza Operazioni in batch per generare automaticamente un manifesto in base ai criteri di filtro degli oggetti specificati quando si crea il processo. Questa opzione è disponibile per i lavori di replica in batch creati nella console Amazon S3 o per qualsiasi tipo di lavoro creato utilizzando AWS CLI Amazon S3 o Amazon S3. AWS SDKs REST API

Nota
  • A prescindere dalla modalità di specifica del manifesto, l'elenco stesso deve essere archiviato in un bucket per uso generico. Operazioni in batch non è in grado di importare i manifesti esistenti da, o salvare i manifesti generati in, bucket di directory. Gli oggetti descritti all'interno del manifesto, tuttavia, possono essere archiviati in bucket di directory. Per ulteriori informazioni, consulta Directory buckets.

  • Se gli oggetti nel manifesto si trovano in un bucket con versioni, specificando la versione IDs per gli oggetti si indica a Batch Operations di eseguire l'operazione su una versione specifica. Se non IDs viene specificata alcuna versione, Batch Operations esegue l'operazione sulla versione più recente degli oggetti. Se il manifesto include un campo ID versione, è necessario fornire un ID versione per tutti gli oggetti del manifesto.

Per ulteriori informazioni, consulta Specifica di un manifest.

Priorità

Utilizza le priorità del processo per indicarne la priorità rispetto agli altri processi in esecuzione sul tuo account. Numeri maggiori indicano una priorità più alta.

Le priorità del lavoro hanno un significato solo rispetto alle priorità stabilite per altri lavori nello stesso account e nella stessa regione. Pertanto puoi scegliere qualsiasi sistema di numerazione utile. Ad esempio, potreste voler assegnare a tutti i job Restore (RestoreObject) una priorità di 1, a tutti i job Copy (CopyObject) una priorità di 2 e a tutti i job di Replace access control lists (ACLsPutObjectAcl) () una priorità di 3.

Operazioni in batch S3 assegna la priorità ai processi in base ai numeri di priorità ma non è garantito un ordinamento rigoroso. Pertanto, si consiglia di non utilizzare le priorità dei processi per accertarsi che un processo inizi o termini prima di un altro. Per essere certo che l'ordine venga rigidamente rispettato, attendi che un processo sia terminato prima di iniziare quello successivo.

RoleArn

Specificate un ruolo AWS Identity and Access Management (IAM) per eseguire il lavoro. Il IAM ruolo utilizzato deve disporre di autorizzazioni sufficienti per eseguire l'operazione specificata nel lavoro. Ad esempio, per eseguire un CopyObject job, il IAM ruolo deve disporre dell's3:GetObjectautorizzazione per il bucket di origine e dell's3:PutObjectautorizzazione per il bucket di destinazione. Il ruolo ha anche bisogno delle autorizzazioni per leggere il manifest e compilare il report di completamento del processo.

Per ulteriori informazioni sui IAM ruoli, consulta i IAMruoli nella Guida per l'IAMutente.

Per ulteriori informazioni sulle autorizzazioni di Amazon S3, consulta la sezione Azioni politiche per Amazon S3.

Nota

I processi Operazioni in batch che eseguono azioni su bucket di directory richiedono autorizzazioni specifiche. Per ulteriori informazioni, consulta AWS Identity and Access Management (IAM) per S3 Express One Zone.

Report

Specifica se desideri che le operazioni in batch S3 generino un report di completamento. Se richiedi un report di completamento del lavoro, devi inserire i parametri per il report in questo elemento. Le informazioni necessarie includono:

  • Il bucket in cui desideri archiviare il report

    Nota

    Il report deve essere archiviato in un bucket per uso generico. Operazioni in batch non può salvare report in bucket di directory. Per ulteriori informazioni, consulta Directory buckets.

  • Il formato del report

  • Se desideri che il report includa i dettagli di tutte le attività o solo di quelle fallite

  • Una stringa di prefisso (facoltativa)

Nota

I report di completamento sono sempre crittografati con crittografia lato server con chiavi SSE gestite di Amazon S3 (-S3).

Tag (opzionale)

È possibile etichettare e controllare l'accesso ai processi di operazioni in batch Amazon S3 aggiungendo tag. Puoi utilizzare tag per identificare il responsabile del processo Operazioni in batch o controllare in che modo gli utenti interagiscono con processi Operazioni in batch. La presenza dei tag dei lavori può consentire o limitare la capacità di un utente di cancellare un lavoro, attivare un lavoro in stato di conferma o cambiare il livello di priorità di un lavoro. Ad esempio, puoi concedere a un utente l'autorizzazione per richiamare l'operazione CreateJob, purché il processo venga creato con il tag "Department=Finance".

È possibile creare lavori con tag ad essi associati e aggiungere tag ai lavori dopo averli creati.

Per ulteriori informazioni, consulta Controllo dei lavori di accesso ed etichettatura mediante tag.

Descrizione (facoltativa)

Per tenere traccia e monitorare il processo, è anche possibile fornire una descrizione di un massimo di 256 caratteri. Amazon S3 include questa descrizione ogni volta che restituisce informazioni su un processo o visualizza i dettagli del processo nella console di Amazon S3. Puoi quindi ordinare e filtrare i processi con facilità in base alle descrizioni che hai assegnato loro. Le descrizioni non devono necessariamente essere univoche, quindi puoi utilizzarle come categorie (ad esempio, "Registro settimanale dei processi Copy") per aiutarti a tenere traccia dei gruppi di processi simili.

Specifica di un manifest

Un manifesto è un oggetto Amazon S3 contenente le chiavi degli oggetti su cui Amazon S3 deve agire. Per fornire un manifesto, puoi utilizzare uno dei seguenti metodi:

  • Crea un nuovo file manifesto manualmente.

  • Utilizza un manifesto esistente.

  • Indirizza Operazioni in batch per generare automaticamente un manifesto in base ai criteri di filtro degli oggetti specificati quando si crea il processo. Questa opzione è disponibile per i lavori di replica in batch creati nella console Amazon S3 o per qualsiasi tipo di lavoro creato utilizzando AWS CLI Amazon S3 o Amazon S3. AWS SDKs REST API

Nota
  • Amazon S3 Batch Operations non supporta la generazione di manifest tra regioni.

  • A prescindere dalla modalità di specifica del manifesto, l'elenco stesso deve essere archiviato in un bucket per uso generico. Operazioni in batch non è in grado di importare i manifesti esistenti da, o salvare i manifesti generati in, bucket di directory. Gli oggetti descritti all'interno del manifesto, tuttavia, possono essere archiviati in bucket di directory. Per ulteriori informazioni, consulta Directory buckets.

Creazione di un file manifesto

Per creare manualmente un file manifest, devi specificare la chiave dell'oggetto manifesto, ETag (tag di entità) e l'ID di versione opzionale in un elenco CSV formattato. Il contenuto del manifesto deve essere URL codificato.

Per impostazione predefinita, Amazon S3 utilizza automaticamente la crittografia lato server con chiavi gestite di Amazon S3 (SSE-S3) per crittografare un manifest caricato in un bucket Amazon S3. I manifesti che utilizzano la crittografia lato server con chiavi fornite dal cliente (-C) non sono supportati. SSE I manifesti che utilizzano la crittografia lato server con AWS Key Management Service (AWS KMS) chiavi (SSE-KMS) sono supportati solo quando si utilizzano report di inventario in formato elettronico. CSV L'utilizzo di un manifesto creato manualmente con non è supportato. AWS KMS

Il manifest deve contenere il nome del bucket, la chiave dell'oggetto e, facoltativamente, la versione dell'oggetto per ciascun oggetto. Gli altri campi nel manifest non vengono utilizzati dalle operazioni in batch S3.

Nota

Se gli oggetti nel manifesto si trovano in un bucket con versioni, specificando la versione IDs per gli oggetti si indica a Batch Operations di eseguire l'operazione su una versione specifica. Se non IDs viene specificata alcuna versione, Batch Operations esegue l'operazione sulla versione più recente degli oggetti. Se il manifesto include un campo ID versione, è necessario fornire un ID versione per tutti gli oggetti del manifesto.

Di seguito è riportato un esempio di manifesto in CSV formato senza versioneIDs.

amzn-s3-demo-bucket1,objectkey1 amzn-s3-demo-bucket1,objectkey2 amzn-s3-demo-bucket1,objectkey3 amzn-s3-demo-bucket1,photos/jpgs/objectkey4 amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5 amzn-s3-demo-bucket1,object%20key%20with%20spaces

Di seguito è riportato un esempio di manifesto in CSV formato che include la versioneIDs.

amzn-s3-demo-bucket1,objectkey1,PZ9ibn9D5lP6p298B7S9_ceqx1n5EJ0p amzn-s3-demo-bucket1,objectkey2,YY_ouuAJByNW1LRBfFMfxMge7XQWxMBF amzn-s3-demo-bucket1,objectkey3,jbo9_jhdPEyB4RrmOxWS0kU0EoNrU_oI amzn-s3-demo-bucket1,photos/jpgs/objectkey4,6EqlikJJxLTsHsnbZbSRffn24_eh5Ny4 amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5,imHf3FAiRsvBW_EHB8GOu.NHunHO1gVs amzn-s3-demo-bucket1,object%20key%20with%20spaces,9HkPvDaZY5MVbMhn6TMn1YTb5ArQAo3w

Specifica di un file manifesto esistente

Puoi specificare un file manifesto per una richiesta di creazione processo utilizzando uno dei due formati elencati di seguito:

  • Report sull'inventario Amazon S3: deve essere un report di inventario CSV Amazon S3 in formato elettronico. Devi specificare il file manifest.json associato al report di inventario. Per ulteriori informazioni sui report di inventario, consulta Catalogazione e analisi dei dati con S3 Inventory. Se il rapporto di inventario include la versioneIDs, S3 Batch Operations opera sulle versioni specifiche dell'oggetto.

    Nota
    • S3 Batch Operations supporta report di CSV inventario crittografati con SSE -KMS.

    • Se invii un manifesto del rapporto di inventario crittografato con SSE -KMS, la tua IAM politica deve includere le autorizzazioni relative all'manifest.jsonoggetto "kms:Decrypt" e "kms:GenerateDataKey" a tutti i file di CSV dati associati.

  • CSVfile: ogni riga del file deve includere il nome del bucket, la chiave dell'oggetto e, facoltativamente, la versione dell'oggetto. Le chiavi degli oggetti devono essere URL codificate, come illustrato negli esempi seguenti. Il manifesto deve includere la versione IDs per tutti gli oggetti o omettere la versione IDs per tutti gli oggetti. Per ulteriori informazioni sul formato CSV manifesto, vedere JobManifestSpecnell'Amazon Simple Storage Service API Reference.

    Nota

    S3 Batch Operations non supporta i file CSV manifest crittografati con SSE -KMS.

Importante

Quando utilizzi un manifesto creato manualmente e un bucket con versione, ti consigliamo di specificare la versione IDs per gli oggetti. Quando crei un processo, S3 Batch Operations analizza l'intero manifest prima di eseguire il processo. Tuttavia, non esegue una "snapshot" dello stato del bucket.

Poiché i manifesti possono contenere miliardi di oggetti, l'esecuzione dei processi potrebbe richiedere molto tempo, influenzando la versione di un oggetto su cui agisce il processo. Supponi di sovrascrivere un oggetto con una nuova versione durante l'esecuzione di un processo e di non aver specificato un ID versione per tale oggetto. In questo caso, Amazon S3 esegue l'operazione sulla versione più recente dell'oggetto, non sulla versione che esisteva al momento della creazione del processo. L'unico modo per evitare questo comportamento è specificare la versione IDs per gli oggetti elencati nel manifesto.

Generazione automatica di un manifesto

Puoi indirizzare Amazon S3 a generare un manifesto automaticamente in base ai criteri di filtro degli oggetti specificati al momento della creazione del processo. Questa opzione è disponibile per i lavori di replica in batch creati nella console Amazon S3 o per qualsiasi tipo di lavoro creato utilizzando AWS CLI Amazon S3 o Amazon S3. AWS SDKs REST API Per ulteriori informazioni su Batch Replication, consulta la sezione Replica di oggetti esistenti con Batch Replication.

Per generare un manifesto automaticamente, specifica i seguenti elementi come parte della richiesta di creazione del processo:

  • Informazioni sul bucket che contiene i tuoi oggetti sorgente, inclusi il proprietario del bucket e Amazon Resource Name () ARN

  • Informazioni sull'output del manifesto, tra cui un flag per creare un file manifest, il proprietario del bucket di output, il prefissoARN, il formato del file e il tipo di crittografia

  • Criteri opzionali per filtrare gli oggetti in base alla data di creazione, al nome della chiave, alla dimensione e alla classe di archiviazione. Nel caso dei lavori di replica, puoi anche utilizzare i tag per filtrare gli oggetti.

Criteri di filtro degli oggetti

Per filtrare l'elenco degli oggetti da includere in un manifesto generato automaticamente, puoi specificare i seguenti criteri. Per ulteriori informazioni, consulta JobManifestGeneratorFilternel riferimento Amazon S3 API.

CreatedAfter

Se fornito, il manifesto generato include solo oggetti del bucket di origine creati dopo questo periodo.

CreatedBefore

Se fornito, il manifesto generato include solo oggetti del bucket di origine creati prima di questo periodo.

EligibleForReplication

Se fornito, il manifesto generato include oggetti solo se sono idonei alla replica in base alla configurazione di replica sul bucket di origine.

KeyNameConstraint

Se fornito, il manifesto generato include solo oggetti bucket di origine le cui chiavi oggetto corrispondono ai vincoli di stringa specificati per MatchAnySubstring, e. MatchAnyPrefixMatchAnySuffix

MatchAnySubstring— Se fornito, il manifesto generato include oggetti se la stringa specificata appare in un punto qualsiasi della stringa chiave dell'oggetto.

MatchAnyPrefix— Se fornito, il manifesto generato include oggetti se la stringa specificata appare all'inizio della stringa chiave dell'oggetto.

MatchAnySuffix— Se fornito, il manifesto generato include oggetti se la stringa specificata appare alla fine della stringa chiave dell'oggetto.

MatchAnyStorageClass

Se fornito, il manifesto generato include solo oggetti del bucket di origine archiviati con la classe di archiviazione specificata.

ObjectReplicationStatuses

Se fornito, il manifesto generato include solo oggetti del bucket di origine che dispongono di uno degli stati di replica specificati.

ObjectSizeGreaterThanBytes

Se fornito, il manifesto generato include solo oggetti del bucket di origine la cui dimensione file è maggiore del numero di byte specificato.

ObjectSizeLessThanBytes

Se fornito, il manifesto generato include solo oggetti del bucket di origine la cui dimensione file è minore del numero di byte specificato.

Nota

Non è possibile clonare la maggior parte dei processi che hanno generato manifesti automaticamente. I processi di replica batch possono essere clonati, tranne quando utilizzano i criteri di filtro del manifesto KeyNameConstraint, MatchAnyStorageClass, ObjectSizeGreaterThanBytes o ObjectSizeLessThanBytes.

La sintassi per specificare i criteri del manifesto varia a seconda del metodo utilizzato per creare il processo. Per alcuni esempi, consulta Creazione di un processo.

Creazione di un processo

Puoi creare job S3 Batch Operations utilizzando la console AWS CLI Amazon S3 o Amazon S3. AWS SDKs REST API

Per ulteriori informazioni sulla creazione di una richiesta di processo, consulta la sezione Elementi della richiesta di un processo di operazioni in batch.

Prerequisiti

Prima di creare un processo Operazioni in batch, conferma di aver configurato le autorizzazioni pertinenti. Per ulteriori informazioni, consulta Concessione di autorizzazioni per le operazioni in batch.

Per creare un processo batch
  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Nella barra di navigazione nella parte superiore della pagina, scegli il nome del file attualmente visualizzato Regione AWS. Quindi, scegli la regione in cui desideri creare il tuo lavoro.

    Nota

    Per le operazioni di copia, è necessario creare il lavoro nella stessa regione del bucket di destinazione. Per tutte le altre operazioni, è necessario creare il lavoro nella stessa regione degli oggetti nel manifesto.

  3. Scegli Batch Operations nel riquadro di navigazione a sinistra della console Amazon S3.

  4. Scegli Crea processo.

  5. Visualizza Regione AWSdove vuoi creare il tuo lavoro.

  6. In Formato manifest scegliere il tipo di oggetto manifest da usare.

    • Se scegli il report di inventario S3, inserisci il percorso dell'oggetto manifest.json generato da Amazon S3 come parte del report di inventario in CSV formato S3 e, facoltativamente, l'ID di versione per l'oggetto manifest se desideri utilizzare una versione diversa dalla più recente.

    • Se lo desideri CSV, inserisci il percorso di un oggetto manifest formattato. CSV L'oggetto manifest deve avere il formato descritto nella console. Facoltativamente, è possibile includere l'ID versione dell'oggetto manifest se si desidera utilizzare una versione diversa da quella più recente.

    Nota

    La console Amazon S3 supporta la generazione manifesto automatica solo per i processi di replica batch. Per tutti gli altri tipi di job, se desideri che Amazon S3 generi automaticamente un manifesto in base ai criteri di filtro specificati, devi configurare il job utilizzando AWS CLI AWS SDKs, o Amazon S3. REST API

  7. Scegli Next (Successivo).

  8. In Operation (Operazione) scegliere l'operazione che si desidera eseguire su tutti gli oggetti elencati nel manifest. Inserire le informazioni per l'operazione selezionata, quindi scegliere Next (Avanti).

  9. Inserire le informazioni per Configure additional options (Configura opzioni aggiuntive), quindi scegliere Next (Avanti).

  10. Per Review (Revisione), verificare le impostazioni. Se è necessario apportare modifiche, scegliere Previous (Precedente). In caso contrario, scegli Crea processo.

Per creare il processo Batch Operations con AWS CLI, scegliete uno dei seguenti esempi, a seconda che stiate specificando un manifesto esistente o generando un manifesto automaticamente.

Specify manifest

L'esempio seguente mostra come utilizzare il AWS CLI per creare un S3PutObjectTagging job S3 Batch Operations che agisce sugli oggetti elencati in un file manifest esistente.

Per creare un processo Batch Operations S3PutObjectTagging specificando un manifesto
  1. Utilizzate i seguenti comandi per creare un ruolo AWS Identity and Access Management (IAM), quindi create una IAM politica per assegnare le autorizzazioni pertinenti. Il ruolo e la policy seguenti concedono l'autorizzazione Amazon S3 per aggiungere tag degli oggetti, necessari per creare il processo in una fase successiva.

    1. Utilizzare il comando di esempio seguente per creare un IAM ruolo da utilizzare per Batch Operations. Per utilizzare questo comando di esempio, sostituisci S3BatchJobRole con il nome che desideri assegnare al ruolo.

      aws iam create-role \ --role-name S3BatchJobRole \ --assume-role-policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }'

      Registra l'Amazon Resource Name del ruolo (ARN). Ti servirà ARN quando creerai un lavoro.

    2. Utilizza il seguente comando di esempio per creare una IAM politica con le autorizzazioni necessarie e allegarla al IAM ruolo creato nel passaggio precedente. Per ulteriori informazioni sulle autorizzazioni necessarie, consulta Concessione di autorizzazioni per le operazioni in batch.

      Nota

      I processi Operazioni in batch che eseguono azioni su bucket di directory richiedono autorizzazioni specifiche. Per ulteriori informazioni, consulta AWS Identity and Access Management (IAM) per S3 Express One Zone.

      Per utilizzare questo comando di esempio, sostituisci user input placeholders come segue:

      • Sostituiscilo S3BatchJobRole con il nome del tuo IAM ruolo. Assicurati che questo nome corrisponda al nome utilizzato in precedenza.

      • Sostituiscilo PutObjectTaggingBatchJobPolicy con il nome che vuoi dare alla tua IAM polizza.

      • Sostituisci amzn-s3-demo-destination-bucket con il nome del bucket contenente gli oggetti a cui desideri applicare i tag.

      • Replace (Sostituisci) amzn-s3- demo-manifest-bucket con il nome del bucket che contiene il manifesto.

      • Replace (Sostituisci) amzn-s3- demo-completion-report-bucket con il nome del bucket in cui desideri che venga recapitato il rapporto di completamento.

      aws iam put-role-policy \ --role-name S3BatchJobRole \ --policy-name PutObjectTaggingBatchJobPolicy \ --policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket", "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket", "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }'
  2. Utilizza il comando di esempio seguente per creare un processo S3PutObjectTagging.

    Il file manifest.csv fornisce un elenco di valori di bucket e chiave di oggetto. Il processo applica i tag specificati agli oggetti identificati nel manifesto. L'ETagè ETag l'manifest.csvoggetto, che puoi ottenere dalla console Amazon S3. Questa richiesta specifica il parametro no-confirmation-required, in modo da poter eseguire il processo senza doverlo confermare con il comando update-job-status. Per ulteriori informazioni, consulta create-jobnel AWS CLI Command Reference.

    Per utilizzare questo comando di esempio, sostituisci user input placeholders con le tue informazioni. Replace (Sostituisci) IAM-ruolo con il ARN IAM ruolo che hai creato in precedenza.

    aws s3control create-job \ --region us-west-2 \ --account-id acct-id \ --operation '{"S3PutObjectTagging": { "TagSet": [{"Key":"keyOne", "Value":"ValueOne"}] }}' \ --manifest '{"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},"Location":{"ObjectArn":"arn:aws:s3:::amzn-s3-demo-manifest-bucket/manifest.csv","ETag":"60e460c9d1046e73f7dde5043ac3ae85"}}' \ --report '{"Bucket":"arn:aws:s3:::amzn-s3-demo-completion-report-bucket","Prefix":"final-reports", "Format":"Report_CSV_20180820","Enabled":true,"ReportScope":"AllTasks"}' \ --priority 42 \ --role-arn IAM-role \ --client-request-token $(uuidgen) \ --description "job description" \ --no-confirmation-required

    In risposta, Amazon S3 restituisce un ID processo, ad esempio, 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c). L'ID processo è necessario per identificare, monitorare e modificare il processo.

Generate manifest

Nell'esempio seguente viene illustrato come creare un processo Operazioni in batch S3 S3DeleteObjectTagging che genera automaticamente un manifesto in base ai criteri di filtro degli oggetti. Questi criteri includono la data di creazione, il nome della chiave, le dimensioni, la classe di archiviazione e i tag.

Per creare un S3DeleteObjectTagging job Batch Operations generando un manifesto
  1. Utilizzate i seguenti comandi per creare un ruolo AWS Identity and Access Management (IAM), quindi create una IAM politica per l'assegnazione delle autorizzazioni. Il ruolo e la policy seguenti concedono l'autorizzazione Amazon S3 per eliminare tag di oggetti, necessari quando si crea il processo in una fase successiva.

    1. Utilizzare il comando di esempio seguente per creare un IAM ruolo da utilizzare per Batch Operations. Per utilizzare questo comando di esempio, sostituisci S3BatchJobRole con il nome che desideri assegnare al ruolo.

      aws iam create-role \ --role-name S3BatchJobRole \ --assume-role-policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }'

      Registra l'Amazon Resource Name del ruolo (ARN). Ti servirà ARN quando creerai un lavoro.

    2. Utilizza il seguente comando di esempio per creare una IAM politica con le autorizzazioni necessarie e allegarla al IAM ruolo creato nel passaggio precedente. Per ulteriori informazioni sulle autorizzazioni necessarie, consulta Concessione di autorizzazioni per le operazioni in batch.

      Nota

      I processi Operazioni in batch che eseguono azioni su bucket di directory richiedono autorizzazioni specifiche. Per ulteriori informazioni, consulta AWS Identity and Access Management (IAM) per S3 Express One Zone.

      Per utilizzare questo comando di esempio, sostituisci user input placeholders come segue:

      • Sostituiscilo S3BatchJobRole con il nome del tuo IAM ruolo. Assicurati che questo nome corrisponda al nome utilizzato in precedenza.

      • Sostituiscilo DeleteObjectTaggingBatchJobPolicy con il nome che vuoi dare alla tua IAM polizza.

      • Sostituisci amzn-s3-demo-destination-bucket con il nome del bucket contenente gli oggetti a cui desideri applicare i tag.

      • Sostituisci amzn-s3-demo-manifest-bucket con il nome del bucket in cui desideri salvare il manifesto.

      • Sostituisci amzn-s3-demo-completion-report-bucket con il nome del bucket a cui desideri venga inviato il report di completamento.

      aws iam put-role-policy \ --role-name S3BatchJobRole \ --policy-name DeleteObjectTaggingBatchJobPolicy \ --policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:DeleteObjectTagging", "s3:DeleteObjectVersionTagging" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Effect":"Allow", "Action":[ "s3:PutInventoryConfiguration" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket", "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket", "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*", "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] } ] }'

  2. Utilizza il comando di esempio seguente per creare il processo S3DeleteObjectTagging.

    In questo esempio, i valori nella sezione --report specificano il bucket, il prefisso, il formato e l'ambito del report del processo che verrà generato. Nella sezione --manifest-generator vengono specificate le informazioni sul bucket di origine contenente gli oggetti su cui agirà il processo, informazioni sull'elenco di output del manifesto che verrà generato per il processo e i criteri di filtro per restringere l'ambito degli oggetti da includere nel manifesto in base a data di creazione, vincoli di nome, dimensioni e classe di archiviazione. Il comando specifica anche la priorità, il IAM ruolo e Regione AWS.

    Per ulteriori informazioni, consulta create-jobnel AWS CLI Command Reference.

    Per utilizzare questo comando di esempio, sostituisci user input placeholders con le tue informazioni. Replace (Sostituisci) IAM-ruolo con il ARN IAM ruolo che hai creato in precedenza.

    aws s3control create-job \ --account-id 012345678901 \ --operation '{ "S3DeleteObjectTagging": {} }' \ --report '{ "Bucket":"arn:aws:s3:::amzn-s3-demo-completion-report-bucket", "Prefix":"reports", "Format":"Report_CSV_20180820", "Enabled":true, "ReportScope":"AllTasks" }' \ --manifest-generator '{ "S3JobManifestGenerator": { "ExpectedBucketOwner": "012345678901", "SourceBucket": "arn:aws:s3:::amzn-s3-demo-source-bucket", "EnableManifestOutput": true, "ManifestOutputLocation": { "ExpectedManifestBucketOwner": "012345678901", "Bucket": "arn:aws:s3:::amzn-s3-demo-manifest-bucket", "ManifestPrefix": "prefix", "ManifestFormat": "S3InventoryReport_CSV_20211130" }, "Filter": { "CreatedAfter": "2023-09-01", "CreatedBefore": "2023-10-01", "KeyNameConstraint": { "MatchAnyPrefix": [ "prefix" ], "MatchAnySuffix": [ "suffix" ] }, "ObjectSizeGreaterThanBytes": 100, "ObjectSizeLessThanBytes": 200, "MatchAnyStorageClass": [ "STANDARD", "STANDARD_IA" ] } } }' \ --priority 2 \ --role-arn IAM-role \ --region us-east-1

    In risposta, Amazon S3 restituisce un ID processo, ad esempio, 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c). Questo ID processo è necessario per identificare, monitorare e modificare il processo.

Per creare il processo Batch Operations con AWS SDK for Java, scegliete uno dei seguenti esempi, a seconda che stiate specificando un manifesto esistente o generando un manifesto automaticamente.

Specify manifest

Nell'esempio seguente viene illustrato come creare un processo Operazioni in batch S3 S3PutObjectTagging che agisce sugli oggetti elencati in un file manifesto esistente. Per utilizzare questo comando, sostituisci user input placeholders con le tue informazioni.

package aws.example.s3control; import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3control.AWSS3Control; import com.amazonaws.services.s3control.AWSS3ControlClient; import com.amazonaws.services.s3control.model.*; import java.util.UUID; import java.util.ArrayList; import static com.amazonaws.regions.Regions.US_WEST_2; public class CreateJob { public static void main(String[] args) { String accountId = "Account ID"; String iamRoleArn = "IAM Role ARN"; String reportBucketName = "arn:aws:s3:::amzn-s3-demo-completion-report-bucket"; String uuid = UUID.randomUUID().toString(); ArrayList tagSet = new ArrayList<S3Tag>(); tagSet.add(new S3Tag().withKey("keyOne").withValue("ValueOne")); try { JobOperation jobOperation = new JobOperation() .withS3PutObjectTagging(new S3SetObjectTaggingOperation() .withTagSet(tagSet) ); JobManifest manifest = new JobManifest() .withSpec(new JobManifestSpec() .withFormat("S3BatchOperations_CSV_20180820") .withFields(new String[]{ "Bucket", "Key" })) .withLocation(new JobManifestLocation() .withObjectArn("arn:aws:s3:::my_manifests/manifest.csv") .withETag("60e460c9d1046e73f7dde5043ac3ae85")); JobReport jobReport = new JobReport() .withBucket(reportBucketName) .withPrefix("reports") .withFormat("Report_CSV_20180820") .withEnabled(true) .withReportScope("AllTasks"); AWSS3Control s3ControlClient = AWSS3ControlClient.builder() .withCredentials(new ProfileCredentialsProvider()) .withRegion(US_WEST_2) .build(); s3ControlClient.createJob(new CreateJobRequest() .withAccountId(accountId) .withOperation(jobOperation) .withManifest(manifest) .withReport(jobReport) .withPriority(42) .withRoleArn(iamRoleArn) .withClientRequestToken(uuid) .withDescription("job description") .withConfirmationRequired(false) ); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and 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(); } } }
Generate manifest

Nell'esempio seguente viene illustrato come creare un processo Operazioni in batch S3 s3PutObjectCopy che genera automaticamente un manifesto in base ai criteri di filtro degli oggetti, inclusi data di creazione, nome chiave e dimensioni. Per utilizzare questo comando, sostituisci user input placeholders con le tue informazioni.

package aws.example.s3control; import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3control.AWSS3Control; import com.amazonaws.services.s3control.AWSS3ControlClient; import com.amazonaws.services.s3control.model.CreateJobRequest; import com.amazonaws.services.s3control.model.CreateJobResult; import com.amazonaws.services.s3control.model.JobManifestGenerator; import com.amazonaws.services.s3control.model.JobManifestGeneratorFilter; import com.amazonaws.services.s3control.model.JobOperation; import com.amazonaws.services.s3control.model.JobReport; import com.amazonaws.services.s3control.model.KeyNameConstraint; import com.amazonaws.services.s3control.model.S3JobManifestGenerator; import com.amazonaws.services.s3control.model.S3ManifestOutputLocation; import com.amazonaws.services.s3control.model.S3SetObjectTaggingOperation; import com.amazonaws.services.s3control.model.S3Tag; import java.time.Instant; import java.util.Date; import java.util.UUID; import java.util.ArrayList; import static com.amazonaws.regions.Regions.US_WEST_2; public class test { public static void main(String[] args) { String accountId = "012345678901"; String iamRoleArn = "arn:aws:iam::012345678901:role/ROLE"; String sourceBucketName = "arn:aws:s3:::amzn-s3-demo-source-bucket"; String reportBucketName = "arn:aws:s3:::amzn-s3-demo-completion-report-bucket"; String manifestOutputBucketName = "arn:aws:s3:::amzn-s3-demo-manifest-bucket"; String uuid = UUID.randomUUID().toString(); long minimumObjectSize = 100L; ArrayList<S3Tag> tagSet = new ArrayList<>(); tagSet.add(new S3Tag().withKey("keyOne").withValue("ValueOne")); ArrayList<String> prefixes = new ArrayList<>(); prefixes.add("s3KeyStartsWith"); try { JobOperation jobOperation = new JobOperation() .withS3PutObjectTagging(new S3SetObjectTaggingOperation() .withTagSet(tagSet) ); S3ManifestOutputLocation manifestOutputLocation = new S3ManifestOutputLocation() .withBucket(manifestOutputBucketName) .withManifestPrefix("manifests") .withExpectedManifestBucketOwner(accountId) .withManifestFormat("S3InventoryReport_CSV_20211130"); JobManifestGeneratorFilter jobManifestGeneratorFilter = new JobManifestGeneratorFilter() .withEligibleForReplication(true) .withKeyNameConstraint( new KeyNameConstraint() .withMatchAnyPrefix(prefixes)) .withCreatedBefore(Date.from(Instant.now())) .withObjectSizeGreaterThanBytes(minimumObjectSize); S3JobManifestGenerator s3JobManifestGenerator = new S3JobManifestGenerator() .withEnableManifestOutput(true) .withManifestOutputLocation(manifestOutputLocation) .withFilter(jobManifestGeneratorFilter) .withSourceBucket(sourceBucketName); JobManifestGenerator jobManifestGenerator = new JobManifestGenerator() .withS3JobManifestGenerator(s3JobManifestGenerator); JobReport jobReport = new JobReport() .withBucket(reportBucketName) .withPrefix("reports") .withFormat("Report_CSV_20180820") .withEnabled(true) .withReportScope("AllTasks"); AWSS3Control s3ControlClient = AWSS3ControlClient.builder() .withCredentials(new ProfileCredentialsProvider()) .withRegion(US_WEST_2) .build(); CreateJobResult createJobResult = s3ControlClient.createJob(new CreateJobRequest() .withAccountId(accountId) .withOperation(jobOperation) .withManifestGenerator(jobManifestGenerator) .withReport(jobReport) .withPriority(42) .withRoleArn(iamRoleArn) .withClientRequestToken(uuid) .withDescription("job description") .withConfirmationRequired(true) ); System.out.println("Created job " + createJobResult.getJobId()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and 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(); } } }

È possibile utilizzare il REST API per creare un processo Batch Operations. Per ulteriori informazioni, consulta CreateJobnell'Amazon Simple Storage Service API Reference.

Risposte di lavoro

Se la richiesta CreateJob ha esito positivo, Amazon S3 restituisce un ID processo. L'ID processo è un identificatore univoco che Amazon S3 genera automaticamente per permetterti di identificare il processo di operazioni in batch e di monitorarne lo stato.

Quando crei un lavoro tramite, o AWS CLI AWS SDKs RESTAPI, puoi impostare S3 Batch Operations in modo che inizi a elaborare il lavoro automaticamente. Il processo viene eseguito appena è pronto anziché attendere in coda ad altri processi con priorità più alta.

Quando crei un processo con la console Amazon S3, devi rivedere i dettagli del processo e confermare che desideri eseguirlo prima che venga elaborato da Operazioni in batch. Se un processo rimane nello stato di sospensione per più di 30 giorni, avrà un esito negativo.