Esegui iterazioni simultanee sugli elementi in un flusso di lavoro Step Functions - AWS Step Functions

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

Esegui iterazioni simultanee sugli elementi in un flusso di lavoro Step Functions

Nell'argomento precedenteDefinire attività parallele, avete imparato a eseguire rami separati di passaggi in parallelo utilizzando lo Parallel stato. Utilizzando lo Map stato, è possibile eseguire una serie di passaggi del flusso di lavoro per ogni elemento di un set di dati. Le iterazioni Map dello stato vengono eseguite in parallelo, il che rende possibile elaborare rapidamente un set di dati.

Includendo lo Map stato nei flussi di lavoro è possibile eseguire attività, come l'elaborazione dei dati, utilizzando una delle due modalitàModalità di elaborazione dello stato della mappa: modalità in linea e modalità distribuita. Per configurare uno Map stato, si definisce unoItemProcessor, che contiene JSON oggetti che specificano la modalità di elaborazione dello Map stato e la relativa definizione. MapLo stato verrà eseguito nella modalità Inline predefinita, che supporta fino a 40 iterazioni simultanee. Quando si esegue lo Map stato in modalità Distribuita, supporta fino a 10.000 esecuzioni parallele di flussi di lavoro secondari.

Quando l'esecuzione del flusso di lavoro entra nello Map stato, eseguirà un'iterazione su un JSON array specificato nell'input dello stato. Per ogni elemento dell'array, l'iterazione corrispondente viene eseguita nel contesto del flusso di lavoro che contiene lo Map stato. Quando tutte le iterazioni sono complete, lo Map stato restituirà un array contenente l'output per ogni elemento elaborato da. ItemProcessor

Utilizzerai lo Map stato in modalità Inline per recuperare il punteggio di credito di un richiedente iterando su una serie di agenzie di credito. A tale scopo, devi prima recuperare i nomi di tutte le agenzie di credito archiviate in una tabella Amazon DynamoDB e quindi utilizzare lo stato per scorrere l'elenco Map delle agenzie di credito per recuperare il punteggio di credito del richiedente riportato da ciascuna di queste agenzie.

Fase 1: Creare una tabella DynamoDB per memorizzare il nome di tutte le agenzie di credito

In questo passaggio, si crea una tabella denominata GetCreditBureau utilizzando la console DynamoDB. La tabella utilizza l'attributo stringa Name come chiave di partizione. In questa tabella, memorizzi il nome di tutte le agenzie di credito da cui desideri recuperare il punteggio di credito del richiedente.

  1. Accedi AWS Management Console e apri la console DynamoDB all'indirizzo. https://console.aws.amazon.com/dynamodb/

  2. Nel pannello di navigazione della console, scegli Tabelle, quindi scegli Crea tabella.

  3. Inserisci i dettagli della tabella come segue:

    1. Nel campo Table name (Nome tabella) immetti GetCreditBureau.

    2. Per Partition key (Chiave di partizione), inserisci Name.

    3. Mantieni le selezioni predefinite e scegli Crea tabella.

  4. Dopo aver creato la tabella, nell'elenco Tabelle, scegli la GetCreditBureautabella.

  5. Scegli Azioni, quindi scegli Crea elemento.

  6. In Valore, inserisci il nome di un ufficio di credito. Ad esempio CredTrack.

  7. Scegli Crea elemento.

  8. Ripeti questo processo e crea articoli per i nomi di altre agenzie di credito. Ad esempio KapFinn e CapTrust.

Fase 2: Aggiornare la macchina a stati — Recupera i risultati dalla tabella DynamoDB

Nella console Step Functions, aggiungerai uno Task stato e utilizzerai l'AWS SDKintegrazione per recuperare i nomi delle agenzie di credito dalla tabella DynamoDB che hai creato nel passaggio 1. Utilizzerai l'output di questo passaggio come input per Map lo stato che aggiungerai successivamente nel flusso di lavoro.

  1. Apri la macchina a CreditCardWorkflowstati per aggiornarla.

  2. Scegli lo stato Ottieni l'elenco delle agenzie di credito.

  3. Per APIParametri, specifica il valore del nome della tabella comeGetCreditBureau.

Fase 3: Creare una funzione Lambda che restituisca i punteggi di credito per tutte le agenzie di credito

In questo passaggio, crei una funzione Lambda che riceve i nomi di tutte le agenzie di credito come input e restituisce il punteggio di credito del richiedente per ciascuna di queste agenzie di credito. Questa funzione Lambda verrà richiamata dallo Map stato che aggiungerai al tuo flusso di lavoro.

  1. Creare una funzione Lambda Node.js 16.x e assegnarle un nome. get-credit-score

  2. Nella pagina intitolata get-credit-score, incolla il codice seguente nell'area Codice sorgente.

    function getScore(arr) { let temp; let i = Math.floor((Math.random() * arr.length)); temp = arr[i]; console.log(i); console.log(temp); return temp; } const arrScores = [700, 820, 640, 460, 726, 850, 694, 721, 556]; exports.handler = (event, context, callback) => { let creditScore = getScore(arrScores); callback(null, "Credit score pulled is: " + creditScore + "."); };
  3. Distribuire la funzione Lambda.

Passaggio 4: Aggiorna la macchina a stati: aggiungi uno stato della mappa per recuperare in modo iterativo i punteggi di credito

Nella console Step Functions, aggiungi uno Map stato che richiama la funzione get-credit-scoreLambda per controllare il punteggio di credito del richiedente per tutte le agenzie di credito restituite dallo stato Get list of credit bureaus.

  1. Apri la macchina a CreditCardWorkflowstati per aggiornarla.

  2. Scegli lo stato Ottieni punteggi da tutte le agenzie di credito.

  3. Nella scheda Configurazione, scegli Fornisci un percorso per l'array degli elementi e quindi inserisci$.Items.

  4. Scegli Ottieni tutti i punteggi all'interno dello Map stato.

  5. Nella scheda Configurazione, assicurati che per Tipo di integrazione sia selezionato Optimized.

  6. Per Nome funzione, inizia a digitare il nome della funzione get-credit-scoreLambda e selezionalo dall'elenco a discesa visualizzato.

  7. Per Payload, scegli Nessun payload.

Passaggi successivi

Nella fase successivaEsegui il tuo flusso di lavoro , imparerai come eseguire il tuo flusso di lavoro.