Schnellstart: Weiterleiten von Blob Storage-Ereignissen an einen Webendpunkt mithilfe von Bicep
Azure Event Grid ist ein Ereignisdienst für die Cloud. In diesem Artikel verwenden Sie eine Bicep-Datei, um ein BLOB-Speicherkonto zu erstellen, Ereignisse für diesen Blobspeicher zu abonnieren und ein Ereignis zum Anzeigen des Ergebnisses auszulösen. Üblicherweise senden Sie Ereignisse an einen Endpunkt, der die Ereignisdaten verarbeitet und entsprechende Aktionen ausführt. Der Einfachheit halber senden Sie die Ereignisse in diesem Artikel allerdings an eine Web-App, die die Nachrichten sammelt und anzeigt.
Bicep ist eine domänenspezifische Sprache (Domain-Specific Language, DSL), die eine deklarative Syntax zur Bereitstellung von Azure-Ressourcen verwendet. Sie bietet eine präzise Syntax, zuverlässige Typsicherheit und Unterstützung für die Wiederverwendung von Code. Bicep bietet die beste Form der Erstellung für Ihre Infrastructure-as-Code-Lösungen in Azure.
Voraussetzungen
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Erstellen eines Nachrichtenendpunkts
Vor dem Abonnieren der Ereignisse für den Blobspeicher 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.
Wählen Sie Deploy to Azure (In Azure bereitstellen), um die Lösung für Ihr Abonnement bereitzustellen. Geben Sie im Azure-Portal Werte für die Parameter an.
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 wird angezeigt, aber es wurden noch keine Ereignisse bereitgestellt.
Überprüfen der Bicep-Datei
Die in dieser Schnellstartanleitung verwendete Bicep-Datei stammt aus den Azure-Schnellstartvorlagen.
@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
In der Bicep-Datei sind zwei Azure-Ressourcen definiert:
- Microsoft.Storage/storageAccounts: Erstellen eines Azure Storage-Kontos
- Microsoft.EventGrid/systemTopics: Erstellen Sie ein Systemthema mit dem für das Speicherkonto angegebenen Namen.
- Microsoft.EventGrid/systemTopics/eventSubscriptions: Erstellen Sie für das Systemthema ein Azure Event Grid-Abonnement.
Bereitstellen der Bicep-Datei
Speichern Sie die Bicep-Datei als main.bicep auf Ihrem lokalen Computer.
Stellen Sie die Bicep-Datei entweder mit Azure CLI oder mit Azure PowerShell bereit.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters endpoint=<endpoint>
Hinweis
Ersetzen Sie <endpoint > durch die URL Ihrer Web-App, und fügen Sie
api/updates
an die URL an.Nach Abschluss der Bereitstellung sollte eine Meldung mit dem Hinweis angezeigt werden, dass die Bereitstellung erfolgreich war.
Hinweis
Weitere Azure Event Grid-Vorlagenbeispiele finden Sie hier.
Überprüfen der Bereitstellung
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.
Als Nächstes lösen wir ein Ereignis aus, um zu sehen, wie Event Grid die Nachricht an Ihren Endpunkt weiterleitet.
Sie lösen ein Ereignis für den Blobspeicher aus, indem Sie eine Datei hochladen. Für die Datei ist kein spezifischer Inhalt erforderlich. In den Artikeln wird davon ausgegangen, dass Sie über eine Datei mit dem Namen „testfile.txt“ verfügen, aber Sie können eine beliebige Datei verwenden.
Wenn Sie die Datei in Azure Blob Storage hochladen, sendet Event Grid eine Nachricht an den Endpunkt, den Sie beim Abonnieren konfiguriert haben. Die Nachricht weist das JSON-Format auf und enthält ein Array mit mindestens einem Ereignis. Im folgenden Beispiel enthält die JSON-Nachricht ein Array mit einem Ereignis. Zeigen Sie Ihre Web-App an, und verfolgen Sie, wie ein von einem Blob erstelltes Ereignis empfangen wird.
Bereinigen von Ressourcen
Löschen Sie die Ressourcengruppe, wenn Sie sie nicht mehr benötigen.
Nächste Schritte
Weitere Informationen zu Azure Resource Manager-Vorlagen und Bicep finden Sie in den folgenden Artikeln: