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 l'elenco di oggetti personalizzato in formato CSV.

  • Scegli un report Amazon S3 Inventory esistente in formato CSV.

  • 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 gli SDK o AWS CLI l'API AWS REST di Amazon S3.

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 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) una priorità di 1, a tutti i processi Copia (CopyObject) una priorità di 2 e a tutti i processi Sostituisci liste di controllo degli accessi (ACL) (PutObjectAcl) 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 job. 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 ha anche bisogno delle autorizzazioni per leggere il manifest e compilare il report di completamento del processo.

Per ulteriori informazioni sui ruoli IAM, consultare Ruoli IAM nella Guida per l'utente di IAM.

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) 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 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 chiavi gestite di Amazon S3 (SSE-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 gli SDK o AWS CLI l'API AWS REST di Amazon S3.

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.

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 utilizzi report di inventario in formato CSV.

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.

Examplebucket,objectkey1 Examplebucket,objectkey2 Examplebucket,objectkey3 Examplebucket,photos/jpgs/objectkey4 Examplebucket,photos/jpgs/newjersey/objectkey5 Examplebucket,object%20key%20with%20spaces

Di seguito è riportato un manifesto di esempio in formato CSV che include ID versione.

Examplebucket,objectkey1,PZ9ibn9D5lP6p298B7S9_ceqx1n5EJ0p Examplebucket,objectkey2,YY_ouuAJByNW1LRBfFMfxMge7XQWxMBF Examplebucket,objectkey3,jbo9_jhdPEyB4RrmOxWS0kU0EoNrU_oI Examplebucket,photos/jpgs/objectkey4,6EqlikJJxLTsHsnbZbSRffn24_eh5Ny4 Examplebucket,photos/jpgs/newjersey/objectkey5,imHf3FAiRsvBW_EHB8GOu.NHunHO1gVs Examplebucket,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 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 Amazon S3 Inventory. 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.

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 gli SDK o AWS CLI l'API AWS REST di Amazon S3. Per ulteriori informazioni su Batch Replication, consulta la sezione Replica di oggetti esistenti con S3 Batch Replication.

Per generare un manifesto automaticamente, specifica 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 per data di creazione, nome chiave, dimensioni, classe di archiviazione e tag

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 JobManifestGeneratorFilter nella Documentazione di riferimento delle API 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 bucket di origine le cui chiavi degli oggetti corrispondono ai vincoli di stringa specificati per, e. MatchAnySubstringMatchAnyPrefixMatchAnySuffix

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 Amazon S3 AWS CLI AWS , gli SDK o l'API REST di 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 delle autorizzazioni per le operazioni in batch Amazon S3.

Per creare un processo batch
  1. Accedi 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 si sceglie S3 inventory report (Report di inventario S3), immettere il percorso dell'oggetto manifest.json generato da Amazon S3 come parte del report dell'inventario in formato CSV e, facoltativamente, l'ID versione dell'oggetto manifest se si desidera utilizzare una versione diversa da quella più recente.

    • Se si sceglie CSV, immettere il percorso di un oggetto manifest in formato 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 gli AWS SDK o l' AWS CLI API REST di Amazon S3.

  7. Seleziona 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, scegliere Create Job (Crea processo).

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 creare un processo S3PutObjectTagging di operazioni in batch
  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" } ] }'

      Registrare l'Amazon Resource Name (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 delle autorizzazioni per le operazioni in batch 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.

      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 DOC-EXAMPLE-DESTINATION-BUCKET con il nome del bucket contenente gli oggetti a cui desideri applicare i tag.

      • Sostituisci DOC-EXAMPLE-MANIFEST-BUCKET con il nome del bucket contenente il manifesto.

      • Sostituisci DOC-EXAMPLE-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 PutObjectTaggingBatchJobPolicy \ --policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-BUCKET/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-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 la sezione create-job nella Documentazione di riferimento 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:::my_manifests/manifest.csv","ETag":"60e460c9d1046e73f7dde5043ac3ae85"}}' \ --report '{"Bucket":"arn:aws:s3:::DOC-EXAMPLE-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
  1. Utilizza i seguenti comandi 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", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }'

      Registrare l'Amazon Resource Name (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 delle autorizzazioni per le operazioni in batch 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.

      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 DOC-EXAMPLE-DESTINATION-BUCKET con il nome del bucket contenente gli oggetti a cui desideri applicare i tag.

      • Sostituisci DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET con il nome del bucket in cui desideri salvare il manifesto.

      • Sostituisci DOC-EXAMPLE-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:::DOC-EXAMPLE-DESTINATION-BUCKET/*" }, { "Effect":"Allow", "Action":[ "s3:PutInventoryConfiguration" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-BUCKET/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-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 la sezione create-job nella Documentazione di riferimento 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:::DOC-EXAMPLE-REPORT-BUCKET", "Prefix":"reports", "Format":"Report_CSV_20180820", "Enabled":true, "ReportScope":"AllTasks" }' \ --manifest-generator '{ "S3JobManifestGenerator": { "ExpectedBucketOwner": "012345678901", "SourceBucket": "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET", "EnableManifestOutput": true, "ManifestOutputLocation": { "ExpectedManifestBucketOwner": "012345678901", "Bucket": "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-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.

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:::DOC-EXAMPLE-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:::DOC-EXAMPLE-SOURCE-BUCKET"; String reportBucketName = "arn:aws:s3:::DOC-EXAMPLE-REPORT-BUCKET"; String manifestOutputBucketName = "arn:aws:s3:::DOC-EXAMPLE-MANIFEST-OUTPUT-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 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 crei un lavoro tramite gli AWS SDK o l' AWS CLI API REST, 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.