Rövid útmutató: Blob Storage-események átirányítása webvégpontra ARM-sablon használatával
Ebben a cikkben egy Azure Resource Manager-sablont (ARM-sablont) használ egy Blob Storage-fiók létrehozásához, előfizet az adott blobtároló eseményeire, és eseményt indít el az eredmény megtekintéséhez. Általában olyan végpontoknak szoktunk eseményeket küldeni, amelyek eseményadatokat dolgoznak fel és műveleteket hajtanak végre. A cikk egyszerűsítése érdekében azonban az eseményeket egy olyan webalkalmazásnak küldjük el, amely az üzenetek gyűjtésével és megjelenítésével foglalkozik.
Feljegyzés
Ha még nem ismerkedik az Azure Event Gridszel, tekintse meg az Azure Event Gridet , amely áttekintést nyújt a szolgáltatásról, mielőtt végigvezeti az oktatóanyagon.
Az Azure Resource Manager-sablon egy JavaScript Object Notation (JSON) fájl, amely meghatározza a projekt infrastruktúráját és konfigurációját. A sablon deklaratív szintaxist használ. Az üzembe helyezés létrehozásához szükséges programozási parancsok sorozatának megírása nélkül írhatja le a tervezett üzembe helyezést.
Ha a környezet megfelel az előfeltételeknek, és már ismeri az ARM-sablonokat, kattintson az Üzembe helyezés az Azure-ban gombra. A sablon az Azure Portalon fog megnyílni.
Előfeltételek
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Üzenetvégpont létrehozása
A Blob Storage-eseményekre való feliratkozás előtt hozzuk létre az eseményüzenet végpontját. A végpont általában az eseményadatok alapján hajt végre műveleteket. A rövid útmutató egyszerűsítése érdekében üzembe kell helyeznie egy előre összeállított webalkalmazást , amely megjeleníti az eseményüzeneteket. Az üzembe helyezett megoldás egy App Service-csomagot, egy App Service-webalkalmazást és egy, a GitHubról származó forráskódot tartalmaz.
A megoldásnak az előfizetésébe való telepítéséhez válassza az Üzembe helyezés az Azure-ban lehetőséget. Az Azure Portalon adjon meg értékeket a paraméterekhez.
Az üzembe helyezés eltarthat néhány percig. Az üzembe helyezés sikerességét követően tekintse meg a webalkalmazást, hogy biztosan fut-e. Egy webböngészőben navigáljon a következő helyre:
https://<your-site-name>.azurewebsites.net
.Ekkor megjelenik a webhely, de még nincsenek közzétéve események.
A sablon áttekintése
Az ebben a gyorsútmutatóban használt sablon az Azure-gyorssablonok közül származik.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.26.54.24096",
"templateHash": "17805408638569592847"
}
},
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "[format('storage{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Provide a unique name for the Blob Storage account."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Provide a location for the Blob Storage account that supports Event Grid."
}
},
"eventSubName": {
"type": "string",
"defaultValue": "subToStorage",
"metadata": {
"description": "Provide a name for the Event Grid subscription."
}
},
"endpoint": {
"type": "string",
"metadata": {
"description": "Provide the URL for the WebHook to receive events. Create your own endpoint for events."
}
},
"systemTopicName": {
"type": "string",
"defaultValue": "mystoragesystemtopic",
"metadata": {
"description": "Provide a name for the system topic."
}
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-01-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"accessTier": "Hot",
"minimumTlsVersion": "TLS1_2",
"supportsHttpsTrafficOnly": true,
"allowBlobPublicAccess": false
}
},
{
"type": "Microsoft.EventGrid/systemTopics",
"apiVersion": "2023-12-15-preview",
"name": "[parameters('systemTopicName')]",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"source": "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]",
"topicType": "Microsoft.Storage.StorageAccounts"
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
]
},
{
"type": "Microsoft.EventGrid/systemTopics/eventSubscriptions",
"apiVersion": "2023-12-15-preview",
"name": "[format('{0}/{1}', parameters('systemTopicName'), parameters('eventSubName'))]",
"properties": {
"destination": {
"properties": {
"endpointUrl": "[parameters('endpoint')]"
},
"endpointType": "WebHook"
},
"filter": {
"includedEventTypes": [
"Microsoft.Storage.BlobCreated",
"Microsoft.Storage.BlobDeleted"
]
}
},
"dependsOn": [
"[resourceId('Microsoft.EventGrid/systemTopics', parameters('systemTopicName'))]"
]
}
],
"outputs": {
"name": {
"type": "string",
"value": "[parameters('eventSubName')]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.EventGrid/systemTopics/eventSubscriptions', parameters('systemTopicName'), parameters('eventSubName'))]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
A sablonban két Azure-erőforrás van definiálva:
- Microsoft.Storage/StorageAccounts: Hozzon létre egy Azure Storage-fiókot.
- Microsoft.EventGrid/systemTopics: hozzon létre egy rendszertémakört a tárfiók megadott nevével.
- Microsoft.EventGrid/systemTopics/eventSubscriptions: Hozzon létre egy Azure Event Grid-előfizetést a rendszertémakörhöz.
A sablon üzembe helyezése
Az alábbi hivatkozásra kattintva jelentkezzen be az Azure-ba, és nyisson meg egy sablont. A sablon létrehoz egy kulcstartót és egy titkos kulcsot.
Adja meg a végpontot: adja meg a webalkalmazás URL-címét, és adja hozzá
api/updates
a kezdőlap URL-címét.Válassza a Vásárlás lehetőséget a sablon üzembe helyezéséhez.
A sablon üzembe helyezéséhez itt az Azure Portal szolgál. Használhatja az Azure PowerShellt, az Azure CLI-t és a REST API-t is. Az egyéb üzembehelyezési módszerekről a Sablonok üzembe helyezése című témakörben olvashat.
Feljegyzés
További Azure Event Grid-sablonmintákat itt talál.
Az üzembe helyezés ellenőrzése
Tekints meg újra a webalkalmazást, ahol láthatja, hogy az fogadta az előfizetés érvényesítési eseményét. Az eseményadatok kibontásához kattintson a szem ikonra. Az Event Grid elküldi az érvényesítési eseményt, így a végpont megerősítheti, hogy eseményadatokat akar kapni. A webalkalmazás az előfizetés érvényesítéséhez szükséges kódot tartalmaz.
Most aktiváljunk egy eseményt, és lássuk, hogyan küldi el az üzenetet az Event Grid a végpontnak.
A Blob Storage-hoz egy eseményt egy fájl feltöltésével aktiválhat. A fájlnak nem kell tartalommal rendelkeznie. A cikk feltételezi, hogy testfile.txt nevű fájllal rendelkezik, de bármilyen fájlt használhat.
Amikor feltölti a fájlt az Azure Blob Storage-ba, az Event Grid üzenetet küld a feliratkozáskor konfigurált végpontnak. Az üzenet JSON formátumú, és egy vagy több eseményt tartalmazó tömböt tartalmaz. Az alábbi példában a JSON-üzenet egy egy eseményt tartalmazó tömböt tartalmaz. Tekintse meg a webalkalmazását, és észreveheti, hogy az fogadott egy blob által létrehozott eseményt.
Az erőforrások eltávolítása
Ha már nincs rá szükség, törölje az erőforráscsoportot.
Következő lépések
Az Azure Resource Manager-sablonokról az alábbi cikkekben talál további információt: