Traitement d'un CSV fichier depuis Amazon S3 à l'aide d'une carte distribuée - AWS Step Functions

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Traitement d'un CSV fichier depuis Amazon S3 à l'aide d'une carte distribuée

Cet exemple de projet montre comment utiliser l'état de la carte distribuée pour itérer plus de 10 000 lignes d'un CSV fichier généré à l'aide d'un Lambda . Le CSV fichier contient les informations d'expédition des commandes des clients et est stocké dans un compartiment Amazon S3. La carte distribuée itère sur un lot de 10 lignes du CSV fichier pour l'analyse des données.

La carte distribuée contient un Lambda fonction pour détecter les commandes retardées. La carte distribuée contient également une carte en ligne pour traiter les commandes retardées par lots et renvoie ces commandes différées dans un tableau. Pour chaque commande différée, la carte en ligne envoie un message à un Amazon SQS queue. Enfin, cet exemple de projet stocke les résultats de Map Run dans un autre compartiment Amazon S3 de votre Compte AWS.

Avec Distributed Map, vous pouvez exécuter jusqu'à 10 000 exécutions parallèles de flux de travail enfants à la fois. Dans cet exemple de projet, la simultanéité maximale de Distributed Map est fixée à 1 000, ce qui la limite à 1 000 exécutions parallèles de flux de travail enfants.

Cet exemple de projet crée la machine à états, le support AWS ressources, et configure les IAM autorisations associées. Explorez cet exemple de projet pour en savoir plus sur l'utilisation de la carte distribuée pour orchestrer des charges de travail parallèles à grande échelle, ou utilisez-la comme point de départ pour vos propres projets.

AWS CloudFormation modèle et ressources supplémentaires

Vous utilisez un CloudFormation modèle pour déployer cet exemple de projet. Ce modèle crée les ressources suivantes dans votre Compte AWS:

  • Une machine à états Step Functions.

  • Rôle d'exécution pour la machine à états. Ce rôle accorde les autorisations dont votre machine d'état a besoin pour accéder à d'autres Services AWS et des ressources telles que l'action Invoke de la fonction Lambda.

  • Une fonction Lambda nommée CSVGeneratorFunction qui génère un CSV fichier contenant les détails de la commande du client.

  • Rôle d'exécution de la fonction Lambda du CSV générateur. Ce rôle accorde à la fonction l'autorisation d'accéder à d'autres Services AWS.

  • Un compartiment d'entrée Amazon S3 pour stocker le CSV fichier généré.

  • Fonction Lambda de détection des commandes différées qui analyse les données des CSV fichiers et détecte les commandes retardées.

  • Rôle d'exécution de la fonction Lambda à ordre différé. Ce rôle accorde à la fonction l'autorisation d'accéder à d'autres Services AWS.

  • Un compartiment de sortie Amazon S3 pour stocker les résultats d'analyse des commandes des clients.

  • Une SQS file d'attente Amazon à laquelle Step Functions envoie des messages pour chaque commande différée. Ces messages contiennent les IDs informations des clients et leurs commandes.

  • Un groupe de CloudWatch journaux qui stocke les informations relatives à l'historique d'exécution de la machine à états.

Important

Des frais standard s'appliquent pour chaque service.

Étape 1 : créer la machine à états et provisionner les ressources

  1. Ouvrez la console Step Functions et choisissez Create state machine.

  2. Tapez Distributed Map to process a CSV file in S3 dans la zone de recherche, puis choisissez Distributed Map pour traiter un CSV fichier dans S3 à partir des résultats de recherche renvoyés.

  3. Choisissez Next (Suivant) pour continuer.

  4. Choisissez Exécuter une démonstration pour créer une version en lecture seule et un ready-to-deploy flux de travail, ou choisissez Construire dessus pour créer une définition de machine à états modifiable sur laquelle vous pourrez vous appuyer pour la déployer ultérieurement.

    Pour plus d'informations sur les ressources qui seront créées pour cet exemple de projet, consultezAWS CloudFormation modèle et ressources supplémentaires.

    L'image suivante montre le graphique du flux de travail de la carte distribuée pour traiter un CSV fichier dans un exemple de projet S3 :

    Graphique de flux de travail de la carte distribuée pour traiter un CSV fichier dans un exemple de projet S3.
  5. Choisissez Utiliser le modèle pour poursuivre votre sélection.

Les prochaines étapes dépendent de votre choix précédent :

  1. Exécuter une démonstration : vous pouvez passer en revue la machine d'état avant de créer un projet en lecture seule avec des ressources déployées par AWS CloudFormation à votre Compte AWS.

    Vous pouvez consulter la définition de la machine d'état et, lorsque vous êtes prêt, choisissez Déployer et exécuter pour déployer le projet et créer les ressources.

    Le déploiement peut prendre jusqu'à 10 minutes pour créer des ressources et des autorisations. Vous pouvez utiliser le lien Stack ID pour suivre les progrès dans AWS CloudFormation.

    Une fois le déploiement terminé, vous devriez voir votre nouvelle machine d'état dans la console.

  2. Tirez parti de cette information : vous pouvez revoir et modifier la définition du flux de travail. Vous devrez peut-être définir des valeurs pour les espaces réservés dans l'exemple de projet avant de tenter d'exécuter votre flux de travail personnalisé.

Note

Des frais standard peuvent s'appliquer pour les services déployés sur votre compte.

Étape 2 : Exécuter la machine à états

Une fois que toutes les ressources ont été provisionnées et déployées, vous pouvez exécuter la machine d'état.

  1. Sur la page State machines, choisissez votre exemple de projet.

  2. Sur la page d'exemple de projet, choisissez Démarrer l'exécution.

  3. Dans la boîte de dialogue Démarrer l'exécution, procédez comme suit :

    1. (Facultatif) Entrez les valeurs d'entrée au JSON format pour exécuter votre exemple de projet.

      Si vous avez choisi d'exécuter une démo, vous n'avez pas besoin de fournir d'entrée d'exécution.

      Note

      Si le projet de démonstration que vous avez déployé contient des données d'entrée d'exécution préremplies, utilisez ces entrées pour exécuter la machine à états.

    2. Choisissez Start execution (Démarrer l'exécution).

    3. (Facultatif) La console Step Functions vous dirige vers une page intitulée avec votre ID d'exécution. Cette page est connue sous le nom de page Détails de l'exécution. Sur cette page, vous pouvez consulter les résultats de l'exécution au fur et à mesure que l'exécution progresse ou une fois celle-ci terminée.

      Une fois l'exécution terminée, choisissez des états individuels dans la vue graphique, puis choisissez les onglets individuels du Détails de l'étape volet pour afficher les détails de chaque état, y compris les entrées, les sorties et la définition respectivement.

    4. (Facultatif) Vérifiez les résultats d'exécution exportés vers le compartiment Amazon S3. Ces résultats incluent des données, telles que les entrées et sorties d'exécutionARN, et le statut d'exécution. Pour de plus amples informations, veuillez consulter ResultWriter (Carte).