Configurazione delle notifiche Pub/Sub

Puoi ricevere notifiche delle modifiche ai tuoi repository Google Cloud utilizzando 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 iscrizioni. Per ulteriori informazioni, consulta Controllo dell'accesso.
  • Assicurati di avere 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. Per creare un argomento, utilizza la console Google Cloud o 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] è il tuo ID 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] è il tuo ID progetto Google Cloud.
    • [TOPIC_NAME] è il nome dell'argomento.
  4. Fai clic su Crea.

    Viene visualizzata la pagina Dettagli argomento.

gcloud

In una finestra del terminale, esegui il seguente comando:

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

Dove:

  • [PROJECT_ID] è il tuo ID 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 una sottoscrizione Pub/Sub.

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

Per creare un abbonamento:

Console

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

    Vai alla pagina Argomenti

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

  3. Fai clic su Crea sottoscrizione.

    Viene visualizzata la pagina Aggiungi sottoscrizione all'argomento.

  4. Inserisci un nome per la sottoscrizione:

    projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
    

    Dove:

    • [PROJECT_ID] è il tuo ID 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 il seguente comando:

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

Dove:

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

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

Aggiungere 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 del tuo account di servizio Cloud Build.

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 disporre dell'autorizzazione iam.serviceAccounts.actAs per l'account di servizio. Se non viene specificato, viene utilizzato per impostazione predefinita il account di servizio predefinito di Compute Engine.

Rimuovere un argomento

Puoi rimuovere un'associazione tra un progetto o un repository e un argomento 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 il formato JSON o Protocol Buffer. Per impostare il formato di un argomento, puoi utilizzare il 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