Come posso trasferire i parametri da un trigger pianificato in EventBridge a un processo di AWS Batch?

Ultimo aggiornamento: 20/01/2022

Voglio trasferire i parametri da un trigger pianificato in Amazon EventBridge a un processo di AWS Batch.

Breve descrizione

In AWS Batch, i parametri sono segnaposto per le variabili definite nella sezione comando della definizione del processo di AWS Batch. Questi segnaposto consentono di:

  • Utilizza la stessa definizione di processo per più processi che utilizzano lo stesso formato.
  • Modifica in modo programmatico i valori nel comando al momento dell'invio.

È consigliabile definire il parametro come coppia chiave-valore. Ad esempio:

"Parameters" : {"test" : "abc"}

Se si registra una definizione di processo o si invia un lavoro, utilizzare i segnaposto per la sostituzione dei parametri nel campo di comando delle proprietà del container del processo. Ad esempio:

"Command" : [ "echo” "Ref::test" ]

Quando si invia il processo precedente, l'argomento Ref: :test nel comando del container viene sostituito dal valore predefinito (abc).

È possibile definire un valore di parametro diverso per la stessa chiave di parametro quando si invia un processo. Ad esempio:

"Parameters" : {"test" : "hello"}

Quando si invia il processo precedente, l'argomento Ref: :test nel comando del container viene sostituito dal valore personalizzato (hello) definito durante l'invio del processo.

Risoluzione

Configura il tuo ambiente AWS Batch

1.    Crea un ambiente di calcolo.

2.    Crea una coda di processi e quindi associa la coda di processi all'ambiente di calcolo creato nel passaggio 1.

3.    Crea una definizione di processo con un'immagine (ad esempio: nginx).

Crea una regola EventsBridge

Importante: devi usare la notazione a cammello per il testo JSON nelle tue regole EventBridge.

1.    Apri la console di EventBridge.

2.    Seleziona Create role (Crea ruolo).

3.    Inserisci un Nome per il tuo ruolo. Facoltativamente, è possibile inserire una Descrizione.

4.    In Define pattern (Definisci modello), seleziona Event pattern (Modello evento) o Schedule (Pianifica), in base al caso d'uso.

5.    In Seleziona bus eventi, seleziona l'opzione predefinita del bus eventi di default di AWS.

6.    In Slect targets (Seleziona destinazioni), scegli Batch job queue (Coda processi batch) dall'elenco a discesa Target (Destinazione).

7.    Per Job queue (Coda processi), inserisci l'ARN della coda processi creata in precedenza.

8.    Per Job definition (Definizione processo), inserisci il nome della definizione di processo creata in precedenza.

9.    Per Job name (Nome processo), inserisci un nome per il tuo processo.

10.    Espandi la sezione Configure input (Configura input) e seleziona Constant (JSON text) (Costante (testo JSON)).

11.    Nella casella di testo visualizzata, inserisci quanto segue:

{"Parameters": {"name":"test"}, "ContainerOverrides": { "Command": ["echo","Ref::name"] } }

La regola invia un processo AWS Batch quando EventBridge richiama la regola. Se il processo ha esito positivo, i registri di CloudWatch stampano "test" nelle seguenti posizioni:

Log Group: /aws/batch/job
Log Stream: yourJobDefinitionName/default/your-ecs-task-ID

12.    Seleziona Create (Crea).