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.
Démarrage d'un flux de travail Step Functions en réponse à des événements
Vous pouvez exécuter une machine à AWS Step Functions états en réponse à un événement acheminé par une EventBridge règle Amazon vers Step Functions en tant que cible.
Le didacticiel suivant explique comment configurer une machine à états en tant que cible d'une EventBridge règle Amazon. Chaque fois que des fichiers sont ajoutés à un compartiment Amazon Simple Storage Service (Amazon S3), la EventBridge règle démarre la machine d'état.
Un exemple pratique de cette approche pourrait être une machine d'état qui exécute l'analyse Amazon Rekognition sur les fichiers image ajoutés au compartiment pour classer et attribuer des mots clés.
Dans ce didacticiel, vous allez démarrer l'exécution d'une machine à Helloworld états en chargeant un fichier dans un compartiment Amazon S3. Vous passez ensuite en revue l'exemple de saisie de cette exécution pour identifier les informations incluses dans l'entrée provenant de la notification d'événement Amazon S3 envoyée à EventBridge.
Prérequis : Création d'une machine d'état
Avant de pouvoir configurer une machine à états en tant que EventBridge cible Amazon, vous devez créer la machine à états.
-
Pour créer une machine à états de base, utilisez le didacticiel Création d'une machine à états utilisant une fonction Lambda.
-
Si vous disposez déjà d'une machine d'état
Helloworld, passez à l'étape suivante.
Étape 1 : Création d'un compartiment dans Amazon S3
Maintenant que vous disposez d'une machine d'Helloworldétat, vous devez créer un compartiment Amazon S3 qui stocke vos fichiers. À l'étape 3 de ce didacticiel, vous définissez une règle qui EventBridge déclenche l'exécution de votre machine d'état lorsqu'un fichier est chargé dans ce compartiment.
-
Accédez à la console Amazon S3
, puis choisissez Créer un compartiment pour créer le compartiment dans lequel vous souhaitez stocker vos fichiers et déclencher une règle d'événement Amazon S3. -
Entrez un Nom de compartiment, tel que
.username-sfn-tutorialNote
Les noms de compartiment doivent être uniques parmi tous les noms de compartiments existants dans toutes les AWS régions d'Amazon S3. Utilisez le vôtre
usernamepour rendre ce nom unique. Vous devez créer toutes les ressources dans la même AWS région. -
Conservez toutes les sélections par défaut sur la page, puis choisissez Créer un compartiment.
Étape 2 : Activez la notification d'événements Amazon S3 avec EventBridge
Après avoir créé le compartiment Amazon S3, configurez-le pour qu'il envoie des événements EventBridge chaque fois que certains événements se produisent dans votre compartiment S3, tels que le téléchargement de fichiers.
-
Accédez à la console Amazon S3
. -
Dans la liste Compartiments, choisissez le nom du compartiment pour lequel vous souhaitez activer les événements.
-
Choisissez Propriétés.
-
Dans la section Notifications d'événements, choisissez Modifier dans la EventBridge sous-section Amazon.
-
Sous Envoyer des notifications à Amazon EventBridge pour tous les événements de ce compartiment, sélectionnez Activé.
-
Sélectionnez Enregistrer les modifications.
Note
Une fois que vous avez activé EventBridge, les modifications prennent effet en environ cinq minutes.
Étape 3 : Création d'une EventBridge règle Amazon
Une fois que vous disposez d'une machine d'état, que vous avez créé le compartiment Amazon S3 et que vous l'avez configuré pour envoyer des notifications d'événements à EventBridge, créez une EventBridge règle.
Note
Vous devez configurer la EventBridge règle dans la même AWS région que le compartiment Amazon S3.
Pour créer la règle
-
Accédez à la EventBridge console Amazon
, choisissez Créer une règle. Astuce
Vous pouvez également, dans le volet de navigation de la EventBridge console, sélectionner Règles sous Bus, puis choisir Créer une règle.
-
Entrez un nom pour votre règle (par exemple
) et, si vous le souhaitez, entrez une description pour la règle.S3Step Functions -
Pour Bus d'événements et Type de règle, conservez les sélections par défaut.
-
Choisissez Suivant. Cela ouvre la page Créer un modèle d'événement.
-
Dans la section Modèle d'événement, procédez comme suit :
-
Pour Source de l'événement, conservez la sélection par défaut d'AWS événements ou d'événements EventBridge partenaires.
-
Pour le AWS service, choisissez Simple Storage Service (S3).
-
Pour Type d'événement, choisissez Amazon S3 Event Notification.
-
Choisissez Événement (s) spécifique (s), puis choisissez Objet créé.
-
Choisissez un ou plusieurs compartiments spécifiques par nom et entrez le nom du compartiment que vous avez créé à l'étape 1 (
) pour stocker vos fichiers.username-sfn-tutorial -
Choisissez Suivant. Cela ouvre la page Sélectionner une ou plusieurs cibles.
-
Pour créer la cible
-
Dans Target 1, conservez la sélection de AWS service par défaut.
-
Dans la liste déroulante Sélectionnez une cible, sélectionnez Step Functions state machine.
-
Dans la liste State Machine, sélectionnez la machine State que vous avez créée précédemment (par exemple,
Helloworld). -
Conservez toutes les sélections par défaut sur la page, puis choisissez Suivant. Cela ouvre la page Configurer les balises.
-
Choisissez Suivant à nouveau. Cela ouvre la page Réviser et créer.
-
Consultez les détails de la règle et choisissez Create rule (Créer une règle).
La règle est créée et la page Règles s'affiche, répertoriant toutes vos EventBridge règles Amazon.
Étape 4 : Test de la règle
Maintenant que tout est en place, testez l'ajout d'un fichier au compartiment Amazon S3, puis examinez l'entrée de l'exécution de la machine à états qui en résulte.
-
Ajoutez un fichier à votre compartiment Amazon S3.
Accédez à la console Amazon S3
, choisissez le compartiment que vous avez créé pour stocker les fichiers ( ), puis choisissez Charger.username-sfn-tutorial -
Ajoutez un fichier, par exemple
, puis choisissez Télécharger.test.pngCela lance une exécution de votre machine d'état, en transmettant les informations depuis AWS CloudTrail comme entrée.
-
Vérifiez l'exécution de votre machine d'état.
Accédez à la console Step Functions et sélectionnez la machine à états utilisée dans votre EventBridge règle Amazon (
Helloworld). -
Sélectionnez l'exécution la plus récente de cette machine d'état et développez la section Entrée d'exécution.
Cette section inclut des informations telles que le nom du compartiment et le nom d'objet. Dans un cas d'utilisation du monde réel, une machine d'état peut utiliser ces informations pour effectuer des actions sur cet objet.
Exemple d'entrée d'exécution
L'exemple suivant montre une entrée typique de l'exécution de la machine à états.
{ "version": "0", "id": "6c540ad4-0671-9974-6511-756fbd7771c3", "detail-type": "Object Created", "source": "aws.s3", "account": "123456789012", "time": "2023-06-23T23:45:48Z", "region": "us-east-2", "resources": [ "arn:aws:s3:::" ], "detail": { "version": "0", "bucket": { "name": "username-sfn-tutorial" }, "object": { "key": "test.png", "size": 800704, "etag": "f31d8546bb67845b4d3048cde533b937", "sequencer": "00621049BA9A8C712B" }, "request-id": "79104EXAMPLEB723", "requester": "123456789012", "source-ip-address": "200.0.100.11", "reason": "PutObject" } }username-sfn-tutorial