Megosztás a következőn keresztül:


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.

Gomb a Resource Manager-sablon Azure-ban való üzembe helyezéséhez.

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.

  1. 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.

    Üzembe helyezés az Azure-ban

  2. 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.

  3. Ekkor megjelenik a webhely, de még nincsenek közzétéve események.

    Új hely megtekintése

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:

A sablon üzembe helyezése

  1. 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.

    Gomb a Resource Manager-sablon Azure-ban való üzembe helyezéséhez.

  2. 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.

  3. 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.

Előfizetési esemény megtekintése

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.

Eredmények megtekintése

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: