Delen via


Quickstart: Blob Storage-gebeurtenissen routeren naar een webeindpunt met behulp van Bicep

In dit artikel gebruikt u een Bicep-bestand om een Blob Storage-account te maken, u te abonneren op gebeurtenissen voor die blobopslag en een gebeurtenis te activeren om het resultaat weer te geven. Normaal gesproken verzendt u gebeurtenissen naar een eindpunt dat de gebeurtenisgegevens verwerkt en vervolgens in actie komt. Ter vereenvoudiging van dit artikel stuurt u hier de gebeurtenissen echter naar een web-app die de berichten verzamelt en weergeeft.

Notitie

Als u niet eerder met Azure Event Grid bent, raadpleegt u Wat is Azure Event Grid voor een overzicht van de service voordat u deze zelfstudie doorloopt.

Bicep is een domeinspecifieke taal (DSL) die declaratieve syntaxis gebruikt om Azure-resources te implementeren. Deze taal voorziet in een beknopte syntaxis, betrouwbare typeveiligheid en ondersteuning voor hergebruik van code. Bicep biedt de beste ontwerpervaring voor uw infrastructuur als code-oplossingen in Azure.

Vereisten

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Het eindpunt van een bericht maken

Voordat u zich kunt abonneren op gebeurtenissen voor de Blob-opslag, moet u het eindpunt voor het gebeurtenisbericht maken. Het eindpunt onderneemt normaal gesproken actie op basis van de gebeurtenisgegevens. Ter vereenvoudiging van deze quickstart implementeert u een vooraf gemaakte web-app die de gebeurtenisberichten weergeeft. De geïmplementeerde oplossing omvat een App Service-plan, een App Service-web-app en broncode van GitHub.

  1. Selecteer Implementeren in Azure om de oplossing voor uw abonnement te implementeren. Geef in Azure Portal waarden op voor de parameters.

    Implementeren naar Azure

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

  3. U ziet de site, maar er worden nog geen gebeurtenissen op de site geplaatst.

    Schermopname van het weergeven van de nieuwe site.

Het Bicep-bestand controleren

Het Bicep-bestand dat in deze quickstart wordt gebruikt, is afkomstig van Azure-quickstartsjablonen.

@description('Provide a unique name for the Blob Storage account.')
param storageAccountName string = 'storage${uniqueString(resourceGroup().id)}'

@description('Provide a location for the Blob Storage account that supports Event Grid.')
param location string = resourceGroup().location

@description('Provide a name for the Event Grid subscription.')
param eventSubName string = 'subToStorage'

@description('Provide the URL for the WebHook to receive events. Create your own endpoint for events.')
param endpoint string

@description('Provide a name for the system topic.')
param systemTopicName string = 'mystoragesystemtopic'

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
    minimumTlsVersion: 'TLS1_2'
    supportsHttpsTrafficOnly: true
    allowBlobPublicAccess: false
  }
}

resource systemTopic 'Microsoft.EventGrid/systemTopics@2023-12-15-preview' = {
  name: systemTopicName
  location: location
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    source: storageAccount.id
    topicType: 'Microsoft.Storage.StorageAccounts'
  }
}

resource eventSubscription 'Microsoft.EventGrid/systemTopics/eventSubscriptions@2023-12-15-preview' = {
  parent: systemTopic
  name: eventSubName
  properties: {
    destination: {
      properties: {
        endpointUrl: endpoint
      }
      endpointType: 'WebHook'
    }
    filter: {
      includedEventTypes: [
        'Microsoft.Storage.BlobCreated'
        'Microsoft.Storage.BlobDeleted'
      ]
    }
  }
}

output name string = eventSubscription.name
output resourceId string = eventSubscription.id
output resourceGroupName string = resourceGroup().name
output location string = location

Er worden twee Azure-resources gedefinieerd in het Bicep-bestand:

Het Bicep-bestand implementeren

  1. Sla het Bicep-bestand op als main.bicep op uw lokale computer.

  2. Implementeer het Bicep-bestand met behulp van Azure CLI of Azure PowerShell.

    az group create --name exampleRG --location eastus
    az deployment group create --resource-group exampleRG --template-file main.bicep --parameters endpoint=<endpoint>
    

    Notitie

    Vervang <het eindpunt > door de URL van uw web-app en voeg deze toe aan api/updates de URL.

    Wanneer de implementatie is voltooid, ziet u een bericht waarin wordt aangegeven dat de implementatie is voltooid.

Notitie

U vindt hier meer Azure Event Grid-sjabloonvoorbeelden.

De implementatie valideren

Bekijk uw web-app opnieuw en u ziet dat er een validatiegebeurtenis voor het abonnement 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.

Schermopname van het weergeven van een abonnementsevenement.

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

U activeert een gebeurtenis voor de Blob-opslag door een bestand te uploaden. Het bestand heeft geen specifieke inhoud nodig. In het artikel wordt ervan uitgegaan dat u een bestand hebt met de naam testfile.txt, maar u kunt elk bestand gebruiken.

Wanneer u het bestand uploadt naar de Azure Blob-opslag, stuurt Event Grid een bericht naar het eindpunt dat u hebt geconfigureerd bij het abonneren. Het bericht heeft de JSON-indeling en bevat een matrix met een of meer gebeurtenissen. In het volgende voorbeeld bevat het JSON-bericht een matrix met één gebeurtenis. Wanneer u uw web-app bekijkt, ziet u dat er een blob-gebeurtenis is ontvangen.

Schermopname van het weergeven van de resultaten.

Resources opschonen

Verwijder de resourcegroep als u deze niet meer nodig hebt.

Zie de volgende artikelen voor meer informatie over Azure Resource Manager-sjablonen en Bicep: