Container Registry s'intègre à EventBridge pour proposer la fonctionnalité de notification d'événements. Pour recevoir des notifications concernant les changements d'état lors de la réplication, de la construction, de l'analyse, de l'exécution de chaînes de livraison ou de la signature d'images, utilisez DingTalk, une passerelle HTTP ou une passerelle HTTPS.
Prérequis
Vous avez créé une instance Container Registry Enterprise Edition. Pour plus d'informations, consultez la rubrique Créer une instance Container Registry Enterprise Edition.
EventBridge est activé. Pour plus d'informations, consultez la rubrique Activer EventBridge et accorder des autorisations.
Précautions
La fonctionnalité de notification d'événements pour Container Registry (ACR) n'est pas disponible dans les régions Chine (Shanghai) Finance, Chine (Shenzhen) Finance, Chine (Hangzhou) Finance, Chine (Pékin) Ali Gov 1 et Royaume-Uni (Londres).
Le nombre maximal de règles d'événements par région est de 10. Vous pouvez créer jusqu'à 10 règles d'événements distinctement dans EventBridge et Container Registry. Si vous atteignez cette limite, supprimez les règles inutiles.
Dans EventBridge, vous ne pouvez interroger les événements par ID que s'ils datent de moins de trois jours.
Lorsque vous utilisez DingTalk pour envoyer des notifications, chaque robot de discussion peut envoyer au maximum 20 messages par minute au groupe, en raison des limites imposées par DingTalk. Si le nombre de notifications dépasse 20, le robot subit une limitation de débit pendant 10 minutes.
-
Après avoir créé une règle d'événement dans Container Registry, vous pouvez modifier ses informations, telles que le type de notification, directement dans EventBridge. Pour plus d'informations, consultez la rubrique Modifier les cibles d'événement.
ImportantSi vous modifiez une règle d'événement dans EventBridge, puis dans Container Registry, la règle par défaut de Container Registry écrase celle d'EventBridge. Par exemple, si vous modifiez le modèle de notification dans EventBridge, puis ajustez la portée effective de la règle dans Container Registry, le modèle par défaut de Container Registry remplace celui configuré dans EventBridge. La modification du modèle dans EventBridge n'est pas synchronisée avec Container Registry et ne prend donc pas effet.
Étape 1 : Créer un robot de discussion DingTalk
Effectuez cette étape uniquement si vous utilisez DingTalk pour envoyer des notifications.
Ouvrez la conversation de groupe DingTalk à laquelle vous souhaitez ajouter un robot, puis cliquez sur l'icône
située dans le coin supérieur droit. Dans le panneau Group Settings, cliquez sur Group Assistant.
Dans la boîte de dialogue Group Assistant, cliquez sur Add robot, puis sur l'icône
située à côté de Add robot.Dans la boîte de dialogue ChatBot, cliquez sur Custom.
Dans la boîte de dialogue Robot details, cliquez sur Add.
Dans le panneau Add robot, saisissez un nom pour le robot, sélectionnez Sign ainsi que I have read and agree to the "Custom Robot Service and Disclaimer", puis cliquez sur Complete. Cliquez à nouveau sur Complete.
-
Dans la boîte de dialogue ChatBot, cliquez sur l'icône
située à côté du robot que vous venez de créer.Dans la boîte de dialogue Settings, copiez l'adresse webhook et la clé de signature, puis cliquez sur Complete.
Étape 2 : Créer une règle d'événement
Connectez-vous à la console Container Registry.
Dans la barre de navigation supérieure, sélectionnez une région.
Dans le volet de navigation de gauche, cliquez sur Instances.
Sur la page Instances, cliquez sur l'instance Enterprise Edition à gérer.
Dans le volet de navigation de gauche de la page des détails de l'instance, choisissez .
Sous l'onglet Event Rules, cliquez sur Create Rule.
-
Dans l'assistant Event Scope, configurez les paramètres, puis cliquez sur Next.
Parameter
Description
Rule Name
Spécifiez le nom de la règle d'événement.
Event Type
Spécifiez le type d'événement qui déclenche les notifications. Les types suivants sont pris en charge :
cr:Artifact:SynchronizationCompleted : Une synchronisation d'image réussit, échoue ou est annulée.
cr:Artifact:BuildCompleted : Une construction d'image réussit, échoue ou est annulée.
cr:Artifact:ScanCompleted : Une analyse d'image réussit ou échoue.
cr:Artifact:DeliveryChainCompleted : Le traitement d'une chaîne de livraison réussit, échoue, est annulé ou est refusé.
cr:Artifact:SigningCompleted:: Le marquage d'image réussit ou échoue.
Cette rubrique utilise l'analyse d'image comme exemple. Sélectionnez Image Scan Completed, puis cochez la case Completed.
Effective scope
Spécifiez la portée effective de l'événement :
Instance : Définissez l'expression régulière pour les tags d'image. Une notification est déclenchée lorsqu'un tag d'image dans l'instance Enterprise Edition correspond à l'expression régulière.
Namespace : Sélectionnez un namespace et définissez l'expression régulière pour les tags d'image. Une notification est déclenchée lorsqu'un tag d'image dans le namespace correspond à l'expression régulière.
Repository : Sélectionnez un namespace et un repository, puis définissez l'expression régulière pour les tags d'image. Une notification est déclenchée lorsqu'un tag d'image dans le repository correspond à l'expression régulière.
-
Dans l'assistant Event Notification, configurez la méthode de notification, puis cliquez sur Save.
Vous pouvez sélectionner DingTalk, HTTP ou HTTPS comme méthode de notification.
DingTalk : Définissez Notification Method sur DingTalk, puis saisissez l'adresse webhook et la clé de signature. Dans cet exemple, la méthode de notification DingTalk est utilisée.
HTTP : Définissez Notification Method sur HTTP, puis saisissez l'adresse HTTP.
HTTPS : Définissez Notification Method sur HTTPS, puis saisissez l'adresse HTTPS.
Après la création d'une règle d'événement dans Container Registry, une règle portant le même nom est automatiquement créée dans le bus d'événements par défaut d'EventBridge. La règle dans EventBridge utilise le modèle de notification DingTalk par défaut.
Une fois l'analyse d'image terminée avec succès, le groupe DingTalk reçoit la notification suivante.
La notification d'analyse reçue dans le groupe DingTalk contient les informations suivantes :
Region: cn-shanghai
Instance: test12-24
Repo: lf-test-python/test-ee:master
Status: COMPLETE
High Severity: 272
Medium Severity: 481
Low Severity: 66
Unknown Severity: 10
Total Severity: 829
End Time: 2021-11-25 11:46:19
La notification inclut également un lien View Detail en bas pour consulter les détails.
Opérations connexes
Cette section explique comment consulter les traces d'événements.
Connectez-vous à la console Container Registry.
Dans la barre de navigation supérieure, sélectionnez une région.
Dans le volet de navigation de gauche, cliquez sur Instances.
Sur la page Instances, cliquez sur l'instance Enterprise Edition à gérer.
Dans le volet de navigation de gauche de la page des détails de l'instance, choisissez .
Sur la page Event Notification, cliquez sur l'onglet Event History, puis sur View Details pour l'ID d'événement cible.
-
Dans la console EventBridge, sous l'onglet Query by Event ID, localisez l'ID d'événement cible et cliquez sur Event Trace dans la colonne Actions.
Dans la boîte de dialogue Event Trace, vous pouvez consulter les détails de réception et de distribution de l'événement.