Je souhaite activer une machine d'état AWS Step Function lorsque des fichiers sont ajoutés à un compartiment Amazon Simple Storage Service (Amazon S3).
Brève description
Vous pouvez utiliser une règle Amazon EventBridge pour activer une machine d’état Step Function lorsqu'un objet est chargé vers un compartiment Amazon S3. Pour commencer, vous devez disposer des ressources suivantes :
- Un compartiment S3 dans lequel l'objet est chargé
- Une machine d'état que vous souhaitez exécuter
- Une règle EventBridge pour invoquer la machine d’état lorsque l'objet est chargé dans le compartiment S3
- Une Fonction d’étape pour la tâche requise
Résolution
Créer un compartiment dans Amazon S3
Procédez comme suit :
- Ouvrez la console Amazon S3, puis sélectionnez Créer un compartiment.
- Pour Nom du compartiment, saisissez un nom.
- Sélectionnez Créer un compartiment.
Activer la notification d'événement Amazon S3 avec EventBridge
Procédez comme suit :
- Ouvrez la console Amazon S3, puis sélectionnez Compartiments.
- Choisissez le compartiment pour lequel vous souhaitez activer les événements, puis sélectionnez Propriétés.
- Dans la section Amazon EventBridge, sélectionnez Modifier.
- Dans la section Envoyer des notifications à Amazon EventBridge pour tous les événements de ce compartiment, sélectionnez Activé.
- Sélectionnez Enregistrer les modifications.
Configurer la machine d'état
Ouvrez la console Steps Function, puis suivez les étapes pour créer une machine d’état.
Créer une règle EventBridge
Procédez comme suit :
- Ouvrez la console EventBridge, puis sélectionnez Créer une règle.
- Dans Nom, saisissez le nom de votre règle.
- Pour Type de règle, sélectionnez Règle avec un modèle d’événement, puis Suivant.
- Sur la page Créer un modèle d'événement, dans la section Modèle d'événement, effectuez les choix suivants :
Pour Source de l’événement, sélectionnez Services AWS.
Pour Service AWS, sélectionnez Simple Storage Service (S3).
Pour Type d'événement, sélectionnez Notification d’événement Amazon S3.
Pour Spécification du type d'événement 1, sélectionnez Événement(s) spécifique(s).
Choisissez la liste déroulante Événement(s) spécifique(s), puis sélectionnez Objet créé.
Pour Spécification du type d'événement 2, sélectionnez Compartiment(s) spécifique(s) par nom.
Pour Compartiment(s) spécifique(s) par nom, saisissez le nom du compartiment que vous avez créé précédemment, puis sélectionnez Suivant.
- Sur la page Sélectionner la ou les cibles, effectuez les choix suivants :
Pour Cible 1, sélectionnez Service AWS.
Choisissez la liste déroulante Sélectionner une cible et sélectionnez Machine d'état Step Functions.
Choisissez la liste déroulante Machine d’état, puis choisissez la machine d’état que vous avez créée précédemment.
Sélectionnez Suivant.
- Sur la page Configurer les identifications - facultatif, sélectionnez Suivant.
- Sur la page Vérifier et créer, sélectionnez Créer une règle.
(Facultatif) Surveiller les événements dans un sous-dossier de compartiment S3
Pour déclencher une règle EventBridge lorsque des notifications d'événement se produisent dans un sous-dossier de compartiment S3 spécifique, modifiez le modèle d'événement pour utiliser la correspondance de préfixe.
L'exemple de modèle d'événement suivant déclenche une règle EventBridge lorsqu'un objet S3 est créé dans un sous-dossier nommé example-folder :
{
"source": [
"aws.s3"
],
"detail-type": [
"Object Created"
],
"detail": {
"bucket": {
"name": [
"bucket-name"
]
},
"object": {
"key": [
{
"prefix": "example-folder"
}
]
}
}
}
Remarque :
- Les modifications apportées pour activer les notifications d'événement S3 dans EventBridge prennent environ cinq minutes. Cela signifie que la règle ne se déclenche pas immédiatement sur les événements S3 une fois que vous l'avez activée.
- Si la règle ne se déclenche pas, assurez-vous que le compartiment S3 et la règle d'événement se trouvent dans la même région AWS.