Nous effectuons généralement plusieurs opérations sur un seau S3, donc à un certain point, nous devrons peut-être déclencher une autre fonction, opération ou service chaque fois qu'il y a une opération effectuée sur notre seau. Cela peut être réalisé en utilisant des notifications d'événements S3. Ces notifications d'événements peuvent être définies pour télécharger les fichiers, mettre à jour les versions des fichiers, supprimer les objets plus anciens, les transactions de cycle de vie S3 et de nombreuses autres opérations. Le seau S3 informera la cible de cette action particulière avec des notifications d'événements activées. Le délai de livraison de la notification est court et dans la gamme de secondes et de minutes.
À l'heure actuelle, trois services AWS peuvent être déclenchés avec AWS S3.
Maintenant, prenons une plongée plus profonde et voyons comment cela est pratiquement fait.
Configurer les notifications S3 pour AWS SQS
Tout d'abord, nous créerons un seau S3 pour lequel nous allons configurer les notifications d'événements. Pour cela, connectez-vous simplement à votre compte AWS et recherchez le service S3 en utilisant la barre de recherche disponible en haut de votre console de gestion.
La console S3 apparaîtra devant vous; Cliquez simplement sur Créer un seau.
Dans cette section, vous devez fournir un nom de seau qui doit être universellement unique.
Ensuite, vous devez spécifier la région AWS où vous voulez que votre seau S3 soit placé. Nous savons que S3 est un service mondial, et il est accessible depuis n'importe quelle région, mais vous devez toujours définir dans quelle région vous souhaitez stocker vos données.
Ensuite, il existe d'autres paramètres que vous pouvez gérer comme le versioning, le chiffrement et l'accès public, mais vous pouvez simplement les laisser par défaut que nous n'avons rien à voir avec eux pour le moment. Donc, faites simplement glisser vers le bas et cliquez sur le seau Créer dans le coin inférieur droit pour terminer le processus de création du seau.
Alors enfin, nous avons créé un nouveau seau S3 dans notre compte AWS.
Nous devons maintenant créer une cible pour nos notifications d'événements, et nous choisirons le service SQS. Dans la barre de recherche supérieure de la console AWS, recherchez le service de file d'attente simple d'Amazon.
Cliquez sur Créer la file d'attente pour créer un nouveau sujet SQS.
La première option consiste à choisir ici est le type de nos SQ que nous laisserons par défaut, je.e., le standard.
Ensuite, nous devons fournir le nom du sujet SQS.
Maintenant, pour permettre à notre seau S3 d'écrire à ce service SQS, nous devons fournir la bonne politique à SQS. Pour cela, sélectionnez avancé dans la section Politique d'accès.
La politique peut être modifiée directement si vous avez de bonnes compétences avec JSON et d'autres choses, mais pour la simplicité, nous utiliserons le générateur de politiques fourni par l'AWS. Cliquez simplement sur le lien ci-dessous pour ouvrir le générateur de stratégie.
Dans le générateur de stratégie, sélectionnez d'abord le type de politique, qui sera la politique de file d'attente SQS.
Ensuite, nous devons choisir l'effet qui est PERMETTRE ici. Le principe sera notre seau S3 pour lequel nous configurons les notifications d'événements, nous devons donc mettre le seau ARN ici. La ressource est le service sur lequel nous avons besoin de cette politique pour être appliquée, donc ce doit être notre sujet SQS ARN.
L'action dont nous avons besoin pour sélectionner dans la liste déroulante est d'envoyer des messages, car nous voulons que notre seau S3 envoie le message à notre file d'attente SQS.
Maintenant, cliquez sur Ajouter une instruction, puis sélectionnez la stratégie Créer pour obtenir la stratégie au format JSON.
Copiez simplement le contenu de la politique à partir de là et placez-les dans la politique SQS.
Maintenant, faites défiler vers le bas dans la section SQS Créer et cliquez sur Créer une file d'attente. Laissez tous les autres paramètres tels que pour l'instant.
Enfin, revenez maintenant à notre seau S3 et sélectionnez l'onglet Propriétés.
Faites glisser vers les notifications d'événements et cliquez sur Créer des notifications d'événements.
Tout d'abord, fournissez le nom de votre événement.
Vous devez choisir le type d'événement pour lequel vous souhaitez activer les notifications. Il y a une longue liste que vous pouvez choisir; Pour l'instant, choisissons tous les événements de création d'objets.
Nous devons sélectionner la destination pour nos notifications d'événements. Pour cela, sélectionnez le service SQS, puis sélectionnez le nom de votre sujet SQS.
Enfin, cliquez simplement sur Enregistrer les modifications pour terminer le processus.
Alors enfin, nous sommes prêts à aller avec les notifications de l'événement S3. Maintenant téléchargez un objet dans le seau S3 et vérifiez s'il déclenche le SQS.
Nous avons téléchargé un objet sur notre seau S3.
Si vous allez à notre SQS et votre sondage pour les messages, vous obtiendrez des notifications pour les événements que nous avons activés.
Nous avons donc réussi à configurer des notifications d'événements S3 pour un sujet SQS.
Configurer les notifications S3 pour AWS SNS
Nous verrons un autre exemple pour les notifications d'événements S3 pour SNS, mais cette fois au lieu d'utiliser la console de gestion, nous utiliserons l'interface de ligne de commande AWS (CLI). La première étape consiste donc à créer simplement les seaux dans notre compte AWS, pour lequel nous devons simplement utiliser la commande suivante.
$: AWS S3API Create-Bucket - Bucket--région
Pour afficher les seaux S3 disponibles dans votre compte, vous pouvez utiliser cette commande
$: AWS S3API List-Buckets
Maintenant, nous devons créer un sujet SNS. Pour cela, utilisez la commande suivante sur CLI
$: AWS SNS Create-Topic --name
Nous avons besoin d'un fichier de configuration pour définir le type d'événement et le sujet SNS ARN. Le fichier sera au format JSON.
"TopicConfiguration":
"Événement": "S3: objetCreated: *", "Topic": "Arn: AWS: SNS: US-West-2: 123456789012: S3-notification-topic"
Maintenant enfin, nous pouvons activer la notification de l'événement en utilisant la commande suivante.
$: AWS S3API Put-Bucket-Notification - Bucket--Fichier de configuration de notification: //
Nous avons donc réussi à activer les notifications d'événements S3 pour notre sujet SNS.
Conclusion:
Les notifications d'événements S3 nous permettent d'informer d'autres services de l'opération effectuée sur notre seau S3. Ces notifications peuvent être utilisées pour déclencher. Les notifications peuvent également être envoyées à SQS ou SNS, qui sont très utiles pour découpler nos applications. En utilisant SQS et SNS, ce schéma peut en outre être lié à RDS afin que nous puissions développer notre base de données pour des événements S3 particuliers.