ID regione
REGION_ID
è un codice abbreviato che Google assegna
in base alla regione selezionata al momento della creazione dell'app. Il codice non
corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare
simili ai codici paese e provincia di uso comune. Per le app create dopo
febbraio 2020, REGION_ID.r
è incluso
negli URL di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
Pub/Sub fornisce messaggistica asincrona, many-to-many affidabile tra le applicazioni. Le applicazioni del publisher possono inviare messaggi a un argomento e altre applicazioni possono iscriversi all'argomento per ricevere i messaggi.
Questo documento descrive come utilizzare le librerie client di Cloud per inviare e ricevere messaggi Pub/Sub in un'app di App Engine. per inviare e ricevere messaggi Pub/Sub in un'app App Engine.Prerequisiti
- Segui le istruzioni per creare un'app per il runtime selezionato per configurare l'ambiente e il progetto e per comprendere come sono strutturate le app di App Engine.
- Annota e salva l'ID progetto, perché ti servirà per eseguire l'applicazione di esempio descritta in questo documento.
- Crea un account di servizio e una chiave dell'account di servizio da utilizzare con l'applicazione.
-
Attiva l'API Google Cloud Pub/Sub.
Clonazione dell'app di esempio
Copia le app di esempio nella tua macchina locale e vai alla directory pubsub
:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
cd golang-samples/appengine_flexible/pubsub
Java
versione 11/17
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/flexible/java-11/pubsub/
versione 8
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/flexible/java-8/pubsub/
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/appengine/pubsub
PHP
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
cd php-docs-samples/pubsub
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/appengine/flexible/pubsub
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/flexible/pubsub/
.NET
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
cd dotnet-docs-samples/appengine/flexible/Pubsub/Pubsub.Sample
Crea un argomento e una sottoscrizione
Crea un argomento e una sottoscrizione, che include la specifica dell'endpoint a cui il server Pub/Sub deve inviare le richieste:
Go
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sostituisci YOUR_TOKEN
con un token segreto casuale. L'endpoint push lo utilizza
per verificare le richieste.
Per utilizzare Pub/Sub con l'autenticazione, crea un altro abbonamento:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sostituisci YOUR-SERVICE-ACCOUNT-EMAIL
con l'indirizzo email del tuo account di servizio.
Java
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sostituisci YOUR_TOKEN
con un token segreto casuale. L'endpoint push lo utilizza
per verificare le richieste.
Per utilizzare Pub/Sub con l'autenticazione, crea un altro abbonamento:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sostituisci YOUR-SERVICE-ACCOUNT-EMAIL
con l'indirizzo email del tuo account di servizio.
Node.js
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sostituisci YOUR_TOKEN
con un token segreto casuale. L'endpoint push lo utilizza
per verificare le richieste.
Per utilizzare Pub/Sub con l'autenticazione, crea un altro abbonamento:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sostituisci YOUR-SERVICE-ACCOUNT-EMAIL
con l'indirizzo email del tuo account di servizio.
PHP
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sostituisci YOUR_TOKEN
con un token segreto casuale. L'endpoint push lo utilizza
per verificare le richieste.
Per utilizzare Pub/Sub con l'autenticazione, crea un altro abbonamento:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sostituisci YOUR-SERVICE-ACCOUNT-EMAIL
con l'indirizzo email del tuo account di servizio.
Python
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sostituisci YOUR_TOKEN
con un token segreto casuale. L'endpoint push lo utilizza
per verificare le richieste.
Per utilizzare Pub/Sub con l'autenticazione, crea un altro abbonamento:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sostituisci YOUR-SERVICE-ACCOUNT-EMAIL
con l'indirizzo email del tuo account di servizio.
Ruby
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sostituisci YOUR_TOKEN
con un token segreto casuale. L'endpoint push lo utilizza
per verificare le richieste.
Per utilizzare Pub/Sub con l'autenticazione, crea un altro abbonamento:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sostituisci YOUR-SERVICE-ACCOUNT-EMAIL
con l'indirizzo email del tuo account di servizio.
.NET
# Configure the topic gcloud pubsub topics create YOUR_TOPIC_NAME # Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10
Sostituisci YOUR_TOKEN
con un token segreto casuale. L'endpoint push lo utilizza
per verificare le richieste.
Per utilizzare Pub/Sub con l'autenticazione, crea un altro abbonamento:
# Configure the push subscription gcloud pubsub subscriptions create YOUR_SUBSCRIPTION_NAME \ --topic=YOUR_TOPIC_NAME \ --push-auth-service-account=YOUR-SERVICE-ACCOUNT-EMAIL\ --push-auth-token-audience=OPTIONAL_AUDIENCE_OVERRIDE\ --push-endpoint=https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/push-handlers/receive_messages?token=YOUR_TOKEN \ --ack-deadline=10 # Your service agent # `service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com` needs to have the # `iam.serviceAccountTokenCreator` role. PUBSUB_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${PUBSUB_SERVICE_ACCOUNT}"\ --role='roles/iam.serviceAccountTokenCreator'
Sostituisci YOUR-SERVICE-ACCOUNT-EMAIL
con l'indirizzo email del tuo account di servizio.
Imposta le variabili di ambiente
Go
Modifica il file app.yaml
per impostare le variabili di ambiente per l'argomento e il token di verifica:
Java
Modifica il file app.yaml
per impostare le variabili di ambiente per l'argomento e il token di verifica:
Node.js
Modifica il file app.yaml
per impostare le variabili di ambiente per l'argomento e il token di verifica:
PHP
Modifica il file index.php
per impostare le variabili di ambiente per l'argomento e
la sottoscrizione:
Python
Modifica il file app.yaml
per impostare le variabili di ambiente per ID progetto, argomento e token di verifica:
Ruby
Modifica il file app.yaml
per impostare le variabili di ambiente per ID progetto, argomento e token di verifica:
.NET
Modifica il file app.yaml
per impostare le variabili di ambiente per l'argomento e il token di verifica:
Revisione del codice
L'app di esempio utilizza la libreria client di Pub/Sub.
Go
L'app di esempio utilizza le variabili di ambiente impostate nel file app.yaml
(PUBSUB_TOPIC
e PUBSUB_VERIFICATION_TOKEN
) per la configurazione.
I messaggi ricevuti da questa istanza sono archiviati in una sezione:
messages []string
La funzione pushHandler
riceve i messaggi inviati tramite push, verifica il token e
aggiunge il messaggio alla sezione messages
:
La funzione publishHandler
pubblica nuovi messaggi nell'argomento.
Java
L'app di esempio utilizza i valori impostati nel file app.yaml
per
configurare le variabili di ambiente. Il gestore di richieste push utilizza questi valori per confermare che la richiesta provenga da Pub/Sub e abbia origine da una fonte attendibile:
String pubsubVerificationToken = System.getenv("PUBSUB_VERIFICATION_TOKEN");
L'app di esempio gestisce un'istanza del database Cloud Datastore per archiviare i messaggi.
Il servlet PubSubPush
riceve i messaggi inviati tramite push e li aggiunge
all'istanza del database messageRepository
:
versione 11/17
versione 8
Il servlet PubSubPublish
interagisce con l'app web App Engine per
pubblicare nuovi messaggi e visualizzare i messaggi ricevuti:
Node.js
L'app di esempio utilizza i valori impostati nel file app.yaml
per
configurare le variabili di ambiente. Il gestore di richieste push utilizza questi valori per confermare che la richiesta provenga da Pub/Sub e abbia origine da una fonte attendibile:
// The following environment variables are set by the `app.yaml` file when
// running on App Engine, but will need to be manually set when running locally.
var PUBSUB_VERIFICATION_TOKEN = process.env.PUBSUB_VERIFICATION_TOKEN;
var pubsub = gcloud.pubsub({
projectId: process.env.GOOGLE_CLOUD_PROJECT
});
var topic = pubsub.topic(process.env.PUBSUB_TOPIC);
L'app di esempio gestisce un elenco globale per archiviare i messaggi ricevuti da questa istanza:
// List of all messages received by this instance
var messages = [];
Questo metodo riceve i messaggi inviati tramite push e li aggiunge all'elenco globale messages
:
Questo metodo interagisce con l'app web App Engine per pubblicare nuovi messaggi e visualizzare i messaggi ricevuti:
PHP
L'app di esempio utilizza i valori impostati nel file app.yaml
per configurare
le variabili di ambiente. Il gestore di richieste push utilizza questi valori per confermare
che la richiesta provenga da Pub/Sub e abbia origine da un'origine attendibile:
L'app di esempio gestisce un elenco globale per archiviare i messaggi ricevuti da questa istanza:
$messages = [];
Il metodo pull
recupera i messaggi dall'argomento che hai creato e li aggiunge
all'elenco dei messaggi:
Il metodo publish
pubblica nuovi messaggi nell'argomento:
Python
L'app di esempio utilizza i valori impostati nel file app.yaml
per configurare
le variabili di ambiente. Il gestore di richieste push utilizza questi valori per confermare
che la richiesta provenga da Pub/Sub e abbia origine da un'origine attendibile:
app.config['PUBSUB_VERIFICATION_TOKEN'] = \
os.environ['PUBSUB_VERIFICATION_TOKEN']
app.config['PUBSUB_TOPIC'] = os.environ['PUBSUB_TOPIC']
L'app di esempio gestisce un elenco globale per archiviare i messaggi ricevuti da questa istanza:
MESSAGES = []
Il metodo pubsub_push()
riceve i messaggi inviati tramite push e li aggiunge all'elenco globale
di MESSAGES
:
Il metodo index()
interagisce con l'app web App Engine per pubblicare
nuovi messaggi e visualizzare quelli ricevuti:
Ruby
L'app di esempio utilizza i valori impostati nel file app.yaml
per configurare
le variabili di ambiente. Il gestore di richieste push utilizza questi valori per confermare
che la richiesta provenga da Pub/Sub e abbia origine da un'origine attendibile:
L'app di esempio gestisce un elenco globale per archiviare i messaggi ricevuti da questa istanza:
Questo metodo riceve i messaggi inviati tramite push e li aggiunge all'elenco globale messages
:
Questo metodo interagisce con l'app web App Engine per pubblicare nuovi messaggi e visualizzare quelli ricevuti:
.NET
Esecuzione dell'esempio in locale
Durante l'esecuzione in locale, puoi utilizzare Google Cloud CLI per fornire l'autenticazione
e utilizzare le API Google Cloud. Supponendo che tu abbia configurato l'ambiente come descritto in
Prerequisiti, hai già eseguito il comando gcloud init
,
che fornisce questa autenticazione.
Go
Imposta le variabili di ambiente prima di avviare l'applicazione:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-token]
export PUBSUB_TOPIC=[your-topic]
go run pubsub.go
Java
mvn clean package
Imposta le variabili di ambiente prima di avviare l'applicazione:
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
mvn jetty:run
Node.js
Imposta le variabili di ambiente prima di avviare l'applicazione:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
npm install
npm start
PHP
Installa le dipendenze utilizzando Composer:
composer install
Quindi imposta le variabili di ambiente prima di avviare l'applicazione:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
php -S localhost:8080
Python
Installa le dipendenze, preferibilmente in un ambiente virtuale.
Mac OS / Linux
- Crea un
ambiente Python isolato:
python3 -m venv env
source env/bin/activate
- Se non ti trovi nella directory che contiene il codice campione, passa alla directory che contiene il codice campione
hello_world
. Quindi installa le dipendenze:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
Windows
Utilizza PowerShell per eseguire i pacchetti Python.
- Individua la tua installazione di PowerShell.
- Fai clic con il tasto destro del mouse sulla scorciatoia a PowerShell e avviala come amministratore.
- Crea un ambiente Python isolato.
python -m venv env
.\env\Scripts\activate
- Naviga alla directory del progetto e installa le dipendenze. Se non ti trovi nella directory che contiene il codice campione, passa alla directory che contiene il codice campione
hello_world
. Quindi, installa le dipendenze:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
Quindi imposta le variabili di ambiente prima di avviare l'applicazione:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
python main.py
Ruby
Installa le dipendenze:
bundle install
Quindi imposta le variabili di ambiente prima di avviare l'applicazione:
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
bundle exec ruby app.rb -p 8080
.NET
Esegui i comandi seguenti dalla directory radice dell'applicazione:
dotnet restore
dotnet run
Nel browser web, inserisci http://localhost:5000/. Per uscire dal server web, premi Ctrl+C nella finestra del terminale.
Simulazione di notifiche push
L'applicazione può inviare messaggi localmente, ma non è in grado di ricevere messaggi push localmente. Tuttavia, puoi simulare un messaggio push effettuando una richiesta HTTP all'endpoint di notifica push locale. L'esempio include il file sample_message.json
.
Go
Puoi utilizzare curl
o un client httpie
per inviare una richiesta POST
HTTP:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Oppure
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Risposta:
HTTP/1.1 200 OK
Date: Tue, 13 Nov 2018 16:04:18 GMT
Content-Length: 0
Una volta completata la richiesta, puoi aggiornare localhost:8080
e visualizzare il messaggio nell'elenco dei messaggi ricevuti.
Java
Puoi utilizzare curl
o un client httpie
per inviare una richiesta POST
HTTP:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Oppure
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Risposta:
HTTP/1.1 200 OK
Date: Wed, 26 Apr 2017 00:03:28 GMT
Content-Length: 0
Server: Jetty(9.3.8.v20160314)
Una volta completata la richiesta, puoi aggiornare localhost:8080
e visualizzare il messaggio nell'elenco dei messaggi ricevuti.
Node.js
Puoi utilizzare curl
o un client httpie
per inviare una richiesta POST
HTTP:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Oppure
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Risposta:
HTTP/1.1 200 OK
Connection: keep-alive
Date: Mon, 31 Aug 2015 22:19:50 GMT
Transfer-Encoding: chunked
X-Powered-By: Express
Una volta completata la richiesta, puoi aggiornare localhost:8080
e visualizzare il messaggio nell'elenco dei messaggi ricevuti.
PHP
Puoi utilizzare curl
o un client httpie
per inviare una richiesta POST
HTTP:
curl -i --data @sample_message.json "localhost:4567/push-handlers/receive_messages?token=[your-token]"
Oppure
http POST ":4567/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Una volta completata la richiesta, puoi aggiornare localhost:8080
e visualizzare il messaggio nell'elenco dei messaggi ricevuti.
Python
Puoi utilizzare curl
o un client httpie
per inviare una richiesta POST
HTTP:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/pubsub/push?token=[your-token]"
Oppure
http POST ":8080/pubsub/push?token=[your-token]" < sample_message.json
Risposta:
HTTP/1.0 200 OK
Content-Length: 2
Content-Type: text/html; charset=utf-8
Date: Mon, 10 Aug 2015 17:52:03 GMT
Server: Werkzeug/0.10.4 Python/2.7.10
OK
Una volta completata la richiesta, puoi aggiornare localhost:8080
e visualizzare il messaggio nell'elenco dei messaggi ricevuti.
Ruby
Puoi utilizzare curl
o un client httpie
per inviare una richiesta POST
HTTP:
curl -i --data @sample_message.json "localhost:4567/push-handlers/receive_messages?token=[your-token]"
Oppure
http POST ":4567/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Risposta:
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Content-Length: 13
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Server: WEBrick/1.3.1 (Ruby/2.3.0/2015-12-25)
Date: Wed, 20 Apr 2016 20:56:23 GMT
Connection: Keep-Alive
Hello, World!
Una volta completata la richiesta, puoi aggiornare localhost:8080
e visualizzare il messaggio nell'elenco dei messaggi ricevuti.
.NET
Per inviare una richiesta POST
HTTP:
Get-Content -Raw .\sample_message.json | Invoke-WebRequest -Uri
http://localhost:5000/Push?token=your-secret-token -Method POST -ContentType
'text/json' -OutFile out.txt
Una volta completata la richiesta, puoi aggiornare localhost:5000
e visualizzare il messaggio nell'elenco dei messaggi ricevuti.
Esecuzione su App Engine
Per eseguire il deployment dell'app demo in App Engine utilizzando lo strumento a riga di comando gcloud
:
Go
Esegui questo comando dalla directory in cui si trova il file app.yaml
:
gcloud app deploy
Java
Per eseguire il deployment della tua app utilizzando Maven, esegui questo comando:
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud. Se il file pom.xml
specifica già l'ID progetto, non è necessario includere la proprietà -Dapp.deploy.projectId
nel comando che esegui.
Node.js
Esegui questo comando dalla directory in cui si trova il file app.yaml
:
gcloud app deploy
PHP
Esegui questo comando dalla directory in cui si trova il file app.yaml
:
gcloud app deploy
Python
Esegui questo comando dalla directory in cui si trova il file app.yaml
:
gcloud app deploy
Ruby
Esegui questo comando dalla directory in cui si trova il file app.yaml
:
gcloud app deploy app.yaml
.NET
Esegui questo comando dalla directory in cui si trova il file app.yaml
:
gcloud app deploy
Ora puoi accedere all'applicazione all'indirizzo
https://PROJECT_ID.REGION_ID.r.appspot.com
.
Puoi utilizzare il modulo per inviare messaggi, ma non vi è alcuna garanzia di quale istanza della tua applicazione riceverà la notifica. Per visualizzare il messaggio ricevuto,
puoi inviare più messaggi e aggiornare la pagina.