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


Rövid útmutató: Tárolási események átirányítása webes végpontra az Azure CLI-vel

Az Azure Event Grid egy felhőalapú eseménykezelési szolgáltatás. Ebben a cikkben az Azure CLI használatával iratkozhat fel a Blob Storage-eseményekre, és aktiválhatja az eseményt 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.

A cikkben ismertetett lépések elvégzése után láthatja, hogy az eseményadatok a webalkalmazásba lettek elküldve.

Képernyőkép az Azure Event Grid Megjelenítőről, amely a webalkalmazásnak küldött eseményadatokat jeleníti meg.

Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.

Előfeltételek

  • Ez a cikk az Azure CLI 2.0.70-es vagy újabb verzióját igényli. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.

Erőforráscsoport létrehozása

Az Event Grid-témakörök Azure-erőforrások, amelyeket egy Azure-erőforráscsoportba kell helyezni. Az erőforráscsoport egy olyan logikai gyűjtemény, amelyben a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat.

Hozzon létre egy erőforráscsoportot az az group create paranccsal.

Az alábbi példa létrehoz egy <resource_group_name> nevű erőforráscsoportot a westcentralus helyszínen. A <resource_group_name> elemet az erőforráscsoport egyedi nevére cserélje le.

az group create --name <resource_group_name> --location westcentralus

Hozzon létre egy tárolófiókot

Blobtároló események általános célú v2 tárfiókokban vagy Blob tárfiókokban érhetők el. Az általános célú v2 fiókok olyan tárfiókok, amelyek a társzolgáltatások összes funkcióját támogatják, beleértve a blobokat, a fájlokat, az üzenetsorokat és a táblákat is. A Blob Storage-fiók egy speciális tárfiók a strukturálatlan adatok blobként (objektumként) való tárolására az Azure Storage-ban. A Blob storage fiókok az általános célú tárfiókokhoz hasonlóak, és osztoznak minden kiváló tartóssági, rendelkezésre állási, méretezhetőségi és teljesítménybeli jellemzőn, amelyeket ma használ, beleértve a 100%-os API-konzisztenciát a blokkblobok és a hozzáfűző blobok számára. További információkat az Azure Storage-fiókok áttekintésében találhat.

Cserélje le <storage_account_name> a tárfiók egyedi nevére és <resource_group_name> a korábban létrehozott erőforráscsoportra.

az storage account create \
  --name <storage_account_name> \
  --location westcentralus \
  --resource-group <resource_group_name> \
  --sku Standard_LRS \
  --kind BlobStorage \
  --access-tier Hot

Üzenetvégpont létrehozása

A témakörre 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 helyezhet egy előre elkészített 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 <your-site-name> elemet a webalkalmazás egyedi nevére cserélje le. A webalkalmazás nevének egyedinek kell lennie, mert a DNS-bejegyzés része.

sitename=<your-site-name>

az deployment group create \
  --resource-group <resource_group_name> \
  --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
  --parameters siteName=$sitename hostingPlanName=viewerhost

Az üzembe helyezés végrehajtása eltarthat néhány percig. A sikeres üzembe helyezést követően tekintse meg a webalkalmazást, hogy meggyőződjön annak működéséről. Egy webböngészőben navigáljon a következő helyre: https://<your-site-name>.azurewebsites.net.

A webhelyet kellene látnia, amely jelenleg nem jelenít meg üzeneteket.

Az Event Grid-erőforrás-szolgáltató engedélyezése

  1. Ha most először használja az Event Gridet az Azure-előfizetésében, előfordulhat, hogy regisztrálnia kell az Event Grid-erőforrás-szolgáltatót. A szolgáltató regisztrálásához futtassa az alábbi parancsot:

    az provider register --namespace Microsoft.EventGrid
    
  2. Eltarthat egy ideig, amíg a regisztráció befejeződik. Az állapot ellenőrzéséhez futtassa a következő parancsot:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    Ha a registrationState értéke Registered, akkor készen áll a folytatásra.

Iratkozzon fel a tárfiókra

A témakörre való feliratkozással lehet tudatni az Event Griddel, hogy mely eseményeket kívánja nyomon követni, és hová szeretné küldeni azokat. Az alábbi példa feliratkozik a létrehozott tárfiókra, és átadja az URL-címet a webalkalmazásból az eseményértesítés végpontjaként. Az <event_subscription_name> elemet cserélje le az esemény-előfizetéshez választott névre. A <resource_group_name> és <storage_account_name> elemnél a korábban létrehozott értékeket adja meg.

A webalkalmazás végpontjának az /api/updates/ utótagot kell tartalmaznia.

storageid=$(az storage account show --name <storage_account_name> --resource-group <resource_group_name> --query id --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates

az eventgrid event-subscription create \
  --source-resource-id $storageid \
  --name <event_subscription_name> \
  --endpoint $endpoint

Tekintse meg újra a webalkalmazást, és figyelje meg, hogy egy előfizetés-érvényesítési esemény érkezett hozzá. Az eseményadatok kibontásához válassza a szem ikont. Az Event Grid elküldi az érvényesítési eseményt, így a végpont ellenőrizheti, hogy szeretne-e eseményadatokat fogadni. A webalkalmazás tartalmazza az előfizetés érvényesítéséhez szükséges kódot.

Előfizetési esemény megtekintése

Esemény kiváltása a Blob Storage-ból

Most aktiváljunk egy eseményt, és lássuk, hogyan küldi el az üzenetet az Event Grid a végpontnak. Először konfiguráljuk a tárfiók nevét és kulcsát, majd hozzunk létre egy tárolót, majd hozzunk létre és töltsünk fel egy fájlt. Használja ismét a korábban létrehozott értékeket <storage_account_name><resource_group_name> .

export AZURE_STORAGE_ACCOUNT=<storage_account_name>
export AZURE_STORAGE_KEY="$(az storage account keys list --account-name <storage_account_name> --resource-group <resource_group_name> --query "[0].value" --output tsv)"

az storage container create --name testcontainer

touch testfile.txt
az storage blob upload --file testfile.txt --container-name testcontainer --name testfile.txt

Ön kiváltotta az eseményt, az Event Grid pedig elküldte az üzenetet a feliratkozáskor konfigurált végpontnak. Tekintse meg a webalkalmazást az imént elküldött esemény megtekintéséhez.

[{
  "topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.Storage/storageAccounts/myblobstorageaccount",
  "subject": "/blobServices/default/containers/testcontainer/blobs/testfile.txt",
  "eventType": "Microsoft.Storage.BlobCreated",
  "eventTime": "2017-08-16T20:33:51.0595757Z",
  "id": "4d96b1d4-0001-00b3-58ce-16568c064fab",
  "data": {
    "api": "PutBlockList",
    "clientRequestId": "d65ca2e2-a168-4155-b7a4-2c925c18902f",
    "requestId": "4d96b1d4-0001-00b3-58ce-16568c000000",
    "eTag": "0x8D4E4E61AE038AD",
    "contentType": "text/plain",
    "contentLength": 0,
    "blobType": "BlockBlob",
    "url": "https://myblobstorageaccount.blob.core.windows.net/testcontainer/testfile.txt",
    "sequencer": "00000000000000EB0000000000046199",
    "storageDiagnostics": {
      "batchId": "dffea416-b46e-4613-ac19-0371c0c5e352"
    }
  },
  "dataVersion": "",
  "metadataVersion": "1"
}]

Erőforrások tisztítása

Ha továbbra is használni szeretné ezt a tárfiókot és esemény-előfizetést, ne törölje a cikkben létrehozott erőforrásokat. Ha nem tervezi folytatni a munkát, az alábbi paranccsal törölje a cikkben létrehozott erőforrásokat.

Cserélje le <resource_group_name> a fent létrehozott erőforráscsoportra.

az group delete --name <resource_group_name>

Következő lépések

Most, hogy megismerkedett vele, hogyan hozhat létre témaköröket és eseményfeliratkozásokat, bővebben is tájékozódhat arról, hogy miben nyújthatnak segítséget a Blob Storage-események és az Event Grid: