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. Vengono inoltre fornite istruzioni per la creazione di un processo Operazioni in batch mediante la console Amazon S3, AWS Command Line Interface (AWS CLI) e AWS SDK per 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.
Argomenti
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 Operazioni in batch, puoi eseguire un'operazione in blocco ottenendo gli stessi risultati come se stessi eseguendo un'operazione alla volta su ciascun oggetto.
- Manifesto
-
Un manifesto è un elenco di oggetti Amazon S3 che contiene le chiavi degli oggetti su cui si desidera che Amazon S3 agisca. Per specificare un manifesto per un processo Operazioni in batch, puoi utilizzare i seguenti metodi:
-
Configura Operazioni in batch per generare un elenco di oggetti basato sui metadati specificati. Puoi salvare questo elenco come file manifesto e utilizzarlo quando crei il processo. Questa opzione è disponibile per qualsiasi tipo di processo creato tramite la console Amazon S3, AWS CLI, gli AWS SDK o la REST API di Amazon S3.
-
Genera automaticamente un elenco di oggetti in base a una configurazione di replica esistente. Puoi salvare questo elenco come file manifesto e utilizzarlo nuovamente per processi futuri.
-
Crea un nuovo file manifesto manualmente.
-
Utilizza un manifesto esistente.
Nota
-
Indipendentemente da come si specificano gli oggetti da utilizzare, il manifesto deve essere archiviato in un bucket per uso generico. Operazioni in batch non è in grado di importare manifesti esistenti da bucket di directory, né salvare elenchi di oggetti generati come manifesti 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 versione, la specifica degli ID versione per gli oggetti indirizza Operazioni in batch a eseguire l'operazione su una versione specifica. Se nessun ID versione è specificato, Operazioni in batch 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, potrebbe essere necessario assegnare a tutti i processi Ripristina (
RestoreObject) la priorità 1, a tutti i processi Copia (CopyObject) la priorità 2 e a tutti i processi Sostituisci liste di controllo degli accessi (ACL) (PutObjectAcl) la priorità 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
-
Specifica un ruolo AWS Identity and Access Management (IAM) per eseguire il processo. Il ruolo IAM utilizzato deve avere le autorizzazioni necessarie per eseguire l'operazione specificata nel processo. Ad esempio, per eseguire un processo
CopyObject, il ruolo IAM deve disporre dell'autorizzaziones3:GetObjectper il bucket di origine e dell'autorizzaziones3:PutObjectper il bucket di destinazione. Il ruolo necessita anche delle autorizzazioni per leggere il manifesto e scrivere il report di completamento.Per ulteriori informazioni sui ruoli IAM, consulta Ruoli IAM nella Guida per l'utente di IAM.
Per ulteriori informazioni sulle autorizzazioni di Amazon S3, consulta la sezione Azioni di policy 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) for 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, dovrai inserire i parametri per il report in questo elemento. Sono necessarie le seguenti informazioni:
-
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)
Se il campo
CreateJob.Report.ExpectedBucketOwnerviene specificato, deve corrispondere al proprietario del bucket del report di completamento. Se non corrisponde, il processo non riesce.Nota
I report di completamento sono sempre crittografati con crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3).
-
- Tag (opzionale)
-
È possibile etichettare e controllare l'accesso ai processi di Operazioni in batch 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 elenco di oggetti Amazon S3 che contiene le chiavi degli oggetti su cui si desidera che Amazon S3 agisca. Per specificare un manifesto per un processo Operazioni in batch, puoi utilizzare i seguenti metodi:
-
Configura Operazioni in batch per generare un elenco di oggetti basato sui metadati specificati. Puoi salvare questo elenco come manifesto e utilizzarlo quando crei il processo. Questa opzione è disponibile per qualsiasi tipo di processo creato tramite la console Amazon S3, AWS CLI, gli AWS SDK o la REST API di Amazon S3.
-
Genera automaticamente un elenco di oggetti in base a una configurazione di replica esistente. Puoi salvare questo elenco come manifesto e utilizzarlo nuovamente per processi futuri.
-
Crea un nuovo file manifesto manualmente.
-
Utilizza un manifesto esistente.
Nota
Operazioni in batch Amazon S3 non supporta la generazione di elenchi di oggetti multi-Regione.
Indipendentemente da come si specificano gli oggetti da utilizzare, il manifesto deve essere archiviato in un bucket per uso generico. Operazioni in batch non è in grado di importare manifesti esistenti da bucket di directory, né salvare elenchi di oggetti generati come manifesti 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.
Generazione automatica di un elenco di oggetti e salvataggio come file manifesto
Puoi utilizzare Amazon S3 per generare un elenco di oggetti automaticamente in base ai metadati specificati. Puoi salvare questo elenco come manifesto e utilizzarlo quando crei il processo. Questa opzione è disponibile per qualsiasi tipo di processo creato tramite la console Amazon S3, AWS CLI, gli AWS SDK o la REST API di Amazon S3.
Per generare automaticamente un elenco di oggetti e salvarlo come file manifesto, è necessario specificare i seguenti elementi come parte della richiesta di creazione del processo:
-
Informazioni sul bucket contenente gli oggetti di origine, inclusi il proprietario del bucket e il nome della risorsa Amazon (ARN).
-
Informazioni sull’output del manifesto, incluso un flag per creare un file manifesto, il proprietario del bucket di output, l’ARN, il prefisso, 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, al tipo di crittografia, all’ARN della chiave KMS, alla chiave del bucket e alla classe di archiviazione. Nel caso di processi di replica, è anche possibile utilizzare i tag per filtrare gli oggetti.
Criteri di filtro degli oggetti
Per filtrare l’elenco degli oggetti da includere in un elenco di oggetti generato automaticamente, è possibile specificare i seguenti criteri. Per ulteriori informazioni, consulta JobManifestGeneratorFilter nella documentazione di riferimento delle API di Amazon S3.
- 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 del bucket di origine le cui chiavi oggetto corrispondono ai vincoli di stringa specificati per MatchAnySubstring, MatchAnyPrefix e MatchAnySuffix.
MatchAnySubstring: se fornito, il manifesto generato include oggetti se la stringa specificata viene visualizzata in un punto qualsiasi della stringa della chiave dell'oggetto.
MatchAnyPrefix: se fornito, il manifesto generato include oggetti se la stringa specificata viene visualizzata all'inizio della stringa della chiave dell'oggetto.
MatchAnySuffix: se fornito, il manifesto generato include oggetti se la stringa specificata viene visualizzata alla fine della stringa della chiave dell'oggetto.
- MatchAnyObjectEncryption
-
Se fornito, l’elenco di oggetti generato salvato come file manifesto include solo oggetti del bucket di origine con il tipo di crittografia lato server indicato (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C o NOT-SSE). Se si seleziona SSE-KMS o DSSE-KMS, è possibile filtrare ulteriormente i risultati specificando l’ARN di una chiave KMS. Se si seleziona SSE-KMS, è anche possibile facoltativamente filtrare ulteriormente i risultati in base allo stato di abilitazione della chiave del bucket.
- 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 automaticamente elenchi di oggetti che sono stati salvati come manifesti. 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 degli esempi, consulta Creazione di un processo.
Creazione di un file manifesto
Per creare un file manifesto manualmente, occorre specificare la chiave dell'oggetto manifesto, l'ETag (tag di entità) e l'ID versione facoltativo in un elenco in formato CSV. I contenuti del manifesto devono essere codificati in formato URL.
Per impostazione predefinita, Amazon S3 utilizza automaticamente la crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3) per crittografare un manifesto caricato in un bucket Amazon S3. I manifesti che utilizzano la crittografia lato server con chiavi fornite dal cliente (SSE-C) non sono supportati. I manifesti che utilizzano la crittografia lato server con chiavi AWS Key Management Service (AWS KMS) (SSE-KMS) sono supportati solo quando si utilizzano report di inventario in formato CSV. L'uso di un manifesto creato manualmente con AWS KMS non è supportato.
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 versione, la specifica degli ID versione per gli oggetti indirizza Operazioni in batch a eseguire l'operazione su una versione specifica. Se nessun ID versione è specificato, Operazioni in batch 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 manifest di esempio in formato CSV senza ID versione.
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 manifesto di esempio in formato CSV che include ID versione.
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
Utilizzo di un manifesto esistente
È possibile specificare un manifesto esistente per creare un processo Operazioni in batch utilizzando uno dei due formati seguenti:
-
Report di Inventario Amazon S3: deve essere un report di Inventario Amazon S3 in formato CSV. Devi specificare il file
manifest.jsonassociato al report di inventario. Per ulteriori informazioni sui report di inventario, consulta Catalogazione e analisi dei dati con Inventario S3. Se il report di inventario include gli ID versione, S3 Batch Operations agisce sulle versioni degli oggetti specifiche.Nota
-
Operazioni in batch S3 supporta report di inventario CSV con crittografia SSE-KMS.
-
Se si invia un manifesto del report di inventario con crittografia SSE-KMS, la policy IAM deve includere le autorizzazioni
"kms:Decrypt"e"kms:GenerateDataKey"per l'oggettomanifest.jsone tutti i file di dati CSV associati.
-
-
File CSV: ogni riga nel file deve includere il nome del bucket, la chiave dell'oggetto e, facoltativamente, la versione dell'oggetto. Le chiavi degli oggetti devono essere codificate in formato URL, come mostrato nei seguenti esempi. Il manifest deve includere gli ID versione di tutti gli oggetti oppure ometterli per tutti gli oggetti. Per ulteriori informazioni sul formato CSV del manifesto, consulta JobManifestSpec nella Documentazione di riferimento delle API Amazon Simple Storage Service.
Nota
Operazioni in batch S3 non supporta file manifesto in formato CSV con crittografia SSE-KMS.
Importante
Quando si utilizza un manifesto creato manualmente e un bucket con versione, si consiglia di specificare gli ID versione 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 gli ID versione per gli oggetti elencati nel manifest.
Creazione di un processo
Puoi creare processi Operazioni in batch S3 utilizzando la console Amazon S3, AWS CLI, gli SDK AWS, o la REST API Amazon S3.
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.
Come creare un processo Operazioni in batch utilizzando la console S3
Accedi alla Console di gestione AWS e apri la console Amazon S3 all’indirizzo https://console.aws.amazon.com/s3/
. -
Scegli Operazioni in batch nel pannello di navigazione sinistro della console Amazon S3.
-
Scegli Crea processo.
-
In Scegli regione e ambito, scegli e visualizza la Regione AWS in cui creare il processo.
Nota
Per le operazioni di copia, è necessario creare il processo nella stessa Regione del bucket di destinazione. Per tutte le altre operazioni, è necessario creare il processo nella stessa Regione degli oggetti del manifesto.
-
Per Ambito, specifica l’elenco di oggetti su cui agirà il processo Operazioni in batch.
In Elenco di oggetti, è possibile scegliere di generare un manifesto utilizzando un elenco di oggetti, generare un manifesto utilizzando una configurazione di replica o utilizzare un manifesto esistente.
-
Se scegli Genera un elenco di oggetti, viene generato automaticamente un elenco di oggetti in base alla posizione di origine e ai metadati specificati. Puoi salvare questo elenco come manifesto e utilizzarlo nuovamente per processi futuri.
Nota
Nota: per generare un elenco di oggetti, è necessaria l’autorizzazione
s3:PutInventoryConfiguration. Il bucket di origine deve essere un bucket per uso generico. -
Se scegli Usa un file manifesto esistente, puoi importare un elenco di oggetti da un manifesto esistente. Un manifesto è un report o un file CV di Inventario S3 che elenca gli oggetti specifici su cui desideri che Operazioni in batch agisca.
-
Se scegli Usa una configurazione di replica, puoi generare automaticamente un elenco di oggetti in base a una configurazione di replica esistente. Puoi salvare questo elenco come manifesto e utilizzarlo nuovamente per processi futuri.
Per questo esempio, scegli Genera un elenco di oggetti.
-
-
Per Account di origine, scegli l’account proprietario degli oggetti di origine.
-
In Origine, inserisci il percorso dell’origine, ad esempio
s3://amzn-s3-demo-bucket. -
In Filtri oggetto, puoi utilizzare i filtri per filtrare in base a qualsiasi parte della chiave dell’oggetto o in base alla fine della chiave dell’oggetto. I Filtri chiave oggetto aiutano a rifinire l’elenco degli oggetti da utilizzare nel manifesto. Per Filtri dei metadati degli oggetti, scegli i filtri per definire ulteriormente l’ambito degli oggetti da includere nel manifesto.
-
In Scegli operazione scegli l’operazione che desideri eseguire su tutti gli oggetti elencati nel manifesto. Se il manifesto fa riferimento a oggetti archiviati in un bucket di directory, utilizza solo le operazioni di funzione AWS Lambda copy o invoke. Tutte le altre operazioni non sono supportate.
Dopo aver selezionato un tipo di operazione, scegli Successivo.
Inserire le informazioni per Configure additional options (Configura opzioni aggiuntive), quindi scegliere Next (Avanti).
Per Review (Revisione), verificare le impostazioni. Per apportare modifiche, scegli Precedente. In alternativa, puoi scegliere Crea processo.
Per creare il processo di Operazioni in batch con AWS CLI, scegli uno dei seguenti esempi, a seconda che tu stia specificando un manifesto esistente o generando un manifesto automaticamente.
Per creare il processo Operazioni in batch con AWS SDK per Java, scegli uno dei seguenti approcci, a seconda se è necessario specificare un manifesto esistente o generare un manifesto automaticamente.
-
Specifica manifesto esistente: crea un processo Operazioni in batch S3 (ad esempio
S3PutObjectTagging) che agisce sugli oggetti elencati in un file manifesto esistente. Questo approccio richiede l’inserimento della posizione del manifesto, dell’ETag e delle specifiche di formato. -
Genera manifesto automaticamente: crea un processo Operazioni in batch S3 (ad esempio
s3PutObjectCopy) che genera automaticamente un manifesto in base ai criteri di filtro degli oggetti, inclusi data di creazione, nome della chiave e vincoli di dimensione.
Entrambi gli approcci utilizzano il client S3Control per configurare le operazioni del processo, le specifiche del manifesto, i report del processo, i ruoli IAM e altri parametri del processo, inclusi i requisiti di priorità e conferma.
Per esempi su come creare processi Operazioni in batch S3 con AWS SDK per Java, consulta Creazione di un processo batch per copiare oggetti nella Guida di riferimento delle API di Amazon S3.
È possibile utilizzare l'API REST per creare un processo di operazioni in batch. Per ulteriori informazioni, consulta CreateJob in Amazon Simple Storage Service API Reference (Guida di riferimento per l'API di Amazon Simple Storage Service).
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 si crea un processo tramite AWS CLI, gli SDK AWS o la REST API, è possibile configurare Operazioni in batch S3 per iniziare l'elaborazione del processo 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.