Kurz: Použití připojení založených na identitě místo tajných kódů s triggery a vazbami

V tomto kurzu se dozvíte, jak nakonfigurovat Službu Azure Functions tak, aby se připojila k frontám služby Azure Service Bus pomocí spravovaných identit místo tajných kódů uložených v nastavení aplikace funkcí. Tento kurz je pokračováním aplikace funkcí Vytvořit aplikaci funkcí bez výchozích tajných kódů úložiště v jejím kurzu definice . Další informace o připojeních založených na identitě najdete v tématu Konfigurace připojení založeného na identitě.

I když uvedené postupy obecně fungují pro všechny jazyky, tento kurz aktuálně podporuje funkce knihovny tříd jazyka C# ve Windows konkrétně.

V tomto kurzu se naučíte:

  • Vytvořte oboru názvů a frontu Service Bus.
  • Nakonfigurujte aplikaci funkcí se spravovanou identitou.
  • Vytvořte přiřazení role, které této identitě uděluje oprávnění ke čtení z fronty služby Service Bus.
  • Vytvořte a nasaďte aplikaci funkcí s triggerem služby Service Bus.
  • Ověřte připojení založené na identitě ke službě Service Bus.

Požadavek

Dokončete předchozí kurz: Vytvoření aplikace funkcí s připojeními založenými na identitách.

Vytvoření oboru názvů a fronty služby Service Bus

  1. Na webu Azure Portal zvolte Vytvořit prostředek (+).

  2. Na stránce Vytvořit prostředek vyhledejte a vyberte Service Bus a pak vyberte Vytvořit.

  3. Na stránce Základy nakonfigurujte nastavení oboru názvů služby Service Bus pomocí následující tabulky. Pro zbývající možnosti použijte výchozí hodnoty.

    Možnost Navrhovaná hodnota Popis
    Předplatné Vaše předplatné Předplatné, ve kterém se vaše prostředky vytvářejí.
    Skupina prostředků myResourceGroup Skupina prostředků, kterou jste vytvořili pomocí aplikace funkcí.
    název Namespace Globálně jedinečný název Obor názvů vaší instance, ze které se má funkce aktivovat. Vzhledem k tomu, že obor názvů je veřejně přístupný, musíte použít název, který je globálně jedinečný v rámci Azure. Název musí mít délku 6 až 50 znaků, obsahovat pouze alfanumerické znaky a pomlčky a nesmí začínat číslem.
    Místo myFunctionRegion Oblast, ve které jste vytvořili aplikaci funkcí.
    Cenová úroveň Basic Úroveň Basic Service Bus.
  4. Vyberte Zkontrolovat a vytvořit. Po dokončení ověření vyberte Vytvořit.

  5. Po dokončení nasazení vyberte Přejít k prostředku.

  6. V novém oboru názvů služby Service Bus vyberte + Fronta a přidejte frontu.

  7. Jako název nové fronty zadejte myinputqueue a vyberte Vytvořit.

Teď, když máte frontu, můžete přidat přiřazení role ke spravované identitě vaší aplikace funkcí.

Konfigurace triggeru služby Service Bus se spravovanou identitou

Pokud chcete používat triggery služby Service Bus s připojeními založenými na identitách, musíte do spravované identity v aplikaci funkcí přidat přiřazení role Příjemce dat služby Azure Service Bus. Tato role se vyžaduje při použití spravovaných identit k aktivaci z oboru názvů služby Service Bus. Do této role můžete také přidat vlastní účet, který umožňuje připojení k oboru názvů služby Service Bus během místního testování.

Poznámka:

Požadavky na role pro používání připojení založených na identitě se liší v závislosti na službě a způsobu, jakým se k ní připojujete. Požadavky se liší mezi aktivačními událostmi, vstupními vazbami a výstupními vazbami. Další informace o konkrétních požadavcích na role najdete v dokumentaci k triggeru a vazbě pro službu.

  1. V oboru názvů služby Service Bus, který jste vytvořili, vyberte Řízení přístupu (IAM). Na této stránce můžete zobrazit a nakonfigurovat, kdo má k prostředku přístup.

  2. Vyberte + Přidat a vyberte Přidat přiřazení role.

  3. Vyhledejte příjemce dat služby Azure Service Bus, vyberte ho a pak vyberte Další.

  4. Na kartě Členové v části Přiřadit přístup zvolte Spravovaná identita.

  5. Výběrem možnosti Vybrat členy otevřete panel Vybrat spravované identity .

  6. Ověřte, že předplatné je předplatné , ve kterém jste prostředky vytvořili dříve.

  7. V selektoru spravované identity zvolte Aplikace funkcí z kategorie Spravovaná identita přiřazená systémem. Popisek aplikace funkcí může mít vedle sebe číslo v závorkách, které označují počet aplikací v předplatném s identitami přiřazenými systémem.

  8. Vaše aplikace by se měla zobrazit v seznamu pod vstupními poli. Pokud ho nevidíte, můžete pomocí pole Vybrat vyfiltrovat výsledky s názvem vaší aplikace.

  9. Vyberte aplikaci. Měl by se přesunout dolů do oddílu Vybrané členy . Zvolte Zvolit.

  10. Zpět na obrazovce Přidat přiřazení role vyberte Zkontrolovat a přiřadit. Zkontrolujte konfiguraci a pak vyberte Zkontrolovat a přiřadit.

Aplikaci funkcí jste udělili přístup k oboru názvů služby Service Bus pomocí spravovaných identit.

Připojení ke službě Service Bus v aplikaci funkcí

  1. Na portálu vyhledejte aplikaci funkcí, kterou jste vytvořili v předchozím kurzu, nebo ji přejděte na stránce Aplikace funkcí.

  2. V aplikaci funkcí rozbalte Nastavení a pak vyberte Proměnné prostředí.

  3. Na kartě Nastavení aplikace vyberte + Přidat a vytvořte nastavení. Pomocí informací v následující tabulce zadejte název a hodnotu pro nové nastavení:

    Jméno Hodnota Popis
    ServiceBusConnection__fullyQualifiedNamespace <>SERVICE_BUS_NAMESPACE.servicebus.windows.net Toto nastavení připojí vaši aplikaci funkcí ke službě Service Bus pomocí připojení založeného na identitě místo tajných kódů.
  4. Vyberte Použít a pak vyberte Použít a Potvrdit uložte změny a restartujte funkci aplikace.

Poznámka:

Při použití Aplikace Azure konfigurace nebo služby Key Vault k poskytnutí nastavení pro připojení spravované identity by názvy nastavení měly používat platný oddělovač klíčů, například : nebo /, místo __ názvu, aby se názvy správně přeložily.

Například ServiceBusConnection:fullyQualifiedNamespace.

Teď, když jste připravili aplikaci funkcí pro připojení k oboru názvů služby Service Bus pomocí spravované identity, můžete do místního projektu přidat novou funkci, která používá trigger služby Service Bus.

Přidání funkce aktivované službou Service Bus

  1. Spuštěním func init následujícího příkazu vytvořte projekt funkcí ve složce s názvem LocalFunctionProj se zadaným modulem runtime:

    func init LocalFunctionProj --dotnet
    
  2. Přejděte do složky projektu:

    cd LocalFunctionProj
    
  3. Ve složce kořenového projektu spusťte následující příkaz:

    dotnet add package Microsoft.Azure.WebJobs.Extensions.ServiceBus --version 5.2.0
    

    Tento příkaz nahradí výchozí verzi balíčku rozšíření Service Bus verzí, která podporuje spravované identity.

  4. Spuštěním následujícího příkazu přidejte do projektu funkci aktivovanou službou Service Bus:

    func new --name ServiceBusTrigger --template ServiceBusQueueTrigger 
    

    Tento příkaz přidá kód pro nový trigger služby Service Bus a odkaz na balíček rozšíření. Pro tuto aktivační událost musíte přidat nastavení připojení k oboru názvů služby Service Bus.

  5. Otevřete nový soubor projektu ServiceBusTrigger.cs a nahraďte ServiceBusTrigger třídu následujícím kódem:

    public static class ServiceBusTrigger
    {
        [FunctionName("ServiceBusTrigger")]
        public static void Run([ServiceBusTrigger("myinputqueue", 
            Connection = "ServiceBusConnection")]string myQueueItem, ILogger log)
        {
            log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
        }
    }
    

    Tento vzorový kód aktualizuje název fronty na myinputqueue, což je stejný název jako fronta, kterou jste vytvořili dříve. Nastaví také název připojení služby Service Bus na ServiceBusConnection. Tento název je obor názvů služby Service Bus používaný připojením ServiceBusConnection__fullyQualifiedNamespace založeným na identitě, které jste nakonfigurovali na portálu.

Poznámka:

Pokud se teď pokusíte spustit funkce pomocí func start, zobrazí se chyba. Důvodem je to, že nemáte místně definované připojení založené na identitě. Pokud chcete funkci spustit místně, nastavte nastavení ServiceBusConnection__fullyQualifiedNamespace local.settings.json aplikace tak, jak jste to udělali v [předchozí části](#connect-to-the service-bus-in-your-function-app). Kromě toho musíte roli přiřadit k vaší identitě vývojáře. Další informace najdete v tématu místní vývoj s využitím připojení založených na identitách.

Poznámka:

Při použití konfigurace Aplikace Azure nebo služby Key Vault k poskytnutí nastavení pro připojení spravované identity by názvy nastavení měly používat platný oddělovač klíčů, například : místo / __ názvu, aby se názvy správně přeložily.

Například ServiceBusConnection:fullyQualifiedNamespace.

Publikování aktualizovaného projektu

  1. Spuštěním následujícího příkazu místně vygenerujte soubory potřebné pro balíček nasazení:

    dotnet publish --configuration Release
    
  2. Přejděte do \bin\Release\netcoreapp3.1\publish podsložky a z jejího obsahu vytvořte soubor .zip.

  3. Publikujte soubor .zip spuštěním následujícího příkazu, ve kterém nahraďte FUNCTION_APP_NAMERESOURCE_GROUP_NAMEparametry , a PATH_TO_ZIP podle potřeby:

    az functionapp deploy -n FUNCTION_APP_NAME -g RESOURCE_GROUP_NAME --src-path PATH_TO_ZIP
    

Teď, když jste aktualizovali aplikaci funkcí pomocí nového triggeru, můžete ověřit, že funguje pomocí identity.

Ověření změn

  1. Na portálu vyhledejte a vyberte Application Insights v části Služby.Application Insights

  2. V Application Insights vyhledejte pojmenovanou instanci nebo ji vyhledejte.

  3. Ve vaší instanci vyberte v části Prošetření živé metriky.

  4. Nechte předchozí kartu otevřenou a otevřete azure Portal na nové kartě. Na nové kartě přejděte do oboru názvů služby Service Bus a v nabídce vlevo vyberte Fronty .

  5. Vyberte frontu s názvem myinputqueue.

  6. V nabídce vlevo vyberte Service Bus Explorer .

  7. Odeslat testovací zprávu.

  8. Vyberte svou otevřenou kartu Live Metrics (Živé metriky ) a podívejte se na spuštění fronty služby Service Bus.

Gratulujeme! Úspěšně jste nastavili trigger fronty služby Service Bus se spravovanou identitou.

Vyčištění prostředků

V předchozích krocích jste vytvořili prostředky Azure ve skupině prostředků. Pokud předpokládáte, že už tyto prostředky nebudete potřebovat, můžete je odstranit tak, že odstraníte skupinu prostředků.

V nabídce webu Azure Portal nebo na domovské stránce vyberte skupiny prostředků. Potom na stránce Skupiny prostředků vyberte myResourceGroup.

Na stránce myResourceGroup se ujistěte, že uvedené prostředky jsou ty, které chcete odstranit.

Vyberte Odstranit skupinu prostředků, do textového pole zadejte myResourceGroup , abyste ji potvrdili, a pak vyberte Odstranit.

Další kroky

V tomto kurzu jste vytvořili aplikaci funkcí s připojeními založenými na identitách.

V dalším článku se dozvíte, jak spravovat identitu.