Configurer les notifications Pub/Sub

Lorsque des modifications sont apportées à votre dépôt Container Registry, par exemple lorsque des images sont stockées, taguées ou supprimées, vous pouvez recevoir des notifications via Pub/Sub.

Pub/Sub publie des messages concernant votre dépôt dans des ressources identifiées appelées sujets. Ces messages sont reçus par les applications abonnées aux sujets Pub/Sub. Les applications d'abonnés envoient des notifications lorsque l'état du dépôt change.

En outre, vous pouvez configurer des rôles et des autorisations pour vos sujets Pub/Sub afin de contrôler la manière dont les utilisateurs interagissent avec votre dépôt.

Créer un sujet Pub/Sub

Pour chaque projet Container Registry pour lequel vous souhaitez recevoir des notifications, vous devez créer un sujet Pub/Sub à l'aide d'une application d'éditeur Pub/Sub.

Une application d'éditeur envoie des messages à destination du sujet de votre dépôt lorsque l'état de ce dernier change. Vous pouvez créer un sujet à l'aide de Cloud Console ou de l'outil de ligne de commande gcloud.

Lorsque vous créez un sujet, vous devez utiliser un URI qualifié pour votre dépôt. L'URI qualifié est :

projects/[PROJECT-ID]/topics/gcr
    

[PROJECT-ID] correspond à votre ID de projet Google Cloud.

Pour créer un sujet :

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. Entrez un nom de sujet avec l'URI :

    projects/[PROJECT-ID]/topics/gcr
        

    [PROJECT-ID] correspond à votre ID de projet Google Cloud.

  4. Cliquez sur Créer.

gcloud

À partir du système dans lequel les images Docker sont stockées ou taguées, exécutez la commande suivante dans la fenêtre de votre interface système ou de votre terminal :

gcloud pubsub topics create projects/[PROJECT-ID]/topics/gcr
    

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

Créer un abonnement Pub/Sub

Chaque sujet Pub/Sub doit être associé à un abonnement.

Une application d'abonné reçoit des messages provenant du sujet de votre dépôt. Les abonnés accomplissent des tâches telles que les notifications d'événements, la journalisation système et la communication entre les applications.

Les abonnements peuvent être configurés pour utiliser un modèle push ou un modèle pull.

Pour créer un abonnement :

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-ID]/subscriptions/[SUBSCRIPTION-NAME]
        

    Laissez le type de distribution défini sur "Retrait".

  5. Cliquez sur Créer.

gcloud

À partir du système dans lequel les images Docker sont stockées ou taguées, exécutez la commande suivante :

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

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

Configurer les autorisations Pub/Sub

Vous pouvez configurer les autorisations de votre projet et de vos ressources à l'aide du contrôle des accès Pub/Sub. Les contrôles des accès sécurisent votre dépôt et vous permettent de gérer les autorisations des utilisateurs à l'aide d'un accès basé sur les rôles.

Vous pouvez configurer les contrôles d'accès de Pub/Sub sur la page IAM de Cloud Console ou via l'API IAM.

  • Pour configurer les autorisations de publication, utilisez l'un des rôles suivants : propriétaire, éditeur, administrateur pubsub, éditeur pubsub (pour les modifications), éditeur pubsub (pour les publications).

  • Pour configurer les autorisations d’abonnement, utilisez l’un des rôles suivants : propriétaire, éditeur, administrateur pubsub, éditeur pubsub (pour les modifications), éditeur pubsub (pour les publications).

Exemples de notifications

Les notifications sont envoyées sous forme de chaînes au format JSON. Vous trouverez ci-dessous des exemples de notifications Container Registry envoyées par Pub/Sub.

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

{
      "action":"INSERT",
      "digest":"gcr.io/my-project/hello-world@sha256:6ec128e26cd5..."
    }
    

Lorsqu'un nouveau tag est stocké dans Container Registry, le contenu de la notification peut ressembler à ceci :

{
      "action":"INSERT",
      "digest":"gcr.io/my-project/hello-world@sha256:6ec128e26cd5...",
      "tag":"gcr.io/my-project/hello-world:1.1"
    }
    

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

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

{
      "action":"DELETE",
      "tag":"gcr.io/my-project/hello-world:1.1"
    }
    

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

Étape suivante