Schnellstart: Weiterleiten von Azure Cache for Redis-Ereignissen an einen Webendpunkt mit PowerShell
Azure Event Grid ist ein Ereignisdienst für die Cloud. In dieser Schnellstartanleitung verwenden Sie Azure PowerShell, um Azure Cache for Redis-Ereignisse zu abonnieren, ein Ereignis auszulösen und die Ergebnisse anzuzeigen.
Üblicherweise senden Sie Ereignisse an einen Endpunkt, der die Ereignisdaten verarbeitet und entsprechende Aktionen ausführt. Der Einfachheit halber senden Sie Ereignisse im Rahmen dieser Schnellstartanleitung an eine Web-App, mit der die Nachrichten gesammelt und angezeigt werden. Nach Abschluss der Schritte in dieser Schnellstartanleitung sehen Sie, dass die Ereignisdaten an die Web-App gesendet wurden.
Einrichten
Für diese Schnellstartanleitung wird vorausgesetzt, dass Sie die aktuelle Version von Azure PowerShell verwenden. Wenn Sie eine Installation oder ein Upgrade ausführen müssen, finden Sie unter Installieren und Konfigurieren von Azure PowerShell Informationen dazu.
Anmelden bei Azure
Melden Sie sich mit dem Befehl Connect-AzAccount
bei Ihrem Azure-Abonnement an, und befolgen Sie die Authentifizierungsanweisungen auf dem Bildschirm.
Connect-AzAccount
In diesem Beispiel wird westus2 verwendet und die Auswahl zur Verwendung im gesamten Artikel in einer Variable gespeichert.
$location = "westus2"
Erstellen einer Ressourcengruppe
Event Grid-Themen werden als einzelne Azure-Ressourcen bereitgestellt und müssen in einer Azure-Ressourcengruppe angeordnet werden. Eine Azure-Ressourcengruppe ist eine logische Sammlung, in der Azure-Ressourcen bereitgestellt und verwaltet werden.
Erstellen Sie mit dem Befehl New-AzResourceGroup eine Ressourcengruppe.
Das folgende Beispiel erstellt eine Ressourcengruppe namens gridResourceGroup am Standort westus2.
$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location
Erstellen einer Azure Cache for Redis-Instanz
New-AzRedisCache
-ResourceGroupName <String>
-Name <String>
-Location <String>
[-Size <String>]
[-Sku <String>]
[-RedisConfiguration <Hashtable>]
[-EnableNonSslPort <Boolean>]
[-TenantSettings <Hashtable>]
[-ShardCount <Int32>]
[-MinimumTlsVersion <String>]
[-SubnetId <String>]
[-StaticIP <String>]
[-Tag <Hashtable>]
[-Zone <String[]>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Weitere Informationen zur Erstellung einer Cache-Instanz in PowerShell finden Sie in der Azure PowerShell-Referenz.
Erstellen eines Nachrichtenendpunkts
Vor dem Abonnieren des Themas erstellen wir zunächst den Endpunkt für die Ereignisnachricht. Der Endpunkt führt in der Regel Aktionen auf der Grundlage der Ereignisdaten aus. Der Einfachheit halber stellen Sie in dieser Schnellstartanleitung eine vorgefertigte Web-App bereit, die die Ereignisnachrichten anzeigt. Die bereitgestellte Lösung umfasst einen App Service-Plan, eine App Service-Web-App und Quellcode von GitHub.
Ersetzen Sie <your-site-name>
durch einen eindeutigen Namen für Ihre Web-App. Der Name der Web-App muss eindeutig sein, da er Teil des DNS-Eintrags ist.
$sitename="<your-site-name>"
New-AzResourceGroupDeployment `
-ResourceGroupName $resourceGroup `
-TemplateUri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" `
-siteName $sitename `
-hostingPlanName viewerhost
Die Bereitstellung kann einige Minuten dauern. Nach erfolgreichem Abschluss der Bereitstellung können Sie Ihre Web-App anzeigen und sich vergewissern, dass sie ausgeführt wird. Navigieren Sie hierzu in einem Webbrowser zu https://<your-site-name>.azurewebsites.net
.
Die Website sollte angezeigt werden, und es sollten momentan keine Nachrichten vorliegen.
Abonnieren Ihres Azure Cache for Redis-Ereignisses
In diesem Schritt abonnieren Sie ein Thema, um Event Grid mitzuteilen, welche Ereignisse Sie nachverfolgen möchten. Im folgenden Beispiel wird die von Ihnen erstellte Cache-Instanz abonniert. Außerdem wird die URL Ihrer Web-App als Endpunkt für Ereignisbenachrichtigungen übergeben. Der Endpunkt für Ihre Web-App muss das Suffix /api/updates/
enthalten.
$cacheId = (Get-AzRedisCache -ResourceGroupName $resourceGroup -Name $cacheName).Id
$endpoint="https://$sitename.azurewebsites.net/api/updates"
New-AzEventGridSubscription `
-EventSubscriptionName <event_subscription_name> `
-Endpoint $endpoint `
-ResourceId $cacheId
Zeigen Sie wieder Ihre Web-App an. Wie Sie sehen, wurde ein Abonnementüberprüfungsereignis an sie gesendet. Klicken Sie auf das Augensymbol, um die Ereignisdaten zu erweitern. Event Grid sendet das Überprüfungsereignis, damit der Endpunkt bestätigen kann, dass er Ereignisdaten empfangen möchte. Die Web-App enthält Code zur Überprüfung des Abonnements.
Auslösen eines Ereignisses aus Azure Cache for Redis
Als Nächstes lösen wir ein Ereignis aus, um zu sehen, wie Event Grid die Nachricht an Ihren Endpunkt weiterleitet.
Import-AzRedisCache
[-ResourceGroupName <String>]
-Name <String>
-Files <String[]>
[-Format <String>]
[-Force]
[-PassThru]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Weitere Informationen zum Importieren in PowerShell finden Sie in der Azure PowerShell-Referenz.
Sie haben das Ereignis ausgelöst, und Event Grid hat die Nachricht an den Endpunkt gesendet, den Sie beim Abonnieren konfiguriert haben. Zeigen Sie Ihre Web-App an, um das soeben gesendete Ereignis anzuzeigen.
[{
"id": "e1ceb52d-575c-4ce4-8056-115dec723cff",
"eventType": "Microsoft.Cache.ImportRDBCompleted",
"topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
"data": {
"name": "ImportRDBCompleted",
"timestamp": "2020-12-10T18:07:54.4937063+00:00",
"status": "Succeeded"
},
"subject": "ImportRDBCompleted",
"dataversion": "1.0",
"metadataVersion": "1",
"eventTime": "2020-12-10T18:07:54.4937063+00:00"
}]
Bereinigen von Ressourcen
Wenn Sie diese Azure Cache for Redis-Instanz und das Ereignisabonnement weiterverwenden möchten, sollten Sie keine Bereinigung der in dieser Schnellstartanleitung erstellten Ressourcen durchführen. Führen Sie andernfalls den folgenden Befehl aus, um die in dieser Schnellstartanleitung erstellten Ressourcen zu löschen.
Remove-AzResourceGroup -Name $resourceGroup
Nächste Schritte
Sie haben gelernt, wie Sie Themen und Ereignisabonnements erstellen. Nun können Sie sich eingehender über Azure Cache for Redis-Ereignisse und die Möglichkeiten von Event Grid informieren: