Cette page a été traduite par l'API Cloud Translation.
Switch to English

Configurer les notifications Pub/Sub

Vous pouvez recevoir des notifications de Pub/Sub pour connaître les modifications apportées à un dépôt Docker. Les notifications s'appliquent à toutes les images de conteneur stockées dans le dépôt, y compris les graphiques Helm 3 intégrés au format OCI.

Pub/Sub publie des messages concernant vos dépôts dans des ressources nommées appelées sujets. Les applications qui s'abonnent aux sujets Pub/Sub reçoivent ces messages et reçoivent des notifications lorsque l'état d'un dépôt change.

Artifact Registry publie des messages concernant les modifications suivantes :

  • Importations d'image
  • Nouveaux tags ajoutés aux images
  • Suppression d'image

Vous pouvez également configurer des rôles et des autorisations de publication ou d'abonnement aux notifications.

Pour plus d'informations sur la configuration des notifications Container Analysis pour les activités telles que les nouveaux résultats d'analyse des failles, consultez la documentation de Container Analysis.

Présentation

Artifact Registry publie des messages concernant les modifications apportées aux dépôts dans un sujet nommé gcr.

Pour recevoir des notifications, vous devez :

  1. Créez un sujet nommé gcr dans le projet avec Artifact Registry.
  2. Créez un abonnement associé au sujet.
  3. Configurez votre application d'abonné pour recevoir des messages concernant les modifications apportées au dépôt.
  4. Le cas échéant, configurez les autorisations pour contrôler l'accès au sujet et à l'abonnement.

Créer le sujet Artifact Registry

Artifact Registry publie des messages dans un sujet nommé gcr. Il s'agit du même sujet que Container Registry pour publier des messages.

Dans chaque projet où Artifact Registry est en cours d'exécution, vous devez créer le sujet gcr si ce dernier n'existe pas déjà. Pour afficher la liste des sujets existants, vous pouvez consulter la page Sujets Pub/Sub dans Google Cloud Console ou exécuter la commande suivante:

gcloud pubsub topics list

Pour créer le sujet gcr :

Console

  1. Accédez à la page "Sujets Pub/Sub" dans Cloud Console.

    Accéder à la page des sujets Pub/Sub

  2. Cliquez sur Créer un sujet.

  3. Saisissez l'ID de sujet gcr.

  4. Cliquez sur Créer un sujet.

gcloud

Exécutez la commande suivante :

gcloud pubsub topics create gcr --project=PROJECT-ID

Remplacez PROJECT par l'ID de votre projet Google Cloud. Si vous omettez l'option --project, la commande utilise le projet actuel.

Pour en savoir plus sur la commande gcloud pubsub topics, consultez la documentation sur topics.

Maintenant que vous avez créé le sujet gcr, vous pouvez créer un abonnement au sujet.

Créer un abonnement

Après avoir créé un sujet pour les modifications du dépôt, vous pouvez configurer un abonnement qui utilise la distribution push ou la distribution pull. Nous vous recommandons d'utiliser la distribution pull, car les systèmes CI/CD peuvent générer de nombreuses modifications aux artefacts stockés et la distribution pull est plus efficace pour un grand nombre de messages.

Pour créer un abonnement avec la distribution pull, procédez comme suit :

Console

  1. Accédez à la page "Sujets Pub/Sub" dans Cloud Console.

    Accéder à la page des sujets Pub/Sub

  2. Cliquez sur le sujet de votre projet.

  3. Cliquez sur Créer un abonnement.

  4. Entrez un nom d'abonnement :

    projects/PROJECT/subscriptions/[SUBSCRIPTION-NAME]
    

    Laissez le type de distribution défini sur Retrait.

  5. Cliquez sur Créer.

gcloud

Exécutez la commande suivante :

gcloud pubsub subscriptions create SUBSCRIPTION-NAME --topic=gcr

Remplacez SUBSCRIPTION-NAME par le nom de l'abonnement.

Pour en savoir plus sur la commande gcloud pubsub subscriptions, consultez la documentation sur subscriptions.

Vous disposez désormais d'un abonnement au sujet gcr. L'étape suivante consiste à configurer les autorisations des identités qui déclenchent des modifications dans les dépôts.

Configurer votre application d'abonné

Une fois que vous avez créé un sujet et un abonnement à ce sujet, vous pouvez configurer votre application d'abonné, c'est-à-dire celle qui reçoit des messages concernant les modifications apportées aux dépôts. s'affiche en haut de l'écran. Les applications d'abonnés remplissent les tâches telles que les notifications d'événements, la journalisation système et la communication entre les applications.

Lorsque vous transférez ou supprimez une image, procédez comme suit :

  1. Le compte de service Artifact Registry publie la modification dans votre sujet gcr. Le compte de service est service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, où PROJECT-NUMBER correspond à votre numéro de projet Google Cloud. }. Le compte de service Artifact Registry dispose par défaut des autorisations pubsub.topics.publish pour pouvoir publier des modifications dans votre sujet.
  2. Pub/Sub transfère le message du sujet à votre abonnement.
  3. Lorsque votre application d'abonné envoie une requête de messages, elle extrait le nouveau message de l'abonnement.

    L'identité qui récupère des messages pour le compte de l'abonné doit être autorisée à accéder à l'abonnement. Vous pouvez accorder cette autorisation à l'aide du rôle d'abonné Pub/Sub.

Pour en savoir plus sur la configuration d'un abonnement pour recevoir des messages dans le cadre d'un abonnement avec la distribution pull, consultez la page Recevoir des messages en mode pull.

Configurer des autorisations

Vous pouvez utiliser les autorisations Pub/Sub pour contrôler l'accès à vos sujets et abonnements.

Pour plus d'informations sur les autorisations Pub/Sub et l'octroi d'un accès aux sujets et aux abonnements, consultez la documentation sur le contrôle des accès dans Pub/Sub.

Exemples de notifications

Pub/Sub envoie des notifications sous forme de chaînes au format JSON. Consultez les exemples ci-dessous pour savoir à quoi vous attendre lorsque vous recevez des notifications Artifact Registry de la part de Pub/Sub.

Lorsqu'une image est stockée dans Artifact Registry, le contenu de la notification peut ressembler à ceci :

{
  "action":"INSERT",
  "digest":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world@sha256:6ec128e26cd5..."
}

Lorsqu'un nouveau tag d'image est transféré vers Artifact Registry, la charge utile de notification se présente comme suit :

{
  "action":"INSERT",
  "digest":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world@sha256:6ec128e26cd5...",
  "tag":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world:1.1"
}

Le message identifie l'image pertinente à l'aide d'une clé digest ou tag.

Lorsqu'un tag d'image est supprimé d'Artifact Registry, le contenu de la notification peut ressembler à ceci :

{
  "action":"DELETE",
  "tag":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world:1.1"
}

Le message peut contenir les valeurs DELETE ou INSERT pour la clé action.

Étape suivante