Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Selecteer Implementeren in Azure om de oplossing voor uw abonnement te implementeren. Geef in Azure Portal waarden op voor de parameters.
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
U ziet de site, maar er worden nog geen gebeurtenissen op de site geplaatst.
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:
- Microsoft.Storage/storageAccounts: een Azure Storage-account maken.
- Microsoft.EventGrid/systemTopics: een systeemonderwerp maken met de naam die is opgegeven voor het opslagaccount.
- Microsoft.EventGrid/systemTopics/eventSubscriptions: een Azure Event Grid-abonnement maken voor het systeemonderwerp.
Het Bicep-bestand implementeren
Sla het Bicep-bestand op als main.bicep op uw lokale computer.
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.
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.
Resources opschonen
Verwijder de resourcegroep als u deze niet meer nodig hebt.
Gerelateerde inhoud
Zie de volgende artikelen voor meer informatie over Azure Resource Manager-sjablonen en Bicep:
- Documentatie voor Azure Resource Manager
- Define resources in Azure Resource Manager templates (Resources definiëren in Azure Resource Manager-sjablonen)
- Azure Event Grid-sjablonen.