Regions-ID
REGION_ID
ist ein abgekürzter Code, den Google anhand der Region zuweist, die Sie beim Erstellen Ihrer Anwendung ausgewählt haben. Der Code bezieht sich nicht auf ein Land oder eine Provinz, auch wenn einige Regions-IDs häufig verwendeten Länder- und Provinzcodes ähneln können. Bei Anwendungen, die nach Februar 2020 erstellt wurden, ist REGION_ID.r
in den App Engine-URLs enthalten. Bei Anwendungen, die vor diesem Datum erstellt wurden, ist die Regions-ID in der URL optional.
Pub/Sub bietet zuverlässiges und asynchrones m:n-Messaging zwischen Anwendungen. Publisher-Anwendungen können Nachrichten an ein bestimmtes Thema senden. Andere Anwendungen haben die Möglichkeit, dieses Thema zu abonnieren, um Nachrichten dazu zu erhalten.
In diesem Dokument wird beschrieben, wie Sie mit der Cloud-Clientbibliothek Pub/Sub-Nachrichten in einer .NET-Anwendung senden und empfangen.
Voraussetzungen
- Folgen Sie der Anleitung unter „Hello, World!“ für .NET in App Engine, um eine Umgebung und ein Projekt einzurichten. Darin erfahren Sie auch mehr über die Strukturierung von .NET-Anwendungen in App Engine.
- Notieren Sie sich Ihre Projekt-ID und bewahren Sie sie auf. Sie benötigen die ID zur Ausführung der in diesem Dokument beschriebenen Beispielanwendung.
- Folgen Sie den Schritten zum Erstellen eines Dienstkontos und eines Dienstkontoschlüssels, die Sie mit Ihrer Anwendung verwenden können.
-
Google Cloud Pub/Sub API aktivieren.
Beispiel-App klonen
Kopieren Sie die Beispielanwendungen auf Ihren lokalen Computer und rufen Sie das Verzeichnis pubsub
auf:
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
cd dotnet-docs-samples/appengine/flexible/pubsub
Thema und Abo erstellen
Erstellen Sie ein Thema und ein Abo, einschließlich des Endpunkts, an den der Pub/Sub-Server Anfragen senden soll:
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
Umgebungsvariablen festlegen
Legen Sie in der Datei appsettings.json
die Projekt-ID fest:
Codeüberprüfung
In der Beispielanwendung kommt die Cloud-Clientbibliothek zum Einsatz.
Beispiel lokal ausführen
Bei einer lokalen Ausführung können Sie mit der Google Cloud CLI eine Authentifizierung für die Nutzung von Google Cloud APIs bereitstellen. Wenn Sie Ihre Umgebung wie unter Voraussetzungen beschrieben eingerichtet haben, wurde der gcloud init
-Befehl zur Bereitstellung dieser Authentifizierung bereits ausgeführt.
So führen Sie die Beispielanwendung lokal aus:
Visual Studio
Öffnen Sie
dotnet-docs-samples\appengine\flexible\AppEngineFlex.sln
mit Visual Studio.Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Pubsub und wählen Sie Debug > Neue Instanz starten aus.
Befehlszeile
Führen Sie die folgenden Befehle im Verzeichnis
dotnet-docs-samples\appengine\flexible\Pubsub
aus:dotnet restore dotnet run
Geben Sie im Webbrowser die folgende Adresse ein:
http://localhost:5000/
Push-Benachrichtigungen simulieren
Die Anwendung kann Nachrichten lokal senden, aber keine Push-Nachrichten lokal empfangen. Sie können jedoch eine Push-Nachricht simulieren, wenn Sie eine HTTP-Anfrage an den lokalen Push-Benachrichtigungsendpunkt senden. Das Beispiel enthält die Datei sample_message.json
.
So senden Sie eine HTTP-POST
-Anfrage:
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
Nachdem die Anfrage abgeschlossen ist, können Sie localhost:5000
aktualisieren und die Nachricht in der Liste der empfangenen Nachrichten sehen.
In App Engine ausführen
Führen Sie zum Bereitstellen der Demo-Anwendung in App Engine mit dem gcloud
-Befehlszeilentool den folgenden Befehl in dem Verzeichnis aus, in dem sich die Datei app.yaml
befindet:
Visual Studio
So stellen Sie die „Hello World“-Anwendung bereit:
- Öffnen Sie
dotnet-docs-samples\appengine\flexible\AppEngineFlex.sln
mit Visual Studio. - Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Pubsub und wählen Sie In Google Cloud veröffentlichen... aus.
- Klicken Sie auf App Engine Flex.
- Klicken Sie auf Veröffentlichen.
Befehlszeile
Führen Sie die folgenden Befehle im Verzeichnisdotnet-docs-samples\appengine\flexible\Pubsub
aus:dotnet restore dotnet publish cd bin\Debug\netcoreapp2.1\publish gcloud app deploy
Sie können jetzt unter https://PROJECT_ID.REGION_ID.r.appspot.com
auf die Anwendung zugreifen.
Sie können das Formular zum Senden von Nachrichten verwenden. Dabei ist jedoch nicht sicher, welche Instanz Ihrer Anwendung die Benachrichtigung erhält. Außerdem haben Sie die Möglichkeit, mehrere Nachrichten zu senden und die Seite zu aktualisieren, damit die empfangene Nachricht angezeigt wird.