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

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.

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'autorizzazione s3:GetObject per il bucket di origine e dell'autorizzazione s3:PutObject per 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.ExpectedBucketOwner viene 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.json associato 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'oggetto manifest.json e 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
  1. Accedi alla Console di gestione AWS e apri la console Amazon S3 all’indirizzo https://console.aws.amazon.com/s3/.

  2. Scegli Operazioni in batch nel pannello di navigazione sinistro della console Amazon S3.

  3. Scegli Crea processo.

  4. 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.

  5. 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.

  6. Per Account di origine, scegli l’account proprietario degli oggetti di origine.

  7. In Origine, inserisci il percorso dell’origine, ad esempio s3://amzn-s3-demo-bucket.

  8. 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.

  9. 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.

  10. Dopo aver selezionato un tipo di operazione, scegli Successivo.

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

  12. 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.

Specify manifest

L'esempio seguente mostra come utilizzare AWS CLI per creare un processo S3PutObjectTagging di Operazioni in batch S3 che agisce sugli oggetti elencati in un file manifesto esistente.

Per creare un processo S3PutObjectTagging di Operazioni in batch specificando un manifesto
  1. Utilizza i seguenti comandi per creare un ruolo AWS Identity and Access Management (IAM), quindi crea una policy IAM 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. Utilizza il comando di esempio seguente per creare un ruolo IAM utilizzato da Operazioni in batch. 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 il nome della risorsa Amazon (ARN) del ruolo. Quando si crea un processo sarà necessario specificare l'ARN.

    2. Utilizza il comando di esempio seguente per creare una policy IAM con le autorizzazioni necessarie e collegala al ruolo IAM creato nella fase 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) for S3 Express One Zone.

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

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

      • Sostituisci PutObjectTaggingBatchJobPolicy con il nome che desideri assegnare alla policy IAM.

      • 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 contenente il manifesto.

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

      aws iam put-role-policy \ --role-name S3BatchJobRole \ --policy-name PutObjectTaggingBatchJobPolicy \ --policy-document '{ "Version": "2012-10-17" , TCX5-2025-waiver;, "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. ETag è l'ETag dell'oggetto manifest.csv, che è possibile ottenere dalla console di 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-job nella documentazione di riferimento dei comandi della AWS CLI.

    Per utilizzare questo comando di esempio, sostituisci user input placeholders con le tue informazioni. Sostituisci IAM-role con l'ARN del ruolo IAM 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 processo S3DeleteObjectTagging di Operazioni in batch generando un manifesto
  1. Utilizza i comandi seguenti per creare un ruolo AWS Identity and Access Management (IAM), quindi crea una policy IAM per assegnare le 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. Utilizza il comando di esempio seguente per creare un ruolo IAM utilizzato da Operazioni in batch. 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" , TCX5-2025-waiver;, "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }'

      Registra il nome della risorsa Amazon (ARN) del ruolo. Quando si crea un processo sarà necessario specificare l'ARN.

    2. Utilizza il comando di esempio seguente per creare una policy IAM con le autorizzazioni necessarie e collegala al ruolo IAM creato nella fase 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) for S3 Express One Zone.

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

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

      • Sostituisci DeleteObjectTaggingBatchJobPolicy con il nome che desideri assegnare alla policy IAM.

      • 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" , TCX5-2025-waiver;, "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, inoltre, la priorità del processo, il ruolo IAM e la Regione AWS.

    Per ulteriori informazioni, consulta create-job nella documentazione di riferimento dei comandi della AWS CLI.

    Per utilizzare questo comando di esempio, sostituisci user input placeholders con le tue informazioni. Sostituisci IAM-role con l'ARN del ruolo IAM 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 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.