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 Cloud pour envoyer et recevoir des messages Pub/Sub dans une application Java 8.
Prérequis
- Suivez les instructions de la section "Hello, World! pour Java 8 sur App Engine pour configurer votre environnement et votre projet. Ces instructions vous permettront également de comprendre la structure des applications Java 8 dans 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.
Cloner l'exemple d'application
Copiez les exemples d'applications sur votre ordinateur local, puis accédez au répertoire pubsub
:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/appengine-java8/pubsub
Créer 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 :
bv # 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'
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.
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.