Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a cikkben létrehozunk egy egyéni témakört az Azure PowerShell-lel, feliratkozunk a témakörre, majd kiváltjuk 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.
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.
A folyamat végén látni fogja, hogy a rendszer elküldte az eseményadatokat a webalkalmazásnak.
Feljegyzés
Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Az első lépésekhez tekintse meg Az Azure PowerShell telepítése 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.
Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.
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.
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.
New-AzResourceGroup -Name gridResourceGroup -Location westus2
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 RegistrationStatusRegistered értékű, készen áll a folytatásra.
Egyéni témakör létrehozása
Az Event Grid-témakör egy felhasználó által definiált végpontot biztosít, amelybe az eseményeket közzéteheti. Az alábbi példa az erőforráscsoportban létrehozza az egyéni témakört. A <your-topic-name> elemet a témakör egyedi nevére cserélje le. A témakör nevének egyedinek kell lennie, mert a tartománynévrendszer (DNS) bejegyzés része. Emellett 3–50 karakter hosszúságúnak kell lennie, és csak az a-z, A-Z, 0-9 és "-" értékeket kell tartalmaznia.
$topicname="<your-topic-name>"
New-AzEventGridTopic -ResourceGroupName gridResourceGroup -Location westus2 -Name $topicname
Ü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 gridResourceGroup `
-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.
Feliratkozás témakörre
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émakörre, és az eseményértesítés végpontjaként átadja a webalkalmazásából származó URL-címet.
A webalkalmazás végpontjának az /api/updates/ utótagot kell tartalmaznia.
$endpoint="https://$sitename.azurewebsites.net/api/updates"
New-AzEventGridSubscription `
-EventSubscriptionName demoViewerSub `
-Endpoint $endpoint `
-ResourceGroupName gridResourceGroup `
-TopicName $topicname
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 elküldése a témakörbe
Aktiváljunk egy eseményt, és lássuk, hogyan küldi el az üzenetet az Event Grid a végpontnak. Először szükségünk lesz a témakör URL-címére és kulcsára.
$endpoint = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name $topicname).Endpoint
$keys = Get-AzEventGridTopicKey -ResourceGroupName gridResourceGroup -Name $topicname
A folyamat leegyszerűsítése érdekében hozzunk létre mintául szolgáló eseményadatokat, amelyeket elküldhetünk az egyéni témakörbe. Egy alkalmazás vagy Azure-szolgáltatás általában eseményadatokat küld el. Az alábbi példában az eseményadatok összeállítása egy kivonattáblával történik (htbody), majd megfelelően formázott JSON hasznosadat-objektumokká ($body) lesznek alakítva:
$eventID = Get-Random 99999
#Date format should be SortableDateTimePattern (ISO 8601)
$eventDate = Get-Date -Format s
#Construct body using Hashtable
$htbody = @{
id= $eventID
eventType="recordInserted"
subject="myapp/vehicles/motorcycles"
eventTime= $eventDate
data= @{
make="Ducati"
model="Monster"
}
dataVersion="1.0"
}
#Use ConvertTo-Json to convert event body from Hashtable to JSON Object
#Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax
$body = "["+(ConvertTo-Json $htbody)+"]"
Az $body használatával a teljes eseményt láthatja. A JSON data eleme az esemény hasznos adata. Bármilyen, megfelelően formált JSON megadható ebben a mezőben. A speciális útválasztáshoz és szűréshez használhatja a tárgy mezőt is.
Most küldje el az eseményt a témakörbe.
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Ö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.
[{
"id": "1807",
"eventType": "recordInserted",
"subject": "myapp/vehicles/motorcycles",
"eventTime": "2018-01-25T15:58:13",
"data": {
"make": "Ducati",
"model": "Monster"
},
"dataVersion": "1.0",
"metadataVersion": "1",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventGrid/topics/{topic}"
}]
Az erőforrások eltávolítása
Ha tovább kívánja használni az eseményt vagy az eseménynapló alkalmazást, akkor ne törölje a cikkben létrehozott erőforrásokat. Ellenkező esetben a következő paranccsal törölheti a cikkben létrehozott erőforrásokat.
Remove-AzResourceGroup -Name gridResourceGroup
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újthat segítséget az Event Grid:
- Bevezetés az Event Grid használatába
- Azure Blob Storage-események átirányítása egyéni webes végpontra
- Virtuális gépek módosításainak monitorozása az Azure Event Grid és a Logic Apps segítségével
- Big Data típusú adatok streamelése adattárházba
Az alábbi példákból megtudhatja, hogyan tehet közzé eseményeket az Event Gridből különböző programozási nyelvek használatával, és hogyan használhatja az eseményeket.