Démarrage d'une machine à états en réponse à des événements dans Step Functions - 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.

Démarrage d'une machine à états en réponse à des événements dans Step Functions

Vous pouvez exécuter un AWS Step Functions machine à états en réponse à une EventBridge règle Amazon.

Ce didacticiel explique comment configurer une machine à états en tant que cible pour une EventBridge règle Amazon. Cette règle lance une exécution automatique lorsque des fichiers sont ajoutés à un bucket Amazon Simple Storage Service (Amazon S3).

Pour une application pratique, vous pouvez lancer une machine à états qui exécute des opérations sur les fichiers que vous ajoutez au bucket, telles que la création de vignettes ou l'exécution d'une analyse Amazon Rekognition sur des fichiers image et vidéo.

Dans ce didacticiel, vous lancez l'exécution d'une machine à Helloworld états en téléchargeant un fichier dans un compartiment Amazon S3. Vous examinez ensuite l'exemple d'entrée de cette exécution pour identifier les informations incluses dans l'entrée 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.

Étape 1 : créer un compartiment dans Amazon S3

Maintenant que vous disposez d'une machine à Helloworld états, vous devez créer un compartiment Amazon S3 qui stocke vos fichiers. À l'étape 3 de ce didacticiel, vous avez défini une règle de telle sorte que lorsqu'un fichier est téléchargé dans ce compartiment, cela EventBridge déclenche l'exécution de votre machine à états.

  1. Accédez à la console Amazon S3, puis choisissez Create bucket pour créer le compartiment dans lequel vous souhaitez stocker vos fichiers et déclencher une règle d'événement Amazon S3.

  2. Entrez un Nom de compartiment, tel que username-sfn-tutorial.

    Note

    Les noms de compartiment doivent être uniques parmi tous les noms de compartiments existants. AWS Régions dans Amazon S3. Utilisez le vôtre username pour rendre ce nom unique. Vous devez créer toutes les ressources de la même manière AWS Région.

  3. Conservez toutes les sélections par défaut sur la page, puis choisissez Create bucket.

Étape 2 : activer la notification d'événements Amazon S3 avec EventBridge

Après avoir créé le compartiment Amazon S3, configurez-le pour envoyer des événements EventBridge chaque fois que certains événements se produisent dans votre compartiment S3, tels que les téléchargements de fichiers.

  1. Accédez à la console Amazon S3.

  2. Dans la liste Buckets (Compartiments), choisissez le nom du compartiment pour lequel vous souhaitez activer les événements.

  3. Choisissez Propriétés.

  4. Faites défiler la page vers le bas pour afficher la section Notifications d'événements, puis choisissez Modifier dans la EventBridge sous-section Amazon.

  5. Sous Envoyer des notifications à Amazon EventBridge pour tous les événements de ce compartiment, choisissez Activé.

  6. Sélectionnez Enregistrer les modifications.

    Note

    Après l'activation EventBridge, il faut environ cinq minutes pour que les modifications prennent effet.

Étape 3 : créer une EventBridge règle Amazon

Une fois que vous disposez d'une machine à états, 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 EventBridge la règle dans le même AWS Région en tant que compartiment Amazon S3.

Pour créer la règle

  1. Accédez à la EventBridge console Amazon, puis choisissez Create rule.

    Astuce

    Dans le volet de navigation de la EventBridge console, vous pouvez également choisir Règles sous Bus, puis Créer une règle.

  2. Entrez un nom pour votre règle (par exemple,S3Step Functions) et entrez éventuellement une description pour la règle.

  3. Pour le bus d'événements et le type de règle, conservez les sélections par défaut.

  4. Choisissez Suivant. Cela ouvre la page Créer un modèle d'événement.

  5. Faites défiler la page jusqu'à la section Modèle d'événement, puis procédez comme suit :

    1. Pour Source d'événement, conservez la sélection par défaut de AWS événements ou événements EventBridge partenaires.

    2. Pour AWS service, choisissez Simple Storage Service (S3).

    3. Pour Type d'événement, choisissez Amazon S3 Event Notification.

    4. Choisissez Événement (s) spécifique (s), puis Object Created.

    5. Choisissez un ou plusieurs compartiments spécifiques par nom et entrez le nom du compartiment que vous avez créé à l'étape 1 (username-sfn-tutorial) pour stocker vos fichiers.

    6. Choisissez Suivant. Cela ouvre la page Sélectionner une ou plusieurs cibles.

Pour créer la cible

  1. Dans Target 1, conservez la sélection par défaut de AWS service.

  2. Dans la liste déroulante Sélectionnez une cible, sélectionnez Step Functions state machine.

  3. Dans la liste des machines d'état, sélectionnez la machine d'état que vous avez créée précédemment (par exemple,Helloworld).

  4. Conservez toutes les sélections par défaut sur la page, puis choisissez Next. Cela ouvre la page Configurer les balises.

  5. Choisissez Suivant à nouveau. Cela ouvre la page Réviser et créer.

  6. 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.

  1. Ajoutez un fichier à votre compartiment Amazon S3.

    Accédez à la console Amazon S3, choisissez le compartiment que vous avez créé pour stocker les fichiers (username-sfn-tutorial), puis choisissez Upload.

  2. Ajoutez un fichier, par exempletest.png, puis choisissez Upload.

    Cela lance une exécution de votre machine d'état, en transmettant des informations depuis AWS CloudTrail comme entrée.

  3. 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).

  4. Sélectionnez l'exécution la plus récente de cette machine à états et développez la section Execution Input.

    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 lors 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:::username-sfn-tutorial" ], "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" } }