Traitez les données dans un compartiment Amazon S3 avec Distributed Map - 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.

Traitez les données dans un compartiment Amazon S3 avec Distributed Map

Cet exemple de projet montre comment utiliser l'état de la carte distribuée pour traiter des données à grande échelle, par exemple, analyser les données météorologiques historiques et identifier la station météo qui affiche la température moyenne la plus élevée de la planète chaque mois. Les données météorologiques sont enregistrées dans plus de 12 000 CSV fichiers, eux-mêmes stockés dans un compartiment Amazon S3.

Cet exemple de projet inclut deux états de carte distribuée nommés Distributed S3 copy NOA Data et P rocessNOAAData. Copie S3 distribuée NOA Les données itèrent sur les CSV fichiers d'un compartiment public Amazon S3 nommé noaa-gsod-pdset les copient dans un compartiment Amazon S3 de votre Compte AWS. P rocessNOAAData parcourt les fichiers copiés et inclut une fonction Lambda qui effectue l'analyse de température.

L'exemple de projet vérifie d'abord le contenu du compartiment Amazon S3 en appelant l'APIaction ListObjectsV2. Sur la base du nombre de clés renvoyées en réponse à cet appel, l'exemple de projet prend l'une des décisions suivantes :

  • Si le nombre de clés est supérieur ou égal à 1, le projet passe à l'rocessNOAADataétat P. Cet état de carte distribuée inclut un Lambda fonction nommée TemperatureFunctionqui trouve la station météo ayant enregistré la température moyenne la plus élevée chaque mois. Cette fonction renvoie un dictionnaire avec year-month comme clé et un dictionnaire contenant des informations sur la station météo comme valeur.

  • Si le nombre de clés renvoyées ne dépasse pas 1, l'état NOAdes données de copie S3 distribuées répertorie tous les objets du compartiment public noaa-gsod-pdset copie de manière itérative les objets individuels dans un autre compartiment de votre compte par lots de 100. Une carte intégrée effectue la copie itérative des objets.

    Une fois tous les objets copiés, le projet passe à l'rocessNOAADataétat P pour le traitement des données météorologiques.

L'exemple de projet passe enfin à un réducteur Lambda fonction qui effectue une agrégation finale des résultats renvoyés par la TemperatureFunctionfonction et écrit les résultats dans un Amazon DynamoDB table.

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 P rocessNOAAData Distributed Map est fixée à 3 000, ce qui la limite à 3 000 exécutions parallèles de flux de travail enfants.

Cet exemple de projet crée la machine à états, les AWS ressources de support 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.

Important

Cet exemple de projet n'est disponible que dans la région de l'est des États-Unis (Virginie du Nord).

Étape 1 : Création de la machine à états

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

  2. Recherchez et choisissez le modèle de démarrage avec lequel vous souhaitez travailler. Choisissez Next (Suivant) pour continuer.

  3. Choisissez Exécuter une démo pour créer un ready-to-deploy flux de travail en lecture seule 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.

  4. 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 consulter la machine à états 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 Deploy and run 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 la progression 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

  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 un nom d'exécution personnalisé pour remplacer le nom par défaut généré.

      ASCIINon-noms et journalisation

      Step Functions accepte les noms des machines d'état, des exécutions, des activités et des étiquettes contenant des caractères autres que des ASCII caractères. Comme ces caractères ne fonctionneront pas avec Amazon CloudWatch, nous vous recommandons de n'utiliser que des ASCII caractères afin de pouvoir suivre les statistiques CloudWatch.

    2. (Facultatif) Dans la zone de saisie, entrez les valeurs d'entrée sous la formeJSON. Vous pouvez ignorer cette étape si vous lancez une démonstration.

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

    La console Step Functions vous dirige vers une page de détails d'exécution où vous pouvez choisir les états dans la vue graphique pour explorer les informations associées dans le Détails de l'étape volet.

Félicitations !

Vous devriez maintenant disposer d'une démo en cours d'exécution ou d'une définition de machine à états que vous pouvez personnaliser.