Témakörterek az Azure Event Grid MQTT-közvetítő funkciójában
A témakörtér több témakört jelöl egy témakörsablonok halmazán keresztül. A témakörsablonok olyan MQTT-szűrők bővítményei, amelyek támogatják a változókat, valamint az MQTT helyettesítő karaktereket. Minden témakörterület azokat az MQTT-témaköröket jelöli, amelyeket ugyanazoknak az ügyfeleknek kell használniuk a kommunikációhoz.
A témakörterek a hozzáférés-vezérlés felügyeletének egyszerűsítésére szolgálnak azáltal, hogy lehetővé teszik, hogy az egyes témakörökhöz való hozzáférés kezelése helyett egyszerre adjon közzétételi vagy előfizetési hozzáférést a témakörök egy csoportjához. Az MQTT-témakörök közzétételéhez vagy előfizetéséhez a következőkre van szükség:
- Hozzon létre egy ügyfélerőforrást minden olyan ügyfélhez, akinek MQTT-en keresztül kell kommunikálnia.
- Hozzon létre egy ügyfélcsoportot , amely tartalmazza azokat az ügyfeleket, amelyeknek hozzáférésre van szükségük ahhoz, hogy ugyanazon az MQTT-témakörön tegyenek közzé vagy iratkozzanak fel.
- Hozzon létre egy témakörteret , amely tartalmaz egy témakörsablont, amely a kívánt témakört/témakörszűrőt jelöli.
- Hozzon létre egy engedélykötést, amely hozzáférést biztosít az ügyfélcsoportnak a témakörterület közzétételéhez vagy előfizetéséhez.
MQTT-témakörszűrő:
Az MQTT-témakörszűrők olyan MQTT-témakörök, amelyek egy vagy több szegmenséhez tartalmazhatnak helyettesítő karaktereket, így több MQTT-témakörnek is megfelelhetnek. Az előfizetési kérelmek leegyszerűsítésére szolgál, mivel egy témakörszűrő több témakörnek is megfelelhet.
Az MQTT-közvetítő az MQTT-specifikáció által meghatározott összes MQTT helyettesítő karaktert támogatja az alábbiak szerint:
- +: amely egyetlen szegmensnek felel meg.
- Például a témakörszűrő: "gépek/+/riasztás" a következő témaköröknek felel meg:
- gépek/ideiglenes/riasztás
- gépek/páratartalom/riasztás
- Például a témakörszűrő: "gépek/+/riasztás" a következő témaköröknek felel meg:
- #: amely a témakör végén lévő nulla vagy több szegmensnek felel meg.
- A témakörszűrő például a következő témaköröknek felel meg: "gépek/#"
- Gépek
- gépek/ideiglenes
- gépek/páratartalom
- gépek/ideiglenes/riasztás stb.
- A témakörszűrő például a következő témaköröknek felel meg: "gépek/#"
A helyettesítő karakterekről további információt az MQTT-specifikáció témakör helyettesítő karakterei című témakörben talál.
Témakörsablonok
A témakörsablonok olyan MQTT-szűrők bővítményei, amelyek támogatják a változókat, valamint az MQTT helyettesítő karaktereket. A témakörtérkonfiguráció részletes hozzáférés-vezérlést is biztosít azáltal, hogy lehetővé teszi az ügyfélcsoporton belüli egyes ügyfelek engedélyezését a saját témakörének közzétételére vagy előfizetésére. További információ arról, hogy a témakörsablonok hogyan biztosítják a részletes hozzáférés-vezérlést.
Témakörtér konfigurálása:
A Témakörhelyek legfeljebb 10 témakörsablont csoportosíthat. A témakörsablonok támogatják az MQTT helyettesítő karaktereit (+ és #) és a következő változókat:
- ${client.authenticationName}: ez a változó az ügyfél hitelesítési nevét jelöli. További információ az ügyfél-hitelesítési nevekről.
- ${client.attributes.x}: ez a változó egy ügyfélhez rendelt attribútumot jelöl az ügyfél létrehozása/frissítése során, például az "x" megegyezik az attribútumkulcs pontos sztringével. Ha például egy ügyfél rendelkezik az attribútummal, a "area/${client.attributes.area}/telemetria" témakörsablon csak a "area:section1" ügyfélattribútummal> rendelkező ügyfelek számára teszi közzé a "area/section1/telemetria" MQTT-témakört. További információ az ügyfélattribútumokról.
Megjegyzés:
A $-val kezdődő témakörök belső használatra vannak fenntartva.
A változók egy szegmens vagy egy teljes szegmens egy részét jelölhetik, de nem fedhetnek le több szegmenst. Egy témakörsablon például tartalmazhat "machines/${client.authenticationName|. factory1}/temp" a "machines/machine1.factory1/temp", a "machines/machine2.factory1/temp" stb.
A témakörsablonok speciális karaktereket használnak $ és | és ezeket a használt héj alapján másképpen kell megmenekíteni. A PowerShellben a $ járművekkel/${dollar}telemetria/#. Ha PowerShellt használ, a következő példákban látható módon elkerülheti ezeket a speciális karaktereket:
"vehicles/${client.authenticationName|dollar}/#"
vehicles/${client.authenticationName"|"dollar}/#
Az Azure Portal konfigurációja:
Témakörtér létrehozásához kövesse az alábbi lépéseket:
- Lépjen a névtérre az Azure Portalon.
- A Témakörtér csoportban válassza a +Témakörterület lehetőséget.
- Rendeljen nevet a témakörterülethez.
Feljegyzés
- A témakörterület neve 3–50 karakter hosszú lehet.
- A témakörtér neve tartalmazhat alfanumerikus, kötőjel(-) és szóközöket.
- Vegyen fel legalább egy témakörsablont a +Témakörsablon hozzáadása lehetőséget választva.
- Válassza a Létrehozás lehetőséget.
Azure CLI-konfiguráció:
Témakörtér létrehozásához használja az alábbi parancsokat:
az eventgrid namespace topic-space create -g myRG --namespace-name myNS -n myTopicSpace --topic-templates ['segment1/+/segment3/${client.authenticationName}', "segment1/${client.attributes.attribute1}/segment3/#"]
Feljegyzés
A témakörtér konfigurációs frissítéseinek propagálása eltarthat néhány percig.
Következő lépések:
További információ az engedélyezésről és a hitelesítésről: