Quickstart: Gebeurtenissen Azure Cache voor Redis routeren naar een webeindpunt met PowerShell

Azure Event Grid is een gebeurtenisservice voor de cloud. In deze quickstart gebruikt u Azure PowerShell om u te abonneren op Azure Cache voor Redis gebeurtenissen, een gebeurtenis te activeren en de resultaten weer te geven.

Normaal gesproken verzendt u gebeurtenissen naar een eindpunt dat de gebeurtenisgegevens verwerkt en vervolgens in actie komt. Om deze snelstart te vereenvoudigen, verzendt u echter gebeurtenissen naar een web-app die de berichten verzamelt en weergeeft. Wanneer u de stappen hebt voltooid die in deze quickstart worden beschreven, ziet u dat de gebeurtenisgegevens naar de web-app zijn verzonden.

Instellen

Voor deze quickstart moet u de nieuwste versie van Azure PowerShell uitvoeren. Zie Azure PowerShell installeren en configureren als u de toepassing nog moet installeren of een upgrade moet uitvoeren.

Aanmelden bij Azure

Meld u aan bij uw Azure-abonnement met de Connect-AzAccount opdracht en volg de aanwijzingen op het scherm om te verifiëren.

Connect-AzAccount

In dit voorbeeld wordt westus2 gebruikt en wordt de selectie opgeslagen in een variabele voor gebruik overal.

$location = "westus2"

Een resourcegroep maken

Event Grid-onderwerpen worden geïmplementeerd als afzonderlijke Azure-resources en moeten worden ingericht onder een Azure-resourcegroep. Een resourcegroep is een logische verzameling waarin Azure-resources worden geïmplementeerd en beheerd.

Maak een resourcegroep met de opdracht New-AzResourceGroup.

In het volgende voorbeeld wordt een resourcegroep met de naam gridResourceGroup gemaakt op de locatie westus2.

$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location

Een instantie van Azure Cache voor Redis maken

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>]

Zie de referentie Azure PowerShell voor meer informatie over het maken van een cache-exemplaar in PowerShell.

Het eindpunt van een bericht maken

Voordat u zich abonneert op het onderwerp, gaan we het eindpunt voor het gebeurtenisbericht maken. Het eindpunt onderneemt normaal gesproken actie op basis van de gebeurtenisgegevens. Ter vereenvoudiging van deze snelstart gaat u een vooraf gebouwde web-app implementeren waarmee de gebeurtenisberichten worden weergegeven. De geïmplementeerde oplossing omvat een App Service-plan, een App Service-web-app en broncode van GitHub.

Vervang <your-site-name> door een unieke naam voor de web-app. De naam van de web-app moet uniek zijn omdat deze deel uitmaakt van de DNS-vermelding.

$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

De implementatie kan enkele minuten duren. Controleer of uw web-app wordt uitgevoerd nadat de implementatie is voltooid. Navigeer in een webbrowser naar: https://<your-site-name>.azurewebsites.net

Op de site zouden momenteel geen berichten moeten wijn weergeven.

Lege Event Grid Viewer-site.

Abonneren op uw Azure Cache voor Redis-gebeurtenis

In deze stap abonneert u zich op een onderwerp om Event Grid te laten weten welke gebeurtenissen u wilt bijhouden. In het volgende voorbeeld wordt u geabonneerd op het cache-exemplaar dat u hebt gemaakt en wordt de URL van uw web-app doorgegeven als het eindpunt voor de gebeurtenismelding. Het eindpunt voor uw web-app moet het achtervoegsel /api/updates/ bevatten.

$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

Bekijk opnieuw uw web-app en u zult zien dat er een validatiegebeurtenis voor een abonnement naartoe is verzonden. Selecteer het oogpictogram om de gebeurtenisgegevens uit te breiden. Via Event Grid wordt de validatiegebeurtenis verzonden zodat het eindpunt kan controleren of de gebeurtenisgegevens in aanmerking komen om ontvangen te worden. De web-app bevat code waarmee het abonnement kan worden gevalideerd.

Azure Event Grid Viewer.

Een gebeurtenis activeren vanuit Azure Cache voor Redis

Nu gaan we een gebeurtenis activeren om te zien hoe het bericht via Event Grid naar het eindpunt wordt gedistribueerd.

Import-AzRedisCache
      [-ResourceGroupName <String>]
      -Name <String>
      -Files <String[]>
      [-Format <String>]
      [-Force]
      [-PassThru]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Zie de Azure PowerShell naslaginformatie voor meer informatie over importeren in PowerShell.

U hebt de gebeurtenis geactiveerd en Event Grid heeft het bericht verzonden naar het eindpunt dat u hebt geconfigureerd toen u zich abonneerde. Bekijk uw web-app om de gebeurtenis te zien die u zojuist hebt verzonden.

[{
"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"
}]

Resources opschonen

Als u van plan bent om verder te werken met dit Azure Cache voor Redis exemplaar en gebeurtenisabonnement, moet u de resources die in deze quickstart zijn gemaakt, niet opschonen. Als u niet van plan bent om door te gaan, gebruikt u de volgende opdracht om de resources te verwijderen die u in deze quickstart hebt gemaakt.

Remove-AzResourceGroup -Name $resourceGroup

Volgende stappen

Nu u weet hoe u onderwerpen en gebeurtenisabonnementen maakt, leert u meer over Azure Cache voor Redis gebeurtenissen en wat Event Grid u kan helpen: