Sdílet prostřednictvím


Rychlý start: Reakce na změny databáze ve službě Azure Cosmos DB pomocí Azure Functions

V tomto rychlém startu použijete Visual Studio Code k vytvoření aplikace, která reaguje na změny v NoSQL databázi v prostředí Azure Cosmos DB. Po místním otestování kódu ho nasadíte do nové aplikace funkcí bez serveru, kterou vytvoříte v plánu Flex Consumption ve službě Azure Functions.

Zdroj projektu používá rozšíření Azure Developer CLI (azd) se sadou Visual Studio Code ke zjednodušení inicializace a ověřování kódu projektu místně a také k nasazení kódu do Azure. Toto nasazení se řídí aktuálními osvědčenými postupy pro zabezpečená a škálovatelná nasazení Azure Functions.

Důležité

Při reagování na změny ve službě Azure Cosmos DB Není podporována žádná databáze SQL pro všechny jazyky, tento scénář rychlého startu v současné době obsahuje pouze příklady pro C#, Python a TypeScript. K dokončení tohoto rychlého startu vyberte jeden z těchto podporovaných jazyků v horní části článku.

Požadavky

  • Node.js 18.x nebo vyšší. Pomocí příkazu node --version zkontrolujte svou verzi.

Inicializace projektu

Pomocí příkazu azd init z palety příkazů můžete vytvořit projekt kódu Azure Functions místně ze šablony.

  1. V editoru Visual Studio Code otevřete složku nebo pracovní prostor, ve kterém chcete vytvořit projekt.

  2. Stisknutím klávesy F1 otevřete paletu příkazů, vyhledejte a spusťte příkaz Azure Developer CLI (azd): Initialize App (init)a pak zvolte Vybrat šablonu.

    Při inicializaci aktuální složky nebo pracovního prostoru může dojít k mírnému zpoždění azd .

  1. Po zobrazení výzvy zvolte Vybrat šablonu a pak vyhledejte a vyberte Azure Functions with Cosmos DB Bindings (.NET).

  2. Po zobrazení výzvy zadejte jedinečný název prostředí, například cosmosdbchanges-dotnet.

    Tento příkaz načte soubory projektu z úložiště šablon a inicializuje projekt v aktuální složce nebo pracovním prostoru. V azdprostředí se používá k zachování jedinečného kontextu nasazení pro vaši aplikaci a můžete definovat více než jedno. Je také součástí názvu skupiny prostředků, kterou vytvoříte v Azure.

  1. Po zobrazení výzvy zvolte Vybrat šablonu a pak vyhledejte a vyberte Azure Functions TypeScript CosmosDB trigger.

  2. Po zobrazení výzvy zadejte jedinečný název prostředí, například cosmosdbchanges-ts.

    Tento příkaz načte soubory projektu z úložiště šablon a inicializuje projekt v aktuální složce nebo pracovním prostoru. V azdprostředí se používá k zachování jedinečného kontextu nasazení pro vaši aplikaci a můžete definovat více než jedno. Je také součástí názvu skupiny prostředků, kterou vytvoříte v Azure.

  1. Po zobrazení výzvy zvolte Vybrat šablonu a pak vyhledejte a vyberte Azure Functions Python with CosmosDB triggers and bindings....

  2. Po zobrazení výzvy zadejte jedinečný název prostředí, například cosmosdbchanges-py.

    Tento příkaz načte soubory projektu z úložiště šablon a inicializuje projekt v aktuální složce nebo pracovním prostoru. V azdprostředí se používá k zachování jedinečného kontextu nasazení pro vaši aplikaci a můžete definovat více než jedno. Je také součástí názvu skupiny prostředků, kterou vytvoříte v Azure.

  1. Spuštěním tohoto příkazu v závislosti na místním operačním systému udělte konfiguračním skriptům požadovaná oprávnění:

    Spusťte tento příkaz s dostatečnými oprávněními:

    chmod +x ./infra/scripts/*.sh
    

Než budete moct aplikaci spustit místně, musíte prostředky vytvořit v Azure. Tento projekt nepoužívá místní emulaci pro službu Azure Cosmos DB.

Vytvoření zdrojů Azure

Tento projekt je nakonfigurovaný tak, aby pomocí azd provision příkazu vytvořil aplikaci funkcí v plánu Flex Consumption a další požadované prostředky Azure, které dodržují aktuální osvědčené postupy.

  1. V editoru Visual Studio Code stisknutím klávesy F1 otevřete paletu příkazů, vyhledejte a spusťte příkaz Azure Developer CLI (azd): Sign In with Azure Developer CLIa pak se přihlaste pomocí svého účtu Azure.

  2. Stisknutím klávesy F1 otevřete paletu příkazů, vyhledejte a spusťte příkaz Azure Developer CLI (azd): Provision Azure resources (provision) a vytvořte požadované prostředky Azure:

  3. Po zobrazení výzvy v okně terminálu zadejte tyto požadované parametry nasazení:

    Podnět Description
    Vyberte předplatné Azure, které chcete použít. Zvolte předplatné, ve kterém chcete, aby byly prostředky vytvořeny.
    parametr nasazení location Oblast Azure, ve které se má vytvořit skupina prostředků, která obsahuje nové prostředky Azure. Zobrazí se pouze oblasti, které aktuálně podporují plán Flex Consumption.
    Parametr nasazení vnetEnabled I když šablona podporuje vytváření prostředků ve virtuální síti, pro zjednodušení nasazení a testování zvolte False.

    Tento azd provision příkaz použije vaši odpověď na tyto výzvy s konfiguračními soubory Bicep k vytvoření a konfiguraci těchto požadovaných prostředků Azure podle nejnovějších osvědčených postupů:

    • Plán Flex Consumption a aplikace funkcí
    • Účet služby Azure Cosmos DB
    • Azure Storage (povinné) a Application Insights (doporučeno)
    • Zásady přístupu a role pro váš účet
    • Připojení mezi službami pomocí spravovaných identit (místo uložených připojovací řetězec)

    Po zřízení háky také generují local.settings.json soubor potřebný při místním spuštění. Tento soubor obsahuje také nastavení potřebná pro připojení k databázi Azure Cosmos DB v Azure.

    Návod

    Pokud všechny kroky během zřizování selžou, můžete po vyřešení jakýchkoli problémů příkaz znovu spustit azd provision .

    Po úspěšném dokončení příkazu můžete kód projektu spustit místně a aktivovat v databázi Azure Cosmos DB v Azure.

Místní spuštění funkce

Visual Studio Code se integruje s nástroji Azure Functions Core, které vám umožní spustit tento projekt na místním vývojovém počítači před publikováním do nové aplikace funkcí v Azure.

  1. Stiskněte klávesu F1 a v paletě příkazů vyhledejte a spusťte příkaz Azurite: Start.

  2. Pokud chcete funkci spustit místně, stiskněte klávesu F5 nebo ikonu Spustit a ladit na panelu aktivit na levé straně. Na panelu Terminálu se zobrazí výstup nástrojů Core Tools. Aplikace se spustí na panelu Terminálu a zobrazí se název funkce, která je spuštěná místně.

    Pokud máte potíže se spuštěním ve Windows, ujistěte se, že výchozí terminál pro Visual Studio Code není nastavený na WSL Bash.

  3. Při stále běžících Core Tools v terminálu stiskněte F1 a v příkazové paletě vyhledejte a spusťte příkaz NoSQL: Create Item... a vyberte jak document-db databázi, tak documents kontejner.

  4. Nahraďte obsah souboru Nový Item.json daty JSON a vyberte Uložit:

    {
        "id": "doc1", 
        "title": "Sample document", 
        "content": "This is a sample document for testing my Azure Cosmos DB trigger in Azure Functions."
    } 
    

    Po výběru možnosti Uložit se v terminálu zobrazí spuštění funkce a místní dokument se aktualizuje tak, aby zahrnoval metadata přidaná službou.

  5. Až budete hotovi, ukončete proces hostitele stisknutím ctrl+C v okně func.exe terminálu.

Kontrola kódu (volitelné)

Funkce se aktivuje na základě kanálu změn v databázi NoSQL služby Azure Cosmos DB. Tyto proměnné prostředí konfigurují způsob, jakým trigger monitoruje změnový kanál:

  • COSMOS_CONNECTION__accountEndpoint: Koncový bod účtu služby Cosmos DB
  • COSMOS_DATABASE_NAME: Název databáze, která se má monitorovat.
  • COSMOS_CONTAINER_NAME: Název kontejneru, který se má monitorovat.

Tyto proměnné prostředí jsou vytvořeny pro vás jak v Azure (nastavení funkční aplikace), tak i místně (local.settings.json) během azd provision operace.

Můžete zkontrolovat kód, který definuje trigger služby Azure Cosmos DB v souboru projektu CosmosTrigger.cs.

Můžete zkontrolovat kód, který definuje trigger služby Azure Cosmos DB v souboru projektu cosmos_trigger.ts.

Můžete zkontrolovat kód, který definuje trigger služby Azure Cosmos DB v souboru projektu function_app.py.

Jakmile kód funkce zkontrolujete a ověříte místně, je čas projekt publikovat do Azure.

Nasazení do Azure

Spuštěním příkazu z editoru azd deploy Visual Studio Code můžete nasadit kód projektu do již zřízených prostředků v Azure.

  • Stisknutím klávesy F1 otevřete paletu příkazů, vyhledejte a spusťte příkaz Azure Developer CLI (azd): Deploy to Azure (deploy).

    Příkaz azd deploy zabalí a nasadí váš kód do nasazovacího kontejneru. Aplikace se pak spustí a spustí v nasazeném balíčku.

    Po úspěšném dokončení příkazu je vaše aplikace spuštěná v Azure.

Vyvolání funkce v Azure

  1. V editoru Visual Studio Code stiskněte klávesu F1 a na paletě příkazů vyhledejte a spusťte příkaz Azure: Open in portal, vyberte Function appa zvolte novou aplikaci. V případě potřeby se přihlaste pomocí svého účtu Azure.

    Tento příkaz otevře novou aplikaci funkcí na webu Azure Portal.

  2. Na kartě Přehled na hlavní stránce vyberte název aplikace funkcí a pak kartu Protokoly .

  3. Pomocí příkazu v editoru NoSQL: Create Item Visual Studio Code znovu přidejte dokument do kontejneru jako předtím.

  4. Znovu ověřte, že se funkce aktivuje aktualizací v monitorovaném kontejneru.

Opětovné nasazení kódu

Příkaz můžete spustit azd deploy tolikrát, kolikrát potřebujete nasadit aktualizace kódu do aplikace funkcí.

Poznámka:

Nasazené soubory kódu se vždy přepíšou nejnovějším balíčkem pro nasazení.

Vaše počáteční odpovědi na azd výzvy a všechny proměnné prostředí vygenerované azd pomocí se ukládají místně ve vašem pojmenovaném prostředí. azd env get-values Pomocí příkazu zkontrolujte všechny proměnné ve vašem prostředí, které se použily při vytváření prostředků Azure.

Vyčistěte zdroje

Po dokončení práce s aplikací funkcí a souvisejícími prostředky můžete pomocí tohoto příkazu odstranit aplikaci funkcí a související prostředky z Azure a vyhnout se dalším nákladům:

azd down --no-prompt

Poznámka:

Tato --no-prompt možnost dává azd pokyn k odstranění skupiny prostředků bez potvrzení od vás.

Tento příkaz nemá vliv na místní projekt kódu.