Delen via


Quickstart: Opslagevenementen routeren naar een webeindpunt met Azure CLI

Azure Event Grid is een gebeurtenisservice voor de cloud. In dit artikel gebruikt u de Azure CLI om u te abonneren op Blob Storage-gebeurtenissen en activeert u de gebeurtenis om het resultaat weer te geven.

Normaal gesproken verzendt u gebeurtenissen naar een eindpunt dat de gebeurtenisgegevens verwerkt en vervolgens in actie komt. Als u dit artikel echter wilt vereenvoudigen, verzendt u de gebeurtenissen naar een web-app die de berichten verzamelt en weergeeft.

Wanneer u de stappen in dit artikel uitvoert, ziet u dat de gebeurtenisgegevens naar de web-app zijn verzonden.

Schermopname van azure Event Grid Viewer met gebeurtenisgegevens die naar de web-app zijn verzonden.

Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.

Vereiste voorwaarden

  • Voor dit artikel is versie 2.0.70 of hoger van de Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

Een brongroep maken

Event Grid-onderwerpen zijn Azure-resources en moeten in een Azure-resourcegroep worden geplaatst. De resourcegroep is een logische verzameling waarin Azure-resources worden geïmplementeerd en beheerd.

Maak een resourcegroep met de opdracht az group create.

In het volgende voorbeeld wordt een resourcegroep met de naam <resource_group_name> gemaakt op de locatie westcentralus. Vervang <resource_group_name> door een unieke naam voor uw resourcegroep.

az group create --name <resource_group_name> --location westcentralus

Een opslagaccount maken

Blob Storage-gebeurtenissen zijn beschikbaar in v2-opslagaccounts voor algemeen gebruik en Blob Storage-accounts. V2-opslagaccounts voor algemeen gebruik ondersteunen alle functies voor alle opslagservices, waaronder blobs, bestanden, wachtrijen en tabellen. Een Blob Storage-account is een speciaal opslagaccount voor het opslaan van ongestructureerde gegevens als blobs (objecten) in Azure Storage. Blob Storage-accounts zijn net als opslagaccounts voor algemeen gebruik en delen alle geweldige duurzaamheid, beschikbaarheid, schaalbaarheid en prestatiefuncties die u momenteel gebruikt, inclusief 100% API-consistentie voor blok-blobs en toevoeg-blobs. Zie Overzicht van Azure-opslagaccount voor meer informatie.

Vervang door <storage_account_name> een unieke naam voor uw opslagaccount en <resource_group_name> door de resourcegroep die u eerder hebt gemaakt.

az storage account create \
  --name <storage_account_name> \
  --location westcentralus \
  --resource-group <resource_group_name> \
  --sku Standard_LRS \
  --kind BlobStorage \
  --access-tier Hot

Een bericht-eindpunt creëren

Voordat u zich abonneert op het onderwerp, gaan we het eindpunt voor het gebeurtenisbericht maken. Normaal gesproken voert het eindpunt acties uit 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 bevat 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>

az deployment group create \
  --resource-group <resource_group_name> \
  --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
  --parameters siteName=$sitename hostingPlanName=viewerhost

Het kan enkele minuten duren voordat de implementatie is voltooid. Nadat de implementatie is voltooid, bekijkt u de web-app om te controleren of deze wordt uitgevoerd. Navigeer in een webbrowser naar: https://<your-site-name>.azurewebsites.net

Je zou op de site momenteel geen berichten moeten zien worden weergegeven.

De Event Grid-resourceprovider inschakelen

  1. Als dit de eerste keer is dat u Event Grid in uw Azure-abonnement gebruikt, moet u mogelijk de Event Grid-resourceprovider registreren. Voer de volgende opdracht uit om de provider te registreren:

    az provider register --namespace Microsoft.EventGrid
    
  2. Het kan even duren voordat de registratie is voltooid. Voer de volgende opdracht uit om de status te controleren:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    Wanneer registrationStateRegistered is, bent u klaar om door te gaan.

Abonneren op uw opslagaccount

U abonneert u op een onderwerp om Event Grid te laten weten welke gebeurtenissen u wilt traceren en waar deze gebeurtenissen naartoe moeten worden gestuurd. In het volgende voorbeeld meldt u zich aan voor het opslagaccount dat u hebt aangemaakt, en wordt de URL van uw webapp doorgegeven als eindpunt voor gebeurtenismeldingen. Vervang <event_subscription_name> door een naam voor het gebeurtenisabonnement. Gebruik voor <resource_group_name> en <storage_account_name> de waarden die u eerder hebt gemaakt.

Het eindpunt voor uw web-app moet het achtervoegsel /api/updates/ bevatten.

storageid=$(az storage account show --name <storage_account_name> --resource-group <resource_group_name> --query id --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates

az eventgrid event-subscription create \
  --source-resource-id $storageid \
  --name <event_subscription_name> \
  --endpoint $endpoint

Bekijk uw webapp opnieuw en merk op dat er een validatiegebeurtenis voor het abonnement is verzonden. Selecteer het oogpictogram om de gebeurtenisgegevens uit te breiden. Event Grid verzendt de validatie-gebeurtenis, zodat het eindpunt kan controleren of het gebeurtenisgegevens wil ontvangen. De web-app bevat code om het abonnement te valideren.

Abonnementsevenement weergeven

Een gebeurtenis activeren vanuit Blob Storage

Nu gaan we een gebeurtenis activeren om te zien hoe het bericht via Event Grid naar het eindpunt wordt gedistribueerd. Eerst gaan we de naam en sleutel voor het opslagaccount configureren en vervolgens een container maken en vervolgens een bestand maken en uploaden. Gebruik opnieuw de waarden voor <storage_account_name> en <resource_group_name> u hebt eerder gemaakt.

export AZURE_STORAGE_ACCOUNT=<storage_account_name>
export AZURE_STORAGE_KEY="$(az storage account keys list --account-name <storage_account_name> --resource-group <resource_group_name> --query "[0].value" --output tsv)"

az storage container create --name testcontainer

touch testfile.txt
az storage blob upload --file testfile.txt --container-name testcontainer --name testfile.txt

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.

[{
  "topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.Storage/storageAccounts/myblobstorageaccount",
  "subject": "/blobServices/default/containers/testcontainer/blobs/testfile.txt",
  "eventType": "Microsoft.Storage.BlobCreated",
  "eventTime": "2017-08-16T20:33:51.0595757Z",
  "id": "4d96b1d4-0001-00b3-58ce-16568c064fab",
  "data": {
    "api": "PutBlockList",
    "clientRequestId": "d65ca2e2-a168-4155-b7a4-2c925c18902f",
    "requestId": "4d96b1d4-0001-00b3-58ce-16568c000000",
    "eTag": "0x8D4E4E61AE038AD",
    "contentType": "text/plain",
    "contentLength": 0,
    "blobType": "BlockBlob",
    "url": "https://myblobstorageaccount.blob.core.windows.net/testcontainer/testfile.txt",
    "sequencer": "00000000000000EB0000000000046199",
    "storageDiagnostics": {
      "batchId": "dffea416-b46e-4613-ac19-0371c0c5e352"
    }
  },
  "dataVersion": "",
  "metadataVersion": "1"
}]

De hulpbronnen opschonen

Als u van plan bent om door te gaan met werken met dit opslagaccount en evenementabonnement, moet u de resources die in dit artikel 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 dit artikel hebt gemaakt.

Vervang <resource_group_name> door de resourcegroep die u eerder hebt gemaakt.

az group delete --name <resource_group_name>

Volgende stappen

Nu u weet hoe u onderwerpen en gebeurtenisabonnementen maakt, vindt u meer informatie over Blob Storage-gebeurtenissen en wat Event Grid u kan helpen: