Az ikerpéldányok eseménykezelésének beállítása

Ez a cikk bemutatja, hogyan küldhet eseményeket ikerpéldányról ikerpéldányra, hogy a gráf egyik digitális ikerpéldányának frissítésekor az információk által érintett gráf kapcsolódó ikerpéldányai is frissülhessenek. Ez az eseménykezelés segít létrehozni egy teljesen csatlakoztatott Azure Digital Twins-gráfot, ahol a külső forrásokból, például az IoT Hubból érkező adatok a teljes gráfon keresztül propagálva lesznek.

Az iker-iker eseménykezelés beállításához létre kell hoznia egy Azure-függvényt , amely az iker életciklus eseményeit figyeli. A függvény felismeri, hogy mely események legyenek hatással a gráf többi ikerpéldányára, és az eseményadatok használatával ennek megfelelően frissíti az érintett ikerpéldányokat.

Előfeltételek

Az ikerpéldányok kezelésének beállításához szüksége lesz egy Azure Digital Twins-példányra, amellyel dolgozhat. A példányok létrehozásával kapcsolatos utasításokért lásd : Azure Digital Twins-példány és -hitelesítés beállítása. A példánynak tartalmaznia kell legalább két ikerpéldányt, amelyek között adatokat szeretne küldeni.

Szükség esetén az IoT Hubon keresztüli automatikus telemetriai betöltést is érdemes beállítani az ikerpéldányok számára. Ez a folyamat nem szükséges az ikereszközről az ikerpéldányra történő adatküldéshez, de fontos része egy teljes megoldásnak, amelyben az ikergráfot élő eszköz telemetriai adatok vezérlik.

Ikeresemények küldése végpontra

Az iker-iker események kezelésének beállításához először hozzon létre egy végpontot az Azure Digital Twinsben, és egy útvonalat az adott végponthoz. A frissítésen átesett ikerpéldányok az útvonal használatával adatokat küldenek a végpontnak a frissítési eseményekről (ahol az Event Grid később átveheti őket, és átadhatja őket egy Azure-függvénynek feldolgozás céljából).

Az Event Grid-témakör létrehozása

Az Event Grid egy Azure-szolgáltatás, amely segít az Azure-szolgáltatásokból az Azure-szolgáltatásokból az Azure más pontjaira irányítani és továbbítani az eseményeket. Létrehozhat egy Event Grid-témakört, amely összegyűjt bizonyos eseményeket egy forrásból, majd az előfizetők meghallgathatják a témakört, hogy fogadják az eseményeket.

Az Azure CLI-ben futtassa a következő parancsot egy Event Grid-témakör létrehozásához:

az eventgrid topic create --resource-group <your-resource-group> --name <name-for-your-event-grid-topic> --location <region>

A parancs kimenete a létrehozott Event Grid-témakörre vonatkozó információ. Mentse az Event Grid-témakörnek adott nevet , mert később fogja használni.

A végpont létrehozása

Ezután hozzon létre egy Event Grid-végpontot az Azure Digital Twinsben, amely csatlakoztatja a példányt az Event Grid-témakörhöz. Használja az alábbi parancsot, és szükség szerint töltse ki az Event Grid-témakör nevét az előző lépésből és a többi helyőrző mezőből.

az dt endpoint create eventgrid --dt-name <Azure-Digital-Twins-instance> --eventgrid-resource-group <your-resource-group> --eventgrid-topic <your-event-grid-topic> --endpoint-name <name-for-your-Azure-Digital-Twins-endpoint>

A parancs kimenete a létrehozott végpontra vonatkozó információ.

Keresse meg a provisioningState mezőt a kimenetben, és ellenőrizze, hogy az érték "Sikeres".

Screenshot of the result of the endpoint query in the Cloud Shell of the Azure portal, showing the endpoint with a provisioningState of Succeeded.

Azt is mondhatja, hogy "Kiépítés", ami azt jelenti, hogy a végpont még mindig létrejön. Ha igen, várjon néhány másodpercet, és futtassa a következő parancsot a végpont állapotának ellenőrzéséhez. Ismételje meg a műveletet, amíg a provisioningState "Sikeres" érték nem jelenik meg.

az dt endpoint show --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint> 

Mentse a végpont nevét , mert később fogja használni.

Az útvonal létrehozása

Ezután hozzon létre egy Azure Digital Twins-útvonalat, amely eseményeket küld a létrehozott Event Grid-végpontnak.

Használja a következő CLI-parancsot, és szükség szerint töltse ki a végpont nevét az előző lépésből és a többi helyőrző mezőből. Ez a parancs az ikergráfban előforduló összes eseményt továbbítja.

Tipp.

Az eseményeket csak adott eseményekre korlátozhatja, ha szeretné, szűrők használatával.

az dt route create --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint> --route-name <name-for-your-Azure-Digital-Twins-route>

A parancs kimenete néhány információ a létrehozott útvonalról.

Megjegyzés:

A végpontoknak (az előző lépésből) be kell fejezniük a kiépítést, mielőtt beállíthat egy olyan eseményútvonalat, amely azokat használja. Ha az útvonal létrehozása meghiúsul, mert a végpontok nem állnak készen, várjon néhány percet, majd próbálkozzon újra.

Azure-függvény létrehozása ikerpéldányok frissítéséhez

Ezután hozzon létre egy Azure-függvényt, amely figyeli a végpontot, és fogadja az útvonalon keresztül oda küldött ikereseményeket. A függvény logikájának az események információit kell használnia annak meghatározásához, hogy a többi ikerpéldánynak mit kell frissítenie, majd végre kell hajtania a frissítéseket.

  1. Először hozzon létre egy új Azure Functions-projektet.

    Ezt a Visual Studióval (útmutatásért lásd: Azure Functions fejlesztése a Visual Studióval), Visual Studio Code (útmutatásért lásd: C#-függvény létrehozása az Azure-ban a Visual Studio Code használatával) vagy az Azure CLI (útmutatásért lásd: C# függvény létrehozása az Azure-ban a parancssorból).

  2. Adja hozzá a következő csomagokat a projekthez (használhatja a Visual Studio NuGet csomagkezelőt, vagy a dotnet add package parancsot egy parancssori eszközben).

  3. Töltse ki a függvény logikáját. Az azure-digital-twins-getting-started adattárban több forgatókönyvhöz is megtekintheti a mintafüggvénykódot, hogy megkönnyítse az első lépéseket.

  4. Tegye közzé a függvényt az Azure-ban az ön által választott módszerrel.

    A függvény Visual Studióval való közzétételére vonatkozó utasításokért lásd: Azure Functions fejlesztése a Visual Studióval. A függvény Visual Studio Code-tal való közzétételére vonatkozó utasításokért lásd: C#-függvény létrehozása az Azure-ban a Visual Studio Code használatával. A függvény Azure CLI-vel való közzétételére vonatkozó utasításokért lásd: C#-függvény létrehozása az Azure-ban a parancssorból.

Miután a függvény közzétételének folyamata befejeződött, ezzel az Azure CLI-paranccsal ellenőrizheti, hogy a közzététel sikeres volt-e. Az erőforráscsoporthoz helyőrzők tartoznak, a függvényalkalmazás neve és az adott függvény neve. A parancs kinyomtatja a függvény adatait.

az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name <your-function>

A függvényalkalmazás konfigurálása

Ahhoz, hogy a függvény hozzáférhessen az Azure Digital Twinshez, szüksége van a példányra vonatkozó információkra és a hozzáférésre vonatkozó engedélyre. Ebben a szakaszban hozzárendel egy hozzáférési szerepkört a függvényhez, és konfigurálja az alkalmazás beállításait, hogy megtalálja és elérhesse a példányt.

Futtassa az alábbi parancsokat az Azure Cloud Shellben vagy egy helyi Azure CLI-ben.

Megjegyzés:

Ezt a szakaszt egy Olyan Azure-felhasználónak kell kitöltenie, aki jogosult az Azure-erőforrásokhoz való felhasználói hozzáférés kezelésére, beleértve az engedélyek megadását és delegálását. A követelménynek megfelelő gyakori szerepkörök a tulajdonos, a fiókadminisztrátor vagy a felhasználói hozzáférés Rendszergazda istrator és a közreműködő kombinációja. További információ az Azure Digital Twins-szerepkörök engedélykövetelményeiről: Példány és hitelesítés beállítása.

Hozzáférési szerepkör hozzárendelése

Az Azure-függvényhez egy tulajdonosi jogkivonatot kell átadni. A tulajdonosi jogkivonat átadásához adja meg a függvényalkalmazásnak az Azure Digital Twins-példány Azure Digital Twins-adattulajdonosi szerepkörét, amely engedélyt ad a függvényalkalmazásnak az adatsík-tevékenységek végrehajtására a példányon.

  1. A következő paranccsal hozzon létre egy rendszer által felügyelt identitást a függvényhez (ha a függvény már rendelkezik ilyenrel, ez a parancs kinyomtatja annak részleteit). Jegyezze fel a principalId kimenet mezőjét. Ezzel az azonosítóval hivatkozhat a függvényre, így a következő lépésben engedélyeket adhat neki.

    az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>	
    
  2. principalId Az alábbi paranccsal adja meg a függvény Azure Digital Twins-adattulajdonosi szerepkörét az Azure Digital Twins-példányhoz.

    az dt role-assignment create --dt-name <your-Azure-Digital-Twins-instance> --assignee "<principal-ID>" --role "Azure Digital Twins Data Owner"
    

Alkalmazásbeállítások konfigurálása

Ezután tegye elérhetővé az Azure Digital Twins-példány URL-címét a függvény számára egy környezeti változó beállításával.

Tipp.

Az Azure Digital Twins-példány URL-címe úgy jön létre , hogy hozzáadja a https:// a példány gazdagépnevének elejéhez. A gazdagép nevének és a példány összes tulajdonságának megtekintéséhez futtassa a parancsot az dt show --dt-name <your-Azure-Digital-Twins-instance>.

Az alábbi parancs beállít egy környezeti változót a példány URL-címéhez, amelyet a függvény minden alkalommal használni fog, amikor hozzá kell férnie a példányhoz.

az functionapp config appsettings set --resource-group <your-resource-group> --name <your-function-app-name> --settings "ADT_SERVICE_URL=https://<your-Azure-Digital-Twins-instance-host-name>"

Csatlakozás a függvényt a végpontra

Ezután iratkozzon fel az Azure-függvényre a korábban létrehozott Event Grid-végpontra. Ezzel biztosíthatja, hogy az adatok egy frissített ikerpéldányból az Event Grid-témakörön keresztül a függvénybe áramolhassanak, ami az eseményadatok segítségével szükség szerint frissítheti a többi ikerpéldányt.

Az Azure-függvény előfizetéséhez létre fog hozni egy Event Grid-előfizetést, amely adatokat küld a korábban létrehozott Event Grid-témakörből az Azure-függvénynek.

Használja a következő CLI-parancsot, és töltse ki az előfizetés azonosítójának, erőforráscsoportjának, függvényalkalmazásának és függvénynevének helyőrzőit.

az eventgrid event-subscription create --name <name-for-your-event-subscription> --source-resource-id /subscriptions/<subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.EventGrid/topics/<your-event-grid-topic> --endpoint-type azurefunction --endpoint /subscriptions/<subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app-name>/functions/<function-name> 

Most a függvény eseményeket fogadhat az Event Grid-témakörön keresztül. Az adatfolyam beállítása befejeződött.

Eredmények tesztelése és ellenőrzése

Az utolsó lépés a folyamat működésének ellenőrzése egy ikerpéldány frissítésével és annak ellenőrzésével, hogy a kapcsolódó ikerpéldányok frissülnek-e az Azure-függvény logikájának megfelelően.

A folyamat elindításához frissítse az eseményfolyam forrását képező ikerpéldányt. A frissítéshez használhatja az Azure CLI-t, az Azure Digital Twins SDK-t vagy az Azure Digital Twins REST API-kat.

Ezután kérdezze le az Azure Digital Twins-példányt a kapcsolódó ikerpéldányhoz. Használhatja az Azure CLI-t, vagy az Azure Digital Twins REST API-kat és SDK-kat. Ellenőrizze, hogy az ikerpéldány megkapta-e az adatokat, és a várt módon frissült-e.

További lépések

Ebben a cikkben az ikerpéldányok eseménykezelését állítja be az Azure Digital Twinsben. Ezután állítson be egy Azure-függvényt, amely automatikusan aktiválja ezt a folyamatot az IoT Hub-eszközökről érkező bejövő telemetriai adatok alapján: telemetriai adatok betöltése az IoT Hubról.