ID de la région
Le REGION_ID
est un code abrégé que Google attribue en fonction de la région que vous sélectionnez lors de la création de votre application. Le code ne correspond pas à un pays ou une province, même si certains ID de région peuvent ressembler aux codes de pays et de province couramment utilisés. Pour les applications créées après février 2020, REGION_ID.r
est inclus dans les URL App Engine. Pour les applications existantes créées avant cette date, l'ID de région est facultatif dans l'URL.
En savoir plus sur les ID de région
Pub/Sub fournit une messagerie asynchrone fiable de type "plusieurs à plusieurs" entre applications. Les applications de type "éditeur" peuvent envoyer des messages à un sujet et d'autres applications peuvent s'abonner à ce sujet pour recevoir les messages.
Ce document explique comment utiliser la bibliothèque cliente Cloudpour envoyer et recevoir des messages Pub/Sub dans une application App Engine.Prérequis
- Suivez les instructions pour créer une application pour l'environnement d'exécution sélectionné afin de configurer votre environnement et votre projet, et pour comprendre la structure des applications App Engine.
- Notez et enregistrez l'ID de votre projet. Vous en aurez besoin pour exécuter l'exemple d'application décrit dans ce document.
- Créez un compte de service et une clé de compte de service à utiliser avec votre application.
-
Enable the Google Cloud Pub/Sub API.
Cloner l'exemple d'application
Copiez les exemples d'applications sur votre ordinateur local, puis accédez au répertoire pubsub
:
Go
Versions 1.18 et ultérieures
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
cd golang-samples/appengine_flexible/pubsub
v1.15 et versions précédentes
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
cd golang-samples/appengine_flexible/go115_and_earlier/pubsub
Java
version 11/17
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/flexible/java-11/pubsub/
version 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
Versions 3.8 et ultérieures
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/appengine/flexible/pubsub
v3.7 et versions précédentes
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/appengine/flexible_python37_and_earlier/pubsub
Ruby
version 3.2
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/flexible/pubsub/
Versions 3.1 et antérieures
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/flexible/ruby31-and-earlier/pubsub/
.NET
Version 6
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
cd dotnet-docs-samples/appengine/flexible/Pubsub/Pubsub.Sample
Versions 3.1 et antérieures
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
git checkout flex-dotnet3-and-earlier
cd dotnet-docs-samples/appengine/flexible/Pubsub
Créez un sujet et un abonnement
Créez un sujet et un abonnement, pour lesquels vous devez spécifier le point de terminaison auquel le serveur Pub/Sub doit envoyer des requêtes :
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
Remplacez YOUR_TOKEN
par un jeton secret aléatoire. Le point de terminaison push l'utilise pour valider les requêtes.
Pour utiliser Pub/Sub avec l'authentification, créez un autre abonnement :
# 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'
Remplacez YOUR-SERVICE-ACCOUNT-EMAIL
par l'adresse e-mail de votre compte de service.
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
Remplacez YOUR_TOKEN
par un jeton secret aléatoire. Le point de terminaison push l'utilise pour valider les requêtes.
Pour utiliser Pub/Sub avec l'authentification, créez un autre abonnement :
# 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'
Remplacez YOUR-SERVICE-ACCOUNT-EMAIL
par l'adresse e-mail de votre compte de service.
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
Remplacez YOUR_TOKEN
par un jeton secret aléatoire. Le point de terminaison push l'utilise pour valider les requêtes.
Pour utiliser Pub/Sub avec l'authentification, créez un autre abonnement :
# 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'
Remplacez YOUR-SERVICE-ACCOUNT-EMAIL
par l'adresse e-mail de votre compte de service.
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
Remplacez YOUR_TOKEN
par un jeton secret aléatoire. Le point de terminaison push l'utilise pour valider les requêtes.
Pour utiliser Pub/Sub avec l'authentification, créez un autre abonnement :
# 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'
Remplacez YOUR-SERVICE-ACCOUNT-EMAIL
par l'adresse e-mail de votre compte de service.
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
Remplacez YOUR_TOKEN
par un jeton secret aléatoire. Le point de terminaison push l'utilise pour valider les requêtes.
Pour utiliser Pub/Sub avec l'authentification, créez un autre abonnement :
# 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'
Remplacez YOUR-SERVICE-ACCOUNT-EMAIL
par l'adresse e-mail de votre compte de service.
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
Remplacez YOUR_TOKEN
par un jeton secret aléatoire. Le point de terminaison push l'utilise pour valider les requêtes.
Pour utiliser Pub/Sub avec l'authentification, créez un autre abonnement :
# 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'
Remplacez YOUR-SERVICE-ACCOUNT-EMAIL
par l'adresse e-mail de votre compte de service.
.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
Remplacez YOUR_TOKEN
par un jeton secret aléatoire. Le point de terminaison push l'utilise pour valider les requêtes.
Pour utiliser Pub/Sub avec l'authentification, créez un autre abonnement :
# 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'
Remplacez YOUR-SERVICE-ACCOUNT-EMAIL
par l'adresse e-mail de votre compte de service.
Définir des variables d'environnement
Go
Modifiez le fichier app.yaml
afin de définir les variables d'environnement pour le sujet et le jeton de validation :
Java
Modifiez le fichier app.yaml
afin de définir les variables d'environnement pour le sujet et le jeton de validation :
Node.js
Modifiez le fichier app.yaml
afin de définir les variables d'environnement pour le sujet et le jeton de validation :
PHP
Modifiez votre fichier index.php
pour définir les variables d'environnement de votre sujet et de votre abonnement :
Python
Modifiez le fichier app.yaml
afin de définir les variables d'environnement pour l'ID de projet, le sujet et le jeton de validation :
Ruby
Modifiez le fichier app.yaml
afin de définir les variables d'environnement pour l'ID de projet, le sujet et le jeton de validation :
.NET
Version 6
Modifiez le fichier app.yaml
afin de définir les variables d'environnement pour le sujet et le jeton de validation :
Versions 3.1 et antérieures
Modifiez le fichier appsettings.json
pour définir votre ID de projet :
Réviser le code
L'exemple d'application utilise la bibliothèque cliente Pub/Sub.
Go
L'exemple d'application utilise les variables d'environnement que vous avez définies dans le fichier app.yaml
(PUBSUB_TOPIC
et PUBSUB_VERIFICATION_TOKEN
) pour la configuration.
Les messages reçus par cette instance sont stockés dans une tranche :
messages []string
La fonction pushHandler
reçoit les messages envoyés, vérifie le jeton et ajoute le message à la tranche messages
:
La fonction publishHandler
publie de nouveaux messages dans le sujet.
Java
L'exemple d'application utilise les valeurs que vous avez définies dans le fichier app.yaml
pour configurer les variables d'environnement. Le gestionnaire de requêtes push utilise ces valeurs pour confirmer que la requête provient de Pub/Sub et qu'une source de confiance en est à l'origine :
String pubsubVerificationToken = System.getenv("PUBSUB_VERIFICATION_TOKEN");
L'exemple d'application utilise une instance de base de données Cloud Datastore pour stocker les messages.
Le servlet PubSubPush
reçoit les messages envoyés et les ajoute à l'instance de base de données messageRepository
:
version 11/17
version 8
Le servlet PubSubPublish
interagit avec l'application Web App Engine pour publier de nouveaux messages et afficher les messages reçus :
Node.js
L'exemple d'application utilise les valeurs que vous avez définies dans le fichier app.yaml
pour configurer les variables d'environnement. Le gestionnaire de requêtes push utilise ces valeurs pour confirmer que la requête provient de Pub/Sub et qu'une source de confiance en est à l'origine :
// 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'exemple d'application gère une liste globale pour stocker les messages reçus par cette instance :
// List of all messages received by this instance
var messages = [];
Cette méthode reçoit les messages envoyés et les ajoute à la liste globale messages
:
Cette méthode interagit avec l'application Web App Engine pour publier de nouveaux messages et afficher les messages reçus :
PHP
L'exemple d'application utilise les valeurs que vous avez définies dans le fichier app.yaml
pour configurer les variables d'environnement. Le gestionnaire de requêtes push utilise ces valeurs pour confirmer que la requête provient de Pub/Sub et qu'une source de confiance en est à l'origine :
L'exemple d'application gère une liste globale pour stocker les messages reçus par cette instance :
$messages = [];
La méthode pull
récupère les messages du sujet que vous avez créé et les ajoute à la liste des messages :
La méthode publish
publie de nouveaux messages dans le sujet :
Python
L'exemple d'application utilise les valeurs que vous avez définies dans le fichier app.yaml
pour configurer les variables d'environnement. Le gestionnaire de requêtes push utilise ces valeurs pour confirmer que la requête provient de Pub/Sub et qu'une source de confiance en est à l'origine :
app.config['PUBSUB_VERIFICATION_TOKEN'] = \
os.environ['PUBSUB_VERIFICATION_TOKEN']
app.config['PUBSUB_TOPIC'] = os.environ['PUBSUB_TOPIC']
L'exemple d'application gère une liste globale pour stocker les messages reçus par cette instance :
MESSAGES = []
La méthode pubsub_push()
reçoit les messages envoyés et les ajoute à la liste globale MESSAGES
:
La méthode index()
interagit avec l'application Web App Engine pour publier de nouveaux messages et afficher les messages reçus :
Ruby
L'exemple d'application utilise les valeurs que vous avez définies dans le fichier app.yaml
pour configurer les variables d'environnement. Le gestionnaire de requêtes push utilise ces valeurs pour confirmer que la requête provient de Pub/Sub et qu'une source de confiance en est à l'origine :
L'exemple d'application gère une liste globale pour stocker les messages reçus par cette instance :
Cette méthode reçoit les messages envoyés et les ajoute à la liste globale messages
:
Cette méthode interagit avec l'application Web App Engine pour publier de nouveaux messages et afficher les messages reçus :
.NET
Version 6
Versions 3.1 et antérieures
Exécuter l'exemple en local
Lorsque vous exécutez l'exemple en local, vous pouvez utiliser Google Cloud CLI pour fournir l'authentification permettant d'utiliser les API Google Cloud. Si vous avez configuré votre environnement conformément à la procédure décrite dans la section Prérequis, vous avez d'ores et déjà exécuté la commande gcloud init
, qui permet de fournir ce type d'authentification.
Go
Définissez les variables d'environnement avant de démarrer votre application :
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
Définissez les variables d'environnement avant de démarrer votre application :
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
mvn jetty:run
Node.js
Définissez les variables d'environnement avant de démarrer votre application :
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
npm install
npm start
PHP
Installez les dépendances à l'aide de Composer :
composer install
Définissez ensuite les variables d'environnement avant de démarrer votre application :
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
php -S localhost:8080
Python
Installez les dépendances, de préférence dans un environnement virtuel.
macOS/Linux
- Créez un environnement Python isolé :
python3 -m venv env
source env/bin/activate
- Si vous n'êtes pas dans le répertoire qui contient l'exemple de code, accédez au répertoire qui contient l'exemple de code
hello_world
. Ensuite, installez les dépendances :cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
Windows
Exécutez les packages Python à l'aide de PowerShell.
- Localisez votre installation de PowerShell.
- Cliquez avec le bouton droit sur le raccourci PowerShell et démarrez une session en tant qu'administrateur.
- Créez un environnement Python isolé.
python -m venv env
.\env\Scripts\activate
- Accédez au répertoire de votre projet et installez les dépendances : Si vous n'êtes pas dans le répertoire qui contient l'exemple de code, accédez au répertoire qui contient l'exemple de code
hello_world
. Ensuite, installez les dépendances :cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
Définissez ensuite les variables d'environnement avant de démarrer votre application :
export GOOGLE_CLOUD_PROJECT=[your-project-id]
export PUBSUB_VERIFICATION_TOKEN=[your-verification-token]
export PUBSUB_TOPIC=[your-topic]
python main.py
Ruby
Installez les dépendances :
bundle install
Définissez ensuite les variables d'environnement avant de démarrer votre application :
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
Exécutez les commandes suivantes à partir du répertoire racine de votre application :
dotnet restore
dotnet run
Dans votre navigateur Web, saisissez http://localhost:5000/. Pour quitter le serveur Web, appuyez sur Ctrl+C dans la fenêtre de terminal.
Simuler des notifications push
L'application peut envoyer des messages en local, mais ne peut pas recevoir de messages push en local. Vous pouvez toutefois simuler un message push en adressant une requête HTTP au point de terminaison de notification push local. L'exemple inclut le fichier sample_message.json
.
Go
Vous pouvez utiliser curl
ou un client httpie
pour envoyer une requête HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Ou
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Réponse :
HTTP/1.1 200 OK
Date: Tue, 13 Nov 2018 16:04:18 GMT
Content-Length: 0
Une fois la requête terminée, vous pouvez actualiser localhost:8080
et afficher le message dans la liste des messages reçus.
Java
Vous pouvez utiliser curl
ou un client httpie
pour envoyer une requête HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Ou
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Réponse :
HTTP/1.1 200 OK
Date: Wed, 26 Apr 2017 00:03:28 GMT
Content-Length: 0
Server: Jetty(9.3.8.v20160314)
Une fois la requête terminée, vous pouvez actualiser localhost:8080
et afficher le message dans la liste des messages reçus.
Node.js
Vous pouvez utiliser curl
ou un client httpie
pour envoyer une requête HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/push-handlers/receive_messages?token=[your-token]"
Ou
http POST ":8080/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Réponse :
HTTP/1.1 200 OK
Connection: keep-alive
Date: Mon, 31 Aug 2015 22:19:50 GMT
Transfer-Encoding: chunked
X-Powered-By: Express
Une fois la requête terminée, vous pouvez actualiser localhost:8080
et afficher le message dans la liste des messages reçus.
PHP
Vous pouvez utiliser curl
ou un client httpie
pour envoyer une requête HTTP POST
:
curl -i --data @sample_message.json "localhost:4567/push-handlers/receive_messages?token=[your-token]"
Ou
http POST ":4567/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Une fois la requête terminée, vous pouvez actualiser localhost:8080
et afficher le message dans la liste des messages reçus.
Python
Vous pouvez utiliser curl
ou un client httpie
pour envoyer une requête HTTP POST
:
curl -H "Content-Type: application/json" -i --data @sample_message.json "localhost:8080/pubsub/push?token=[your-token]"
Ou
http POST ":8080/pubsub/push?token=[your-token]" < sample_message.json
Réponse :
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
Une fois la requête terminée, vous pouvez actualiser localhost:8080
et afficher le message dans la liste des messages reçus.
Ruby
Vous pouvez utiliser curl
ou un client httpie
pour envoyer une requête HTTP POST
:
curl -i --data @sample_message.json "localhost:4567/push-handlers/receive_messages?token=[your-token]"
Ou
http POST ":4567/push-handlers/receive_messages?token=[your-token]" < sample_message.json
Réponse :
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!
Une fois la requête terminée, vous pouvez actualiser localhost:8080
et afficher le message dans la liste des messages reçus.
.NET
Pour envoyer une requête POST
HTTP, procédez comme suit :
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
Une fois la requête terminée, vous pouvez actualiser localhost:5000
et afficher le message dans la liste des messages reçus.
Exécuter sur App Engine
Pour déployer votre application de démonstration dans App Engine à l'aide de l'outil de ligne de commande gcloud
, procédez comme suit :
Go
Exécutez la commande suivante à partir du répertoire contenant votre fichier app.yaml
:
gcloud app deploy
Java
Pour déployer votre application à l'aide de Maven, exécutez la commande suivante :
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Remplacez PROJECT_ID par l'ID de votre projet Google Cloud. Si votre ID de projet est déjà inclus dans le fichier pom.xml
, vous n'avez pas besoin d'inclure la propriété -Dapp.deploy.projectId
dans la commande que vous exécutez.
Node.js
Exécutez la commande suivante à partir du répertoire contenant votre fichier app.yaml
:
gcloud app deploy
PHP
Exécutez la commande suivante à partir du répertoire contenant votre fichier app.yaml
:
gcloud app deploy
Python
Exécutez la commande suivante à partir du répertoire contenant votre fichier app.yaml
:
gcloud app deploy
Ruby
Exécutez la commande suivante à partir du répertoire contenant votre fichier app.yaml
:
gcloud app deploy app.yaml
.NET
Exécutez la commande suivante à partir du répertoire contenant votre fichier app.yaml
:
gcloud app deploy
Vous pouvez désormais accéder à l'application à l'adresse https://PROJECT_ID.REGION_ID.r.appspot.com
.
Vous pouvez utiliser le formulaire pour envoyer de messages (mais vous ne pourrez pas forcément savoir quelle instance de votre application recevra la notification). Vous pouvez envoyer plusieurs messages et actualiser la page pour afficher le message reçu.