ID de región
REGION_ID
es un código abreviado que Google asigna en función de la región que seleccionas cuando creas la app. El código no corresponde a un país ni a una provincia, aunque algunos ID de región puedan parecer similares a los códigos de país y provincia que se suelen usar. En el caso de las apps creadas después de febrero de 2020, REGION_ID.r
se incluye en las URL de App Engine. En el caso de las apps existentes creadas antes de esta fecha, el ID de región es opcional en la URL.
Obtén más información acerca de los ID de región.
Pub/Sub proporciona mensajería asíncrona, confiable y de varios a varios entre aplicaciones. Las aplicaciones de publicador pueden enviar mensajes a un tema, y otras aplicaciones pueden suscribirse a ese tema para recibir los mensajes.
En este documento, se describe cómo usar la biblioteca cliente de Cloud para enviar y recibir mensajes de Pub/Sub en una app .NET.
Requisitos previos
- Sigue las instrucciones en “Hello, World!” para .NET en App Engine a fin de configurar tu entorno y proyecto, y comprender cómo se estructuran las apps de .NET de App Engine.
- Anota y guarda el ID del proyecto porque lo necesitarás para ejecutar la aplicación de muestra que se describe en este documento.
- Sigue los pasos para crear una cuenta de servicio y una clave de cuenta de servicio si quieres usarla con tu aplicación.
-
Habilita la API de Google Cloud Pub/Sub.
Clona la app de muestra
Copia las apps de muestra en tu máquina local y navega hasta el directorio pubsub
:
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
cd dotnet-docs-samples/appengine/flexible/pubsub
Crea un tema y una suscripción
Crea un tema y una suscripción que incluyan la especificación del extremo al que el servidor Pub/Sub debe enviar solicitudes:
gcloud pubsub topics create YOUR_TOPIC gcloud pubsub subscriptions create YOUR_SUBSCRIPTION ` --topic YOUR_TOPIC ` --push-endpoint ` https://YOUR_PROJECT_ID.REGION_ID.r.appspot.com/pubsub/push?token=YOUR_SECRET_TOKEN ` --ack-deadline 10
Configura variables de entorno
Edita el archivo appsettings.json
para configurar el ID del proyecto:
Revisión de código
La app de muestra usa la biblioteca cliente de Cloud.
Ejecuta la muestra de forma local
En la ejecución local, puedes usar la CLI de Cloud para proporcionar autenticación a fin de emplear las API de Google Cloud. Si configuraste tu entorno como se describe en Requisitos, ya ejecutaste el comando gcloud init
que proporciona esta autenticación.
Para ejecutar la aplicación de muestra localmente:
Visual Studio
Abre
dotnet-docs-samples\appengine\flexible\AppEngineFlex.sln
con Visual Studio.En el Explorador de soluciones, haz clic con el botón derecho en Pubsub y selecciona Depuración > Iniciar instancia nueva
Línea de comandos
Ejecuta los siguientes comandos desde el directorio
dotnet-docs-samples\appengine\flexible\Pubsub
:dotnet restore dotnet run
En el navegador web, ingresa la siguiente dirección:
http://localhost:5000/
Simular notificaciones push
La aplicación puede enviar mensajes de forma local, pero no puede recibir mensajes push localmente. Sin embargo, puedes simular un mensaje push; para ello, envía una solicitud HTTP al extremo de notificación push local. La muestra incluye el archivo sample_message.json
.
Para enviar una solicitud HTTP POST
:
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 vez completada la solicitud, puedes actualizar localhost:5000
y ver el mensaje en la lista de mensajes recibidos.
Ejecuta en App Engine
Para implementar la app de demostración en App Engine mediante la herramienta de línea de comandos de gcloud
, debes ejecutar el comando siguiente desde el directorio en el que se encuentra el archivo app.yaml
:
Visual Studio
Para implementar la app de Hello World, sigue estos pasos:
- Abre
dotnet-docs-samples\appengine\flexible\AppEngineFlex.sln
con Visual Studio. - En el Explorador de soluciones, haz clic con el botón derecho en Pubsub y elige Publicar en Google Cloud…
- Haz clic en App Engine Flex.
- Haz clic en Publicar.
Línea de comandos
Ejecuta los siguientes comandos desde el directoriodotnet-docs-samples\appengine\flexible\Pubsub
:dotnet restore dotnet publish cd bin\Debug\netcoreapp2.1\publish gcloud app deploy
Ahora puedes acceder a la aplicación en https://PROJECT_ID.REGION_ID.r.appspot.com
.
Puedes usar el formulario para enviar mensajes, pero no hay forma de garantizar qué instancia de tu aplicación recibirá la notificación. Puedes enviar varios mensajes y actualizar la página para ver el mensaje recibido.