Megosztás a következőn keresztül:


Rövid útmutató: Az Azure SQL Database változásainak megválaszolása az Azure Functions használatával

Ebben a rövid útmutatóban a Visual Studio Code használatával hozhat létre egy alkalmazást, amely reagál egy Azure SQL Database-tábla változásaira. A kód helyi tesztelése után üzembe helyezi azt egy új kiszolgáló nélküli függvényalkalmazásban, amely egy Rugalmas használatú csomagban fut az Azure Functionsben.

A projektforrás az Azure Developer CLI (azd) bővítmény és a Visual Studio Code használatával egyszerűsíti a projektkód helyi inicializálását és ellenőrzését, valamint a kód Azure-ban való üzembe helyezését. Ez az üzembe helyezés a biztonságos és méretezhető Azure Functions-környezetek jelenlegi ajánlott eljárásait követi.

Fontos

Bár az Azure SQL-adatbázisok változásainak megválaszolása minden nyelv esetében támogatott, ez a rövid útmutatós forgatókönyv jelenleg csak a C#, a Python és a TypeScript esetében mutat be példákat. A rövid útmutató végrehajtásához válasszon egyet a cikk tetején található támogatott nyelvek közül.

Előfeltételek

  • Node.js 18.x vagy újabb. Használja a node --version parancsot verziójának ellenőrzéséhez.

A projekt inicializálása

A parancs paletta azd init parancsával hozhat létre helyi Azure Functions-kódprojektet egy sablonból.

  1. A Visual Studio Code-ban nyisson meg egy mappát vagy munkaterületet, amelyben létre szeretné hozni a projektet.

  2. Nyomja le az F1 billentyűt a parancspaletta megnyitásához, a parancs Azure Developer CLI (azd): Initialize App (init)kereséséhez és futtatásához, majd válassza a Sablon kiválasztása lehetőséget.

  3. Amikor a rendszer kéri, keressen rá, és válassza a lehetőséget Azure Functions with SQL Triggers and Bindings.

  4. Amikor a rendszer kéri, adjon meg egy egyedi környezetnevet, például sqldbchanges.

Ez a parancs lekéri a projektfájlokat a sablontárházból , és inicializálja a projektet az aktuális mappában vagy munkaterületen. Ebben azda környezetben egy egyedi üzembehelyezési környezetet tart fenn az alkalmazás számára, és több is definiálható. Az Azure-ban létrehozott erőforráscsoport nevének is része.

Ez a parancs lekéri a projektfájlokat a sablontárházból , és inicializálja a projektet az aktuális mappában vagy munkaterületen. Ebben azda környezetben egy egyedi üzembehelyezési környezetet tart fenn az alkalmazás számára, és több is definiálható. Az Azure-ban létrehozott erőforráscsoport nevének is része.

Ez a parancs lekéri a projektfájlokat a sablontárházból , és inicializálja a projektet az aktuális mappában vagy munkaterületen. Ebben azda környezetben egy egyedi üzembehelyezési környezetet tart fenn az alkalmazás számára, és több is definiálható. Az Azure-ban létrehozott erőforráscsoport nevének is része.

Mielőtt helyileg futtathatja az alkalmazást, létre kell hoznia az erőforrásokat az Azure-ban.

Azure-erőforrások létrehozása

Ez a projekt úgy van konfigurálva, hogy a azd provision parancs használatával hozzon létre egy függvényalkalmazást egy Flex Consumption-csomagban, valamint az aktuális ajánlott eljárásokat követő egyéb szükséges Azure-erőforrásokat.

  1. A Visual Studio Code-ban nyomja le az F1 billentyűt a parancspaletta megnyitásához, a parancs Azure Developer CLI (azd): Sign In with Azure Developer CLIkereséséhez és futtatásához, majd jelentkezzen be az Azure-fiókjával.

  2. Nyomja le az F1 billentyűt a parancskatalógus megnyitásához, keresse meg és futtassa a parancsot Azure Developer CLI (azd): Provision Azure resources (provision) a szükséges Azure-erőforrások létrehozásához.

  3. Amikor a rendszer kéri a terminálablakban, adja meg az alábbi szükséges üzembehelyezési paramétereket:

    Haladéktalan Description
    Használandó Azure-előfizetés kiválasztása Válassza ki azt az előfizetést, amelyben létre szeretné hozni az erőforrásokat.
    hely üzembehelyezési paramétere Azure-régió, amelyben létre kell hozni az új Azure-erőforrásokat tartalmazó erőforráscsoportot. Csak azok a régiók jelennek meg, amelyek jelenleg támogatják a Rugalmas felhasználás csomagot.
    vnetEnabled üzembehelyezési paraméter Bár a sablon támogatja az erőforrások virtuális hálózaton belüli létrehozását, az üzembe helyezés és a tesztelés egyszerűsítése érdekében válassza a lehetőséget False.

A azd provision parancs a bicep-konfigurációs fájlokkal az Ön válaszát használja a szükséges Azure-erőforrások létrehozásához és konfigurálásához, a legújabb ajánlott eljárásokat követve:

  • Rugalmas kihasználtságú csomag és függvényalkalmazás
  • Azure SQL Database (alapértelmezett név: ToDo)
  • Azure Storage (kötelező) és Application Insights (ajánlott)
  • Hozzáférési szabályzatok és szerepkörök a fiókhoz
  • Szolgáltatásközi kapcsolatok felügyelt identitásokkal (tárolt kapcsolati sztring helyett)

A kiépítés utáni horgok a helyi futtatáshoz szükséges local.settings.json fájlt is létrehozzák. Ez a fájl az Azure-beli adatbázishoz való csatlakozáshoz szükséges beállításokat tartalmazza.

A kód áttekintése (nem kötelező)

A minta két függvényt határoz meg:

Függvény neve Kódfájl Trigger típusa Description
httptrigger-sql-output sql_output_http_trigger.cs HTTP-eseményindító Elfogadja a megfelelően formázott JSON hasznos adatokat, és az SQL kimeneti kötés használatával beszúrja az objektumot sorként a ToDo táblázatba.
ToDoTrigger sql_trigger.cs SQL-eseményindító Figyeli a táblában a ToDo sorszintű módosításokat, és visszaad egy objektumot, amely a módosított sort jelöli.

A ToDoItem típus ToDoItem.cs van definiálva.

Függvény neve Kódfájl Trigger típusa Description
http_trigger_sql_output function_app.py HTTP-eseményindító Elfogadja a megfelelően formázott JSON hasznos adatokat, és az SQL kimeneti kötés használatával beszúrja az objektumot sorként a ToDo táblázatba.
httptrigger-sql-output sql_trigger_todo SQL-eseményindító Figyeli a táblában a ToDo sorszintű módosításokat, és visszaad egy objektumot, amely a módosított sort jelöli.

A ToDoItem típus todo_item.py van definiálva.

Függvény neve Kódfájl Trigger típusa Description
httpTriggerSqlOutput sql_output_http_trigger.ts HTTP-eseményindító Elfogadja a megfelelően formázott JSON hasznos adatokat, és az SQL kimeneti kötés használatával beszúrja az objektumot sorként a ToDo táblázatba.
sqlTriggerToDo sql_trigger.ts SQL-eseményindító Figyeli a táblában a ToDo sorszintű módosításokat, és visszaad egy objektumot, amely a módosított sort jelöli.

A ToDoItem típus ToDoItem.ts van definiálva.

Mindkét függvény az alkalmazásszintű AZURE_SQL_CONNECTION_STRING_KEY_* környezeti változókat használja, amelyek identitásalapú kapcsolatot határoznak meg az Azure SQL Database-példányhoz Microsoft Entra ID-hitelesítéssel. Ezek a környezeti változók az Azure-ban (függvényalkalmazás-beállítások) és helyileg (local.settings.json) is létrejönnek a azd provision művelet során.

Csatlakozás az SQL-adatbázishoz

A Visual Studio Code SQL Server (mssql) bővítményével csatlakozhat az új adatbázishoz. Ez a bővítmény segít frissítéseket készíteni a táblában az ToDo SQL-eseményindító függvény futtatásához.

  1. Nyomja le az F1 billentyűt, és a parancskatalógusban keresse meg és futtassa a parancsot MS SQL: Add Connection.

  2. A Kapcsolat párbeszédpanelen módosítsa a bemenet típusát az Azure-ban tallózásra, majd adja meg a további beállításokat:

    Lehetőség Választ Description
    Kiszolgáló Az Ön SQL Server-példánya Alapértelmezés szerint az Azure-fiókhoz elérhető összes kiszolgáló megjelenik. Az előfizetés, az erőforráscsoport és a hely használatával szűrheti a kiszolgálók listáját.
    Adatbázis ToDo A kiépítési folyamat során létrehozott adatbázis.
    Hitelesítés típusa Microsoft Entra-azonosító Ha még nem jelentkezett be, válassza a Bejelentkezés lehetőséget, és jelentkezzen be az Azure-fiókjába.
    Bérlőazonosító Az adott fiókbérlő. Ha a fiókjában több bérleti jog is van, válassza ki az előfizetéséhez megfelelő bérleti jogot.
  3. Válassza a Csatlakozás lehetőséget az adatbázishoz való csatlakozáshoz. A kapcsolat a helyi felhasználói fiókot használja, amely az üzemeltetési kiszolgálón rendszergazdai jogokkal rendelkezik, és az adatbázisban dbo címre van leképezve.

  4. Az SQL Server nézetben keresse meg és bontsa ki a Kapcsolatokat, majd az új kiszolgálót az SQL Server Explorerben. Bontsa ki a Táblák elemet, és ellenőrizze, hogy létezik-e a ToDo tábla. Ha nem létezik, előfordulhat, hogy újra kell futtatnia azd provision , és ellenőriznie kell a hibákat.

A függvény helyi futtatása

A Visual Studio Code az Azure Functions Core-eszközökkel integrálva lehetővé teszi a projekt helyi fejlesztői számítógépen való futtatását, mielőtt közzétennénk az új függvényalkalmazásban az Azure-ban.

  1. Nyomja le az F1 billentyűt, és a parancskatalógusban keresse meg és futtassa a parancsot Azurite: Start.

  2. A függvény helyi indításához nyomja le az F5 billentyűt vagy a Futtatás és hibakeresés ikont a bal oldali tevékenységsávon.

    A Terminál panelen a Core Tools kimenete látható. Az alkalmazás a Terminál panelen kezdődik, és láthatja a helyileg futó függvény nevét.

Az alkalmazás futása során ellenőrizheti és hibakeresheti mindkét függvényindítót.

Az SQL kimeneti kötésbe író HTTP-triggerfüggvény ellenőrzése:

  1. Másolja ki ezt a JSON-objektumot, amelyet a test.http projektfájlban is megtalál:

    {
      "id": "11111111-1111-1111-1111-111111111111",
      "order": 1,
      "title": "Test Todo Item",
      "url": "https://example.com",
      "completed": false
    }
    

    Ezek az adatok egy olyan sort jelölnek, amelyet a HTTP-végpont meghívásakor szúr be az SQL-adatbázisba. A kimeneti kötés az adatobjektumot az adatbázis egy INSERT műveletére fordítja le.

  2. Amikor az alkalmazás fut, az Azure nézetben, a Munkaterület alatt bontsa ki a Helyi projekt>Függvények elemet.

  3. Válassza ki a jobb gombbal a HTTP-függvényt (vagy a Ctrl+kattintson a macOS-ra), válassza a Végrehajtás függvény most lehetőséget, illessze be a másolt JSON-adatokat, és nyomja le az Enter billentyűt.

    A függvény kezeli a HTTP-kérést, és beírja az elemet a csatlakoztatott SQL-adatbázisba, és visszaadja a létrehozott objektumot.

  4. Az SQL Server Explorerben jelölje ki a jobb gombbal a ToDo táblázatot (vagy a Ctrl+kattintson a macOS-ra), és válassza a Felső 1000 kijelölése lehetőséget. A lekérdezés végrehajtásakor a beszúrt vagy frissített sort adja vissza.

  5. Ismételje meg a 3. lépést, és újraküldje ugyanazt az adatobjektumot ugyanazzal az azonosítóval. A kimeneti kötés ezúttal egy UPDATE műveletet hajt végre egy INSERT helyett, és módosítja az adatbázis meglévő sorát.

Ha végzett, írja be a CtrlC+ a terminálba a Core Tools folyamat leállításához.

Telepítés az Azure-ra

A Visual Studio Code-ban futtatható azd deploy parancs futtatásával üzembe helyezheti a projektkódot az Azure-ban már kiépített erőforrásokon.

  1. Nyomja le az F1 billentyűt a parancskatalógus megnyitásához, a parancs kereséséhez és futtatásához Azure Developer CLI (azd): Deploy to Azure (deploy).

    A azd deploy parancs becsomagolja és üzembe helyezi a kódot az üzembe helyezési tárolóban. Az alkalmazás ezután elindul, és az üzembe helyezett csomagban fut.

  2. A parancs sikeres végrehajtása után az alkalmazás az Azure-ban fut. Jegyezze fel az Endpoint értéket, amely az Azure-ban futó függvényalkalmazás URL-címe.

A függvény meghívása az Azure-ban

  1. A Visual Studio Code-ban nyomja le az F1 billentyűt, majd a parancskatalógusban keresse meg és futtassa a parancsot Azure: Open in portal, válassza ki Function appés válassza ki az új alkalmazást. Szükség esetén jelentkezzen be az Azure-fiókjával.

  2. A bal oldali panelen válassza a Naplóstream lehetőséget, amely az alkalmazás Application Insights-naplóihoz csatlakozik.

  3. Térjen vissza a Visual Studio Code-hoz, és futtassa mindkét függvényt az Azure-ban.

  1. Nyomja le az F1 billentyűt a parancskatalógus megnyitásához, a parancs kereséséhez és futtatásához Azure Functions: Execute Function Now....

  2. Keresse meg és válassza ki a távoli függvényalkalmazást a listából, majd válassza ki a HTTP-eseményindító függvényt.

  3. A korábbiakhoz hasonlóan illessze be a JSON-objektumadatokat az Enter hasznos adattörzsébe , és nyomja le az Enter billentyűt.

    {
      "id": "11111111-1111-1111-1111-111111111111",
      "order": 1,
      "title": "Test Todo Item",
      "url": "https://example.com",
      "completed": false
    }
    

    Ahelyett, hogy egy INSERT-t hajtana végre, egy UPDATE elvégzéséhez cserélje le a id-t egy új GUID értékre.

  4. Térjen vissza a portálra, és tekintse meg a végrehajtási kimenetet a naplóablakban.

Erőforrások tisztítása

Ha végzett a függvényalkalmazással és a kapcsolódó erőforrásokkal, ezzel a paranccsal törölheti a függvényalkalmazást és annak kapcsolódó erőforrásait az Azure-ból, és elkerülheti a további költségek felmerülését:

azd down --no-prompt

Megjegyzés:

A --no-prompt beállítás arra utasítja azd , hogy az erőforráscsoportot anélkül törölje, hogy ön megerősítést kap.

Ez a parancs nincs hatással a helyi kódprojektre.