Elabora i dati in un bucket Amazon S3 con Distributed Map - 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à.

Elabora i dati in un bucket Amazon S3 con Distributed Map

Questo progetto di esempio dimostra come è possibile utilizzare lo stato della mappa distribuita per elaborare dati su larga scala, ad esempio analizzare dati meteorologici storici e identificare la stazione meteorologica con la temperatura media più alta del pianeta ogni mese. I dati meteorologici vengono registrati in oltre 12.000 CSV file, che a loro volta vengono archiviati in un bucket Amazon S3.

Questo progetto di esempio include due stati di Distributed Map denominati Distributed S3 copy NOA Data e P. rocessNOAAData NOAI dati di copia S3 distribuiti eseguono iterazioni sui CSV file in un bucket Amazon S3 pubblico noaa-gsod-pdsdenominato e li copia in un bucket Amazon S3 del tuo. Account AWSP esegue rocessNOAAData iterazioni sui file copiati e include una funzione Lambda che esegue l'analisi della temperatura.

Il progetto di esempio verifica innanzitutto il contenuto del bucket Amazon S3 con una chiamata all'ListObjectsazione V2. API In base al numero di chiavi restituite in risposta a questa chiamata, il progetto di esempio prende una delle seguenti decisioni:

  • Se il conteggio delle chiavi è maggiore o uguale a 1, il progetto passa allo rocessNOAAData stato P. Questo stato della mappa distribuita include una Lambda funzione denominata TemperatureFunctionche trova la stazione meteorologica con la temperatura media più alta ogni mese. Questa funzione restituisce un dizionario con year-month come chiave e un dizionario che contiene informazioni sulla stazione meteorologica come valore.

  • Se il numero di chiavi restituito non supera 1, lo stato Distributed S3 copy NOA Data elenca tutti gli oggetti dal bucket pubblico noaa-gsod-pdse copia iterativamente i singoli oggetti in un altro bucket del tuo account in batch di 100. Una Inline Map esegue la copia iterativa degli oggetti.

    Dopo aver copiato tutti gli oggetti, il progetto passa rocessNOAAData allo stato P per l'elaborazione dei dati meteorologici.

Il progetto di esempio passa infine a una Lambda funzione di riduzione che esegue un'aggregazione finale dei risultati restituiti dalla TemperatureFunctionfunzione e scrive i risultati in una tabella. Amazon DynamoDB

Con Distributed Map, puoi eseguire fino a 10.000 esecuzioni parallele di workflow secondari alla volta. In questo progetto di esempio, la concorrenza massima di P rocessNOAAData Distributed Map è impostata su 3000, il che la limita a 3000 esecuzioni parallele di flussi di lavoro secondari.

Questo progetto di esempio crea la macchina a stati, le AWS risorse di supporto e configura le relative autorizzazioni. IAM Esplora questo progetto di esempio per scoprire come utilizzare la Distributed Map per orchestrare carichi di lavoro paralleli su larga scala o usala come punto di partenza per i tuoi progetti.

Importante

Questo progetto di esempio è disponibile solo nella regione Stati Uniti orientali (Virginia settentrionale).

AWS CloudFormation modello e risorse aggiuntive

Si utilizza un CloudFormation modello per distribuire questo progetto di esempio. Questo modello crea le seguenti risorse nel tuo Account AWS:

  • Una macchina a stati Step Functions.

  • Ruolo di esecuzione per la macchina a stati. Questo ruolo concede le autorizzazioni necessarie alla macchina a stati per accedere ad altre AWS servizi risorse come l'azione Invoke della funzione Lambda.

  • Un bucket Amazon S3 denominato. NOAADataBucket Questo bucket contiene CSV i file con i dati meteorologici.

  • Una funzione Lambda denominata ReducerFunction che esegue un'aggregazione finale dei dati meteorologici e scrive i risultati in una tabella Amazon DynamoDB.

  • Ruolo di esecuzione per la funzione Lambda del riduttore. Questo ruolo concede alla funzione il permesso di accedere ad altri. AWS servizi

  • Un bucket di output Amazon S3 denominato ResultsBucket per archiviare i risultati dell'analisi meteorologica.

  • Una tabella DynamoDB ResultsDynamoDBTable denominata che contiene i risultati restituiti da. ReducerFunction

  • Una funzione Lambda denominata TemperatureFunction che rileva la temperatura media mensile più alta.

  • Ruolo di esecuzione per la funzione Lambda. Questo ruolo concede alla funzione il permesso di accedere ad altri. AWS servizi

  • Un gruppo di CloudWatch log che memorizza le informazioni relative alla cronologia di esecuzione della macchina a stati.

Importante

Per ogni servizio sono previsti costi standard.

Fase 1: Creare la macchina a stati e fornire risorse

  1. Apri la console Step Functions e scegli Crea macchina a stati.

  2. Digita Distributed Map to process files in S3 nella casella di ricerca, quindi scegli Mappa distribuita per elaborare i file in S3 dai risultati di ricerca restituiti.

  3. Seleziona Successivo per continuare.

  4. Step Functions elenca quelli AWS servizi utilizzati nel progetto di esempio selezionato. Mostra anche un grafico del flusso di lavoro per il progetto di esempio. Implementa questo progetto sul tuo Account AWS o usalo come punto di partenza per creare i tuoi progetti. In base a come vuoi procedere, scegli Esegui una demo o Sviluppa su di essa.

    Per informazioni sulle risorse che verranno create per questo progetto di esempio, consultaAWS CloudFormation modello e risorse aggiuntive.

    L'immagine seguente mostra il grafico del flusso di lavoro per la Distributed Map per elaborare i file nel progetto di esempio S3:

    Grafico del flusso di lavoro della mappa distribuita per elaborare i file nel progetto di esempio S3.
  5. Scegli Usa modello per continuare con la selezione.

  6. Esegui una di queste operazioni:

    • Se hai selezionato Costruisci su di esso, Step Functions crea il prototipo del flusso di lavoro, ma non distribuisce le risorse nella definizione del flusso di lavoro, quindi puoi continuare a creare il tuo prototipo di flusso di lavoro.

      In Workflow Studiomodalità di progettazione, puoi aggiungere stati al tuo prototipo di flusso di lavoro. In alternativa, puoi passare Modalità codice a utilizzare l'editor di codice integrato per modificare la definizione Amazon States Language (ASL) della tua macchina a stati dalla console Step Functions.

      Importante

      Potrebbe essere necessario aggiornare il segnaposto Amazon Resource Name (ARN) per le risorse utilizzate nel progetto di esempio prima di poter eseguire il flusso di lavoro.

    • Se hai selezionato Esegui una demo, Step Functions crea un progetto di sola lettura che utilizza un AWS CloudFormation modello per distribuire le AWS risorse di quel modello sul tuo. Account AWSÈ possibile visualizzare la definizione della macchina a stati scegliendo la modalità Codice.

      Scegli Implementa ed esegui per distribuire il progetto e creare le risorse.

      Tieni presente che la creazione di risorse e IAM autorizzazioni può richiedere fino a 10 minuti per la distribuzione. Durante la distribuzione delle risorse, puoi aprire il link AWS CloudFormation Stack ID per vedere quali risorse vengono fornite.

      Dopo aver creato tutte le risorse, dovresti vedere il progetto nella pagina State machines della console.

      Importante

      Potrebbero essere applicate tariffe standard per ogni servizio utilizzato nel CloudFormation modello.

Fase 2: Eseguire la macchina a stati

Dopo aver effettuato il provisioning e la distribuzione di tutte le risorse, è possibile eseguire la macchina a stati.

  1. Nella pagina Macchine a stati, scegli il tuo progetto di esempio.

  2. Nella pagina del progetto di esempio, scegli Avvia esecuzione.

  3. Nella finestra di dialogo Avvia esecuzione, effettuate le seguenti operazioni:

    1. (Facoltativo) Immettete i valori di input nel JSON formato per eseguire il progetto di esempio.

      Se avete scelto di eseguire una demo, non è necessario fornire alcun input di esecuzione.

      Nota

      Se il progetto demo che hai distribuito contiene dati di input di esecuzione precompilati, usa quell'input per eseguire la macchina a stati.

    2. Selezionare Start execution (Avvia esecuzione).

    3. (Facoltativo) La console Step Functions ti indirizza a una pagina intitolata con il tuo ID di esecuzione. Questa pagina è nota come pagina dei dettagli di esecuzione. In questa pagina è possibile esaminare i risultati dell'esecuzione man mano che l'esecuzione procede o dopo il suo completamento.

      Al termine dell'esecuzione, scegliete i singoli stati nella vista Grafico, quindi scegliete le singole schede Dettagli del passaggio nel riquadro per visualizzare i dettagli di ogni stato, inclusi rispettivamente input, output e definizione.

    4. (Facoltativo) Esamina i risultati dell'esecuzione esportati nel bucket Amazon S3. Questi risultati includono dati, come input e output di esecuzione e lo stato di esecuzione. ARN Per ulteriori informazioni, consulta ResultWriter (Mappa).