Questo documento descrive come creare una sottoscrizione pull. Puoi utilizzare la Google Cloud console, Google Cloud CLI, la libreria client o l'API Pub/Sub per creare una sottoscrizione pull.
Prima di iniziare
- Scopri di più sulle sottoscrizioni.
- Valuta se la tua attività richiede una sottoscrizione pull.
- Scopri come funzionano le sottoscrizioni pull.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni necessarie per creare una sottoscrizione pull, chiedi all'amministratore di concederti il ruolo IAM Pub/Sub Editor (roles/pubsub.editor) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare una sottoscrizione pull. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare una sottoscrizione pull sono necessarie le seguenti autorizzazioni:
-
pubsub.subscriptions.createsul progetto -
pubsub.topics.attachSubscriptionsull'argomento
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Sottoscrizioni tra progetti
Se crei una sottoscrizione in un progetto per un argomento in un altro progetto, devi disporre dell'autorizzazione pubsub.subscriptions.create nel progetto in cui stai creando la sottoscrizione e dell'autorizzazione pubsub.topics.attachSubscription nell'argomento.
Proprietà della sottoscrizione pull
Le sottoscrizioni pull supportano tutte le proprietà di sottoscrizione comuni. Le sottoscrizioni pull supportano anche la proprietà Consegna "exactly-once", descritta nella sezione successiva.
Consegna "exactly-once"
Consegna "exactly-once". Se impostato, Pub/Sub soddisfa le garanzie di consegna "exactly-once". Se non specificato, la sottoscrizione supporta la consegna "at-least-once" per ogni messaggio.
Creare una sottoscrizione pull
Gli esempi riportati di seguito mostrano come creare una sottoscrizione con distribuzione pull utilizzando le impostazioni predefinite fornite.
Console
Per creare una sottoscrizione pull, completa i seguenti passaggi.
Nella Google Cloud console, vai alla pagina Sottoscrizioni.
- Fai clic su Crea sottoscrizione.
Nel campo ID sottoscrizione, inserisci un nome.
Per informazioni su come denominare una sottoscrizione, consulta Linee guida per denominare un argomento o una sottoscrizione.
- Scegli o crea un argomento dal menu a discesa. La sottoscrizione riceve i messaggi dall'argomento.
- Mantieni Tipo di distribuzione come Pull.
- Mantieni tutti gli altri valori predefiniti.
- Fai clic su Crea.
Puoi anche creare una sottoscrizione dalla sezione Argomenti. Questa scorciatoia è utile per associare gli argomenti alle sottoscrizioni.
Nella Google Cloud console, vai alla pagina Argomenti.
- Fai clicmore_vert accanto all'argomento su cui creare una sottoscrizione.
- Dal menu contestuale, seleziona Crea sottoscrizione.
Inserisci l'ID sottoscrizione.
Per informazioni su come denominare una sottoscrizione, consulta Linee guida per denominare un argomento o una sottoscrizione.
- Mantieni Tipo di distribuzione come Pull.
- Mantieni tutti gli altri valori predefiniti.
- Fai clic su Crea.
gcloud
-
Nella Google Cloud console, attiva Cloud Shell.
Nella parte inferiore della Google Cloud console viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già inclusa e installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Per creare una sottoscrizione pull, esegui il
gcloud pubsub subscriptions createcomando.gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
Sostituisci quanto segue:
SUBSCRIPTION_ID: il nome o l'ID della nuova sottoscrizione pull.TOPIC_ID: il nome o l'ID dell'argomento.
REST
Per creare una sottoscrizione pull, utilizza il
projects.subscriptions.create metodo:
Richiesta:
La richiesta deve essere autenticata con un token di accesso nell'intestazione Authorization. Per ottenere un
token di accesso per le Credenziali predefinite dell'applicazione correnti:
gcloud auth application-default print-access-token.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer ACCESS_TOKEN
Corpo della richiesta:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_ID" }
Dove:
- PROJECT_ID è l'ID progetto.
- SUBSCRIPTION_ID è l'ID sottoscrizione.
- TOPIC_ID è l'ID argomento.
Risposta:
{
"name": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID",
"topic": "projects/PROJECT_ID/topics/TOPIC_ID",
"pushConfig": {},
"ackDeadlineSeconds": 10,
"messageRetentionDuration": "604800s",
"expirationPolicy": {
"ttl": "2678400s"
}
}C++
Prima di provare questo esempio, segui le istruzioni di configurazione di C++ in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub C++ .
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub C# .
Go
L'esempio seguente utilizza la versione principale della libreria client Go Pub/Sub (v2). Se utilizzi ancora la libreria v1, consulta la guida alla migrazione alla v2. Per visualizzare un elenco di esempi di codice della versione 1, consulta gli esempi di codice deprecati.
Prima di provare questo esempio, segui le istruzioni di configurazione di Go in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Java.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js in guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
Node.ts
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js in guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP in guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub PHP.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Python.
Ruby
L'esempio seguente utilizza la libreria client Ruby Pub/Sub v3. Se utilizzi ancora la libreria v2, consulta la guida alla migrazione alla v3. Per visualizzare un elenco di esempi di codice Ruby v2, consulta gli esempi di codice deprecati.
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Ruby.
Monitorare le sottoscrizioni pull
Cloud Monitoring fornisce una serie di metriche per monitorare le sottoscrizioni.
Per un elenco di tutte le metriche disponibili relative a Pub/Sub e le relative descrizioni, consulta la documentazione di monitoraggio per Pub/Sub.
Puoi anche monitorare le sottoscrizioni da Pub/Sub.
Passaggi successivi
- Ricevi messaggi da una sottoscrizione pull.
- Crea o modifica una sottoscrizione con
gcloudcomandi. - Crea o modifica una sottoscrizione con le API REST.