Rövid útmutató: Tárolási események átirányítása webes végpontra a PowerShell-lel
Az Azure Event Grid egy felhőalapú eseménykezelési szolgáltatás. Ebben a cikkben az Azure PowerShell használatával iratkozhat fel Blob Storage-eseményekre, aktiválhat egy eseményt, és megtekintheti az eredményt.
Á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 folyamat végén látni fogja, hogy a rendszer elküldte az eseményadatokat a webalkalmazásnak.
Beállítás
Feljegyzés
Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető témakört. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
Ehhez a cikkhez az Azure PowerShell legújabb verzióját kell futtatnia. Ha telepíteni vagy frissíteni szeretne: Az Azure PowerShell telepítése és konfigurálása.
Bejelentkezés az Azure-ba
Jelentkezzen be az Azure-előfizetésbe a Connect-AzAccount
paranccsal, és kövesse a képernyőn megjelenő utasításokat a hitelesítéshez.
Connect-AzAccount
Ez a példa a westus2-t használja, és a kijelölést egy változóban tárolja a teljes használatra.
$location = "westus2"
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 a New-AzResourceGroup paranccsal.
A következő példában létrehozunk egy gridResourceGroup nevű erőforráscsoportot a westus2 helyen.
$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location
Tárfiók létrehozása
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 olyanok, mint a meglévő általános célú tárfiókjai, és a jelenlegi rendszereivel megegyező szintű tartósságot, rendelkezésre állást, méretezhetőséget és teljesítményt nyújtanak, beleértve a 100%-os API-konzisztenciát a blokkblobokhoz és a hozzáfűző blobokhoz. További információkat az Azure Storage-fiókok áttekintésében találhat.
Hozzon létre egy Blob Storage-fiókot LRS-replikációval a New-AzStorageAccount használatával, majd kérje le a használni kívánt tárfiókot meghatározó tárfiók-környezetet. Ha a tárfiókokkal való munka során erre a környezetre hivatkozik, nem kell minden alkalommal megadnia a hitelesítő adatokat. Ez a példa létrehoz egy helyileg redundáns tárolással (LRS) nevezett gridstorage
tárfiókot.
Feljegyzés
A tárfiókok nevei globális névtérben találhatók, ezért hozzá kell fűznie néhány véletlenszerű karaktert a szkriptben megadott névhez.
$storageName = "gridstorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
-Name $storageName `
-Location $location `
-SkuName Standard_LRS `
-Kind BlobStorage `
-AccessTier Hot `
-AllowBlobPublicAccess $false
$ctx = $storageAccount.Context
Ü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 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 <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>"
New-AzResourceGroupDeployment `
-ResourceGroupName $resourceGroup `
-TemplateUri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" `
-siteName $sitename `
-hostingPlanName viewerhost
Az üzembe helyezés befejezése 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 helynek megjelenített üzenetek nélkül kell megjelennie.
Event Grid erőforrás-szolgáltató engedélyezése
Ha még nem használta korábban az Event Gridet az Azure-előfizetésében, lehetséges, hogy regisztrálnia kell az Event Grid erőforrás-szolgáltatót. Futtassa az alábbi parancsot:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
Lehetséges, hogy a regisztráció végrehajtása eltart néhány pillanatig. Az állapot ellenőrzéséhez futtassa a következőt:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
Ha a RegistrationStatus
Registered
értékű, készen áll a folytatásra.
Előfizetés a tárfiókra
Feliratkozhat egy témakörre, amelyből megtudhatja, hogy az Event Grid mely eseményeket szeretné nyomon követni. 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. A webalkalmazás végpontjának az /api/updates/
utótagot kell tartalmaznia.
$storageId = (Get-AzStorageAccount -ResourceGroupName $resourceGroup -AccountName $storageName).Id
$endpoint="https://$sitename.azurewebsites.net/api/updates"
New-AzEventGridSubscription `
-EventSubscriptionName gridBlobQuickStart `
-Endpoint $endpoint `
-ResourceId $storageId
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.
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 hozzunk létre egy tárolót és egy objektumot. Ezután töltsük fel az objektumot a tárolóba.
$containerName = "gridcontainer"
New-AzStorageContainer -Name $containerName -Context $ctx
echo $null >> gridTestFile.txt
Set-AzStorageBlobContent -File gridTestFile.txt -Container $containerName -Context $ctx -Blob gridTestFile.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/gridcontainer/blobs/gridTestFile.txt",
"eventType": "Microsoft.Storage.BlobCreated",
"eventTime": "2017-08-16T20:33:51.0595757Z",
"id": "4d96b1d4-0001-00b3-58ce-16568c064fab",
"data": {
"api": "PutBlockList",
"clientRequestId": "Azure-Storage-PowerShell-d65ca2e2-a168-4155-b7a4-2c925c18902f",
"requestId": "4d96b1d4-0001-00b3-58ce-16568c000000",
"eTag": "0x8D4E4E61AE038AD",
"contentType": "application/octet-stream",
"contentLength": 0,
"blobType": "BlockBlob",
"url": "https://myblobstorageaccount.blob.core.windows.net/gridcontainer/gridTestFile.txt",
"sequencer": "00000000000000EB0000000000046199",
"storageDiagnostics": {
"batchId": "dffea416-b46e-4613-ac19-0371c0c5e352"
}
},
"dataVersion": "",
"metadataVersion": "1"
}]
Az erőforrások eltávolí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 a folytatást, az alábbi paranccsal törölheti a cikkben létrehozott erőforrásokat.
Remove-AzResourceGroup -Name $resourceGroup
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: