Configurazione delle notifiche Pub/Sub

Puoi ricevere notifiche per le modifiche apportate al tuo account Google Cloud mediante Pub/Sub. Queste notifiche ti informano quando un utente crea un nuovo repository, ne elimina uno o esegue il push di una modifica in un repository esistente. Puoi scegliere di configurare le notifiche per repository specifici o per un intero progetto Google Cloud.

Per saperne di più su Pub/Sub, consulta Che cos'è Pub/Sub?

Prima di iniziare

  • Se non l'hai ancora fatto, crea un repository.
  • Verifica di disporre delle autorizzazioni appropriate per creare argomenti e abbonamenti. Per ulteriori informazioni, vedi Controllo dell'accesso.
  • Assicurati di disporre di un account di servizio che possa pubblicare nel tuo argomento. Per impostazione predefinita, Cloud Source Repositories utilizza l'account di servizio predefinito di Compute Engine per pubblicare i messaggi. Per ulteriori informazioni, consulta Notifiche Pub/Sub per Cloud Source Repositories.

crea un argomento Pub/Sub

Per ogni progetto o repository Cloud Source Repositories per il quale vuoi ricevere notifiche, devi creare un argomento Pub/Sub. Puoi creare un argomento utilizzando la console Google Cloud o la riga di comando gcloud lo strumento a riga di comando gcloud.

Quando crei un argomento, devi utilizzare un URI qualificato per il tuo repository. L'URI qualificato è:

projects/[PROJECT_ID]/topics/[TOPIC_NAME]

Dove:

  • [PROJECT_ID] è l'ID del tuo progetto Google Cloud.
  • [TOPIC_NAME] è il nome dell'argomento.

Per creare un argomento:

Console

  1. Nella console Google Cloud, vai alla pagina Argomenti di Pub/Sub.

    Vai alla pagina Argomenti

  2. Fai clic su Crea argomento.

  3. Inserisci un nome per l'argomento con il seguente URI:

    projects/[PROJECT_ID]/topics/[TOPIC_NAME]
    

    Dove:

    • [PROJECT_ID] è l'ID del tuo progetto Google Cloud.
    • [TOPIC_NAME] è il nome dell'argomento.
  4. Fai clic su Crea.

    Si apre la pagina Dettagli argomento.

gcloud

In una finestra del terminale, esegui questo comando:

gcloud pubsub topics create projects/[PROJECT_ID]/topics/[TOPIC_NAME]

Dove:

  • [PROJECT_ID] è l'ID del tuo progetto Google Cloud.
  • [TOPIC_NAME] è il nome dell'argomento.

Per scoprire di più sul comando gcloud pubsub topics, consulta la documentazione di topics.

Creare una sottoscrizione Pub/Sub

Per ricevere gli eventi pubblicati in un argomento, devi creare un Sottoscrizione Pub/Sub.

Un'app sottoscrittore riceve i messaggi dall'argomento del tuo repository. Gli iscritti possono rispondere agli eventi del tuo repository inviando notifiche o attivando una build.

Per creare un abbonamento, segui questi passaggi.

Console

  1. Nella console Google Cloud, vai agli Argomenti di Pub/Sub. .

    Vai alla pagina Argomenti

  2. Fai clic sul nome dell'argomento del progetto.

  3. Fai clic su Crea sottoscrizione.

    Si apre la pagina Aggiungi sottoscrizione all'argomento.

  4. Inserisci un nome per la sottoscrizione:

    projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
    

    Dove:

    • [PROJECT_ID] è l'ID del tuo progetto Google Cloud.
    • [SUBSCRIPTION_NAME] è il nome dell'abbonamento Pub/Sub.
  5. Lascia Tipo di consegna impostato su Pull.

  6. Fai clic su Crea.

gcloud

In una finestra del terminale, esegui questo comando:

gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME]

Dove:

  • [SUBSCRIPTION_NAME] è il nome del bucket Pub/Sub abbonamento.
  • [TOPIC_NAME] è il nome dell'argomento.

Per scoprire di più sul comando gcloud pubsub subscriptions, consulta le Documentazione subscriptions.

Aggiungi un argomento

Puoi associare un argomento Pub/Sub a un progetto o un repository Google Cloud utilizzando Google Cloud CLI.

Per associare un argomento a un intero progetto, inserisci il seguente comando:

gcloud source project-configs update --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

Dove:

  • [TOPIC_NAME] è il nome dell'argomento Pub/Sub.
  • [SERVICE_ACCOUNT_NAME] è il nome del tuo account di servizio Cloud Build.

Per associare un argomento a un repository specifico, inserisci il seguente comando:

gcloud source repos update [REPOSITORY_NAME] --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

Dove:

  • [REPOSITORY_NAME] è il nome del tuo repository Google Cloud.
  • [TOPIC_NAME] è il nome dell'argomento Pub/Sub.
  • [SERVICE_ACCOUNT_NAME] è il nome della tua Cloud Build l'account di servizio.

L'account di servizio deve trovarsi nello stesso progetto del repository e deve avere l'autorizzazione pubsub.topics.publish per pubblicare un messaggio nell'argomento specificato. Devi avere l'autorizzazione iam.serviceAccounts.actAs in l'account di servizio. Se l'account di servizio non è specificato, viene utilizzato il valore predefinito Account di servizio predefinito Compute Engine.

Rimuovere un argomento

Puoi rimuovere un'associazione tra un progetto o un repository Pub/Sub utilizzando Google Cloud CLI.

Per rimuovere un argomento da un intero progetto, inserisci il seguente comando:

gcloud source project-configs update --remove-topic=[TOPIC_NAME]

Per rimuovere un argomento da un repository specifico, inserisci il seguente comando:

gcloud source repos update [REPOSITORY_NAME] --remove-topic=[TOPIC_NAME]

Impostare il formato dell'argomento

Le notifiche per Cloud Source Repositories possono utilizzare JSON o Protocol Formato dei buffer. Per impostare il formato di un argomento, puoi utilizzare Parametro --message-format quando aggiungi l'argomento:

gcloud source project-configs update --add-topic=[TOPIC_NAME] --message-format=[json|protobuf]

Puoi anche utilizzare il comando set-format:

gcloud source project-configs update --update-topic=[TOPIC_NAME] --message-format=[json|protobuf]

Passaggi successivi