Come faccio a utilizzare AWS Batch come destinazione per la mia regola EventBridge?

Ultimo aggiornamento: 19-01-2022

Voglio usare AWS Batch come target per la mia regola Amazon EventBridge.

Risoluzione

L'esempio seguente mostra come configurare Amazon EventBridge per inviare un processo AWS Batch quando viene creato un nuovo bucket Amazon Simple Storage Service (Amazon S3).

Crea una definizione del processo

1.    Apri la console di AWS Batch.

2.    Dalla barra di navigazione, seleziona la tua Regione AWS.

3.    Nel riquadro di navigazione, scegli Definizione ruoli e poi scegli Crea.

4.    Per Nome definizione processo, inserisci un nome univoco per la definizione del processo.

Nota: puoi utilizzare fino a 128 lettere (maiuscole e minuscole), numeri, trattini e caratteri di sottolineatura nel tuo nome univoco.

5.    Per Immagine del contenitore, inserisci amazonlinux.

6.    Per Comando, inserisci quanto segue:

echo Ref::S3bucket

7.    Per vCPU, inserisci 2.

8.    Per Memoria (MiB), inserisci 500.

9.    Scegli Avanti e poi scegli Crea.

Ottieni l'ARN della tua coda di processo e la definizione del processo

1.    Apri la console di AWS Batch.

2.    Nel pannello di navigazione, scegli Code processo.

3.    Scegli la coda del processo.

4.    Nella sezione Dettagli coda del processo, copia l'ARN della coda e salvalo per un secondo momento.

5.    Nel pannello di navigazione, scegli Definizioni del processo, quindi scegli la definizione del processo creata in precedenza.

6.    Nella sezione Dettagli definizione del processo, copia l'ARN di definizione del processo, quindi salvalo per un secondo momento.

Abilita la registrazione degli eventi dati CloudTrail per gli oggetti in un bucket S3

Per attivare processi AWS Batch su operazioni a livello di oggetto di Amazon S3 (ad esempio, quando un nuovo oggetto viene caricato in un bucket esistente), consulta Abilitazione della registrazione degli eventi CloudTrail per bucket e oggetti S3.

Crea la regola EventBridge

1.    Apri la Console di EventBridge.

2.    Seleziona Create role (Crea ruolo).

3.    Inserisci un Nome per la tua regola. Facoltativamente, è possibile inserire una Descrizione.

4.    In Define pattern (Definisci modello), seleziona Event pattern (Modello di evento).

5.    Seleziona Modello predefinito per servizio.

6.    Per i provider di servizi, scegli AWS.

7.    Per il Nome del servizio, scegli Simple Storage Service (S3).

8.    Per il Tipo di evento, scegli Chiamata API a livello di bucket tramite CloudTrail.

9.    Scegli Qualsiasi operazione.

10.    Nella sezione Seleziona destinazioni, scegli Coda processi batch dall'elenco a discesa Destinazione.

11.    Per la Coda del processo, incolla l'ARN della coda del processo copiato in precedenza.

12.    Per la Definizione del processo, incolla l'ARN della definizione del processo copiato in precedenza.

13.    Per Nome processo, inserisci un nome per il tuo processo AWS Batch.

14.    Nella sezione Configura input, scegli Trasformatore di input.

15.    Nella prima casella di input, inserisci i valori del bucket S3 da inviare quando l'evento viene attivato:

{"S3BucketNameValue":"$.detail.requestParameters.bucketName"}

Nota: sostituisci S3BucketNameValue con il tuo valore.

16.    Nella seconda casella di input, inserisci la struttura Parametri da passare al processo Batch:

{"Parameters" : {"S3bucket": S3BucketNameValue}}

Nota: sostituisci S3BucketNameValue con il tuo valore. Sostituisci S3bucket con il nome del parametro che desideri definire nel tuo processo AWS Batch.

17.    Scegli Crea un nuovo ruolo per questa risorsa specifica o Usa un ruolo esistente.

Nota: se scegli un ruolo esistente, quel ruolo deve avere una policy AWS Identity and Access Management (IAM) che consenta l'operazione batch:SubmitJob.

18.    Seleziona Create (Crea).

Prova la nuova regola che hai creato

1.    Apri la console di Amazon S3.

2.    Scegli Crea bucket.

3.    Nel campo Nome bucket, digita un nome conforme a DNS unico per il tuo nuovo bucket.

4.    Per Regione, scegli la stessa Regione in cui hai creato la regola EventBridge.

5.    Scegli Crea.

Controlla i tuoi log

1.    Apri la console di AWS Batch.

2.    Nel pannello di navigazione, seleziona Processi.

3.    Scegli il tuo processo con uno Stato RIUSCITO.

4.    Alla pagina Dettagli del processo, nella sezioneTentativi, scegli Visualizza log. Il registro visualizza il nome del bucket nella console di CloudWatch.