Kurz: Směrování zpráv MQTT ve službě Azure Event Grid do Azure Functions pomocí vlastních témat – Azure Portal

V tomto kurzu se naučíte směrovat zprávy MQTT přijaté oborem názvů Azure Event Grid do funkce Azure pomocí vlastního tématu Event Gridu pomocí následujícího postupu:

Pokud předplatné Azure nemáte, můžete si zaregistrovat bezplatnou zkušební verzi.

Vytvoření funkce Azure pomocí triggeru Event Gridu

Postupujte podle pokynů k vytvoření funkce Azure pomocí editoru Visual Studio Code, ale místo použití triggeru HTTP použijte trigger Azure Event Gridu. Měl by se zobrazit kód podobný následujícímu příkladu:

using System;
using Azure.Messaging;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;

namespace Company.Function
{
    public class MyEventGridTriggerFunc
    {
        private readonly ILogger<MyEventGridTriggerFunc> _logger;

        public MyEventGridTriggerFunc(ILogger<MyEventGridTriggerFunc> logger)
        {
            _logger = logger;
        }

        [Function(nameof(MyEventGridTriggerFunc))]
        public void Run([EventGridTrigger] CloudEvent cloudEvent)
        {
            _logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject);
        }
    }
}

Tuto funkci Azure použijete jako obslužnou rutinu události pro odběr tématu později v tomto kurzu.

Poznámka:

  • Vytvořte všechny prostředky ve stejné oblasti.
  • Tento kurz byl testován pomocí funkce Azure, která používá zásobník modulu runtime .NET 8.0 (izolovaný).

Vytvoření tématu Event Gridu (vlastní téma)

Vytvořte téma Event Gridu. Viz Vytvoření vlastního tématu pomocí portálu. Při vytváření tématu Event Grid na kartě Upřesnit ve schématu událostí vyberte Schéma cloudové události v1.0.

Snímek obrazovky znázorňující stránku Upřesnit v průvodci vytvořením tématu

Poznámka:

Schéma událostí cloudu můžete používat všude v tomto kurzu.

Přidání předplatného do tématu pomocí funkce

V tomto kroku vytvoříte odběr tématu Event Gridu pomocí funkce Azure, kterou jste vytvořili dříve.

  1. Na stránce tématu Event Gridu vyberte odběry na levém navigačním panelu.

    Snímek obrazovky se stránkou Odběry událostí pro téma

  2. Na stránce Vytvořit odběr události proveďte následující kroky:

    1. Zadejte název odběru události.

    2. V případě schématu událostí vyberte Schéma cloudové události 1.0.

    3. Jako typ koncového bodu vyberte Azure Functions.

    4. Pak vyberte Konfigurovat koncový bod.

      Snímek obrazovky se stránkou Vytvořit odběr událostí

  3. Na stránce Vybrat funkci Azure proveďte následující kroky:

    1. Jako předplatné vyberte své předplatné Azure.

    2. V části Skupina prostředků vyberte skupinu prostředků, která má vaši funkci Azure.

    3. V případě aplikace funkcí vyberte aplikaci Functions, která tuto funkci obsahuje.

    4. V případě slotu vyberte Produkční.

    5. Jako funkci vyberte funkci Azure.

    6. Pak vyberte Potvrdit výběr v dolní části stránky.

      Snímek obrazovky znázorňující stránku Vybrat funkci Azure

  4. Na stránce Vytvořit odběr události vyberte Vytvořit.

  5. Na stránce Odběry událostí byste měli vidět předplatné, které jste vytvořili.

Vytvoření oboru názvů, klientů, prostorů témat a vazeb oprávnění

Postupujte podle pokynů z rychlého startu: Publikování a přihlášení k odběru zpráv MQTT pomocí oboru názvů Event Gridu pomocí webu Azure Portal pro:

  1. Vytvořte obor názvů Event Gridu.
  2. Vytvořte dva klienty.
  3. Vytvořte prostor tématu.
  4. Vytvořte vazby oprávnění vydavatele a odběratele.
  5. Otestujte použití aplikace MQTTX a ověřte, že klienti můžou odesílat a přijímat zprávy.

Povolení spravované identity pro obor názvů

V této části povolíte spravovanou identitu přiřazenou systémem pro obor názvů Event Gridu. Potom udělte identitě oprávnění k odeslání vlastního tématu Event Gridu, které jste vytvořili dříve, aby bylo možné směrovat zprávu do vlastního tématu. Uděláte to tak, že přidáte spravovanou identitu do role Odesílatele dat Event Gridu ve vlastním tématu.

  1. Na stránce Obor názvů služby Event Grid vyberte v levé navigační nabídce možnost Identita.

    Snímek obrazovky znázorňující obor názvů Event Gridu s vybranou kartou Identita

  2. Přejděte do tématu Event Gridu pro vlastní téma Event Gridu.

  3. Na levém navigačním panelu vyberte Řízení přístupu.

  4. Na stránce Řízení přístupu vyberte Přidat a pak vyberte Přidat přiřazení role.

    Snímek obrazovky znázorňující stránku řízení přístupu

  5. Na stránce Role v Průvodci přidáním přiřazení role vyberte roli Odesílatele dat event Gridu a v dolní části stránky vyberte Další.

    Snímek obrazovky znázorňující stránku **Role** v průvodci **Přidat přiřazení role**

  6. Na stránce Členové v Průvodci přidáním přiřazení role vyberte Spravovaná identita a pak zvolte Vybrat členy.

    Snímek obrazovky se stránkou Členové v průvodci přidáním přiřazení role

  7. Na stránce Vybrat spravované identity proveďte následující kroky:

    1. Vyberte své předplatné Azure.

    2. Jako spravovanou identitu vyberte obor názvů Event Gridu.

    3. Vyberte spravovanou identitu, která má stejný název jako obor názvů Event Gridu.

    4. Zvolte Vybrat v dolní části stránky.

      Snímek obrazovky se stránkou Vybrat spravované identity

  8. Na stránce Přidat přiřazení role vyberte v dolní části stránky další.

  9. Na stránce Zkontrolovat a přiřadit zkontrolujte nastavení a pak v dolní části stránky vyberte Zkontrolovat a přiřadit.

Konfigurace směrování zpráv do funkce Azure pomocí vlastního tématu

V tomto kroku nakonfigurujete směrování pro obor názvů služby Event Grid tak, aby se zprávy, které obdrží, směrovaly do vlastního tématu, které jste vytvořili.

  1. Na stránce Obor názvů služby Event Grid vyberte Směrování na levém navigačním panelu.

  2. Na stránce Směrování vyberte Povolit směrování.

  3. Jako typ tématu vyberte Vlastní téma.

  4. V části Téma vyberte vlastní téma, které jste vytvořili pro účely tohoto kurzu.

  5. Jako spravovanou identitu pro doručení vyberte Přiřazený systém.

  6. Vyberte Použít v dolní části stránky.

    Snímek obrazovky znázorňující stránku Směrování pro obor názvů

Odeslání testovacích zpráv MQTT pomocí MQTTX

Odešlete testovací zprávy MQTT do oboru názvů a potvrďte, že je funkce přijme.

Postupujte podle pokynů v článku o publikování a přihlášení k odběru zpráv pomocí článku aplikace MQTTX a odešlete několik testovacích zpráv do oboru názvů Event Gridu.

Tady je tok událostí nebo zpráv:

  1. MQTTX odesílá zprávy do prostoru tématu oboru názvů Event Gridu.

  2. Zprávy se přesměrují na vlastní téma, které jste nakonfigurovali.

  3. Zprávy se přeposílají do odběru událostí, což je funkce Azure.

  4. Pomocí funkce protokolování ověřte, že funkce přijala událost.

    Snímek obrazovky znázorňující stránku streamu protokolu pro funkci Azure

Další krok

Podívejte se na ukázky kódu v tomto úložišti GitHubu.