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. Map
Lo 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.
Accedi AWS Management Console e apri la console DynamoDB all'indirizzo. https://console.aws.amazon.com/dynamodb/
Nel pannello di navigazione della console, scegli Tabelle, quindi scegli Crea tabella.
Inserisci i dettagli della tabella come segue:
Nel campo Table name (Nome tabella) immetti
GetCreditBureau
.Per Partition key (Chiave di partizione), inserisci
Name
.Mantieni le selezioni predefinite e scegli Crea tabella.
Dopo aver creato la tabella, nell'elenco Tabelle, scegli la GetCreditBureautabella.
Scegli Azioni, quindi scegli Crea elemento.
In Valore, inserisci il nome di un ufficio di credito. Ad esempio
CredTrack
.Scegli Crea elemento.
Ripeti questo processo e crea articoli per i nomi di altre agenzie di credito. Ad esempio
KapFinn
eCapTrust
.
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.
Apri la macchina a CreditCardWorkflowstati per aggiornarla.
Scegli lo stato Ottieni l'elenco delle agenzie di credito.
Per APIParametri, specifica il valore del nome della tabella come
GetCreditBureau
.
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.
Creare una funzione Lambda Node.js 16.x e assegnarle un nome.
get-credit-score
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 + "."); };
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.
Apri la macchina a CreditCardWorkflowstati per aggiornarla.
Scegli lo stato Ottieni punteggi da tutte le agenzie di credito.
Nella scheda Configurazione, scegli Fornisci un percorso per l'array degli elementi e quindi inserisci
$.Items
.Scegli Ottieni tutti i punteggi all'interno dello
Map
stato.Nella scheda Configurazione, assicurati che per Tipo di integrazione sia selezionato Optimized.
Per Nome funzione, inizia a digitare il nome della funzione get-credit-scoreLambda e selezionalo dall'elenco a discesa visualizzato.
Per Payload, scegli Nessun payload.
Passaggi successivi
Nella fase successivaEsegui il tuo flusso di lavoro , imparerai come eseguire il tuo flusso di lavoro.