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, elimina un repository o esegue il push di una modifica a un repository esistente. Puoi scegliere di configurare le notifiche per repository specifici o nell'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, segui i passaggi nella guida rapida per l'aggiunta di notifiche per creare un progetto, installare Git e inizializzare Google Cloud CLI.
  • Verifica di disporre delle autorizzazioni appropriate per creare argomenti e abbonamenti. Per ulteriori informazioni, vedi Controllo dell'accesso.
  • Assicurati di avere un account di servizio che possa pubblicare nell'argomento. Per impostazione predefinita, Cloud Source Repositories utilizza l'account di servizio predefinito di Compute Engine per pubblicare messaggi. Per maggiori informazioni, consulta Notifiche Pub/Sub per Cloud Source Repositories.

Crea un argomento Pub/Sub

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

Quando crei un argomento, devi utilizzare un URI qualificato per il 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 saperne di più sul comando gcloud pubsub topics, consulta la documentazione di topics.

Crea una sottoscrizione Pub/Sub

Per ricevere eventi pubblicati in un argomento, devi creare una abbonamento Pub/Sub.

Un'app abbonato riceve messaggi dall'argomento del repository. I sottoscrittori 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 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.

    Si apre la pagina Aggiungi abbonamento 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 della sottoscrizione Pub/Sub.
  5. Lascia l'opzione Tipo di consegna impostata 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 della sottoscrizione Pub/Sub.
  • [TOPIC_NAME] è il nome dell'argomento.

Per saperne 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 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 comando seguente:

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

Rimuovere un argomento

Puoi rimuovere un'associazione tra un progetto o 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