Azure SQL Database-hez való csatlakozás az Azure Functions használatával
Ez a cikk bemutatja, hogyan hozhat létre ütemezett feladatot az Azure Functions használatával, amely egy Azure SQL Database-hez vagy felügyelt Azure SQL-példányhoz csatlakozik. A függvénykód törli az adatbázis egy táblájának sorait. Az új C# függvény a Visual Studio 2019 előre definiált időzítő triggersablonja alapján jön létre. A forgatókönyv támogatásához egy kapcsolati sztring adatbázist is be kell állítania alkalmazásbeállításként a függvényalkalmazásban. Felügyelt Azure SQL-példány esetén engedélyeznie kell a nyilvános végpontot , hogy csatlakozni tudjon az Azure Functionsből. Ez a forgatókönyv tömeges műveletet használ az adatbázison.
Ha ez az első tapasztalata a C# Functions használatához, olvassa el az Azure Functions C# fejlesztői referenciáját.
Előfeltételek
Hajtsa végre az első függvény létrehozása a Visual Studióval című cikk lépéseit egy helyi függvényalkalmazás létrehozásához, amely a futtatókörnyezet 2.x vagy újabb verzióját célozza. A projektet egy függvényalkalmazásban is közzé kell tennie az Azure-ban.
Ez a cikk egy Transact-SQL-parancsot mutat be, amely tömeges törlési műveletet hajt végre az AdventureWorksLT mintaadatbázis SalesOrderHeader táblájában. Az AdventureWorksLT mintaadatbázis létrehozásához végezze el az Adatbázis létrehozása az Azure SQL Database-ben az Azure Portal használatával című cikkben leírt lépéseket.
A rövid útmutatóban használt számítógép nyilvános IP-címéhez kiszolgálószintű tűzfalszabályt kell hozzáadnia. Ez a szabály szükséges ahhoz, hogy a helyi számítógépről hozzáférhessen az SQL Database-példányhoz.
Kapcsolatadatok lekérése
Be kell szereznie a létrehozott adatbázis kapcsolati sztring, amikor befejezte az Adatbázis létrehozása az Azure SQL Database-ben az Azure Portal használatával.
Jelentkezzen be az Azure Portalra.
A bal oldali menüben válassza az SQL Databases lehetőséget, majd válassza ki az adatbázist az SQL-adatbázisok lapon.
Válassza a Kapcsolati sztringek lehetőséget a Beállítások területen, és másolja ki a teljes ADO.NET kapcsolati sztring. Felügyelt Azure SQL-példány esetén másolja kapcsolati sztring a nyilvános végponthoz.
A kapcsolati sztring beállítása
A függvények végrehajtásához szükséges gazdaszolgáltatást az Azure-ban egy függvényalkalmazás biztosítja. Ajánlott biztonsági eljárásként kapcsolati sztring és egyéb titkos kulcsokat tároljon a függvényalkalmazás beállításai között. Az alkalmazásbeállítások használata megakadályozza a kapcsolati sztring véletlen közzétételét a kóddal. A függvényalkalmazás alkalmazásbeállításait közvetlenül a Visual Studióból érheti el.
Az alkalmazást korábban közzé kellett tennie az Azure-ban. Ha még nem tette meg, tegye közzé a függvényalkalmazást az Azure-ban.
A Megoldáskezelő kattintson a jobb gombbal a függvényalkalmazás projektre, és válassza a Közzététel lehetőséget.
A Közzététel lapon válassza ki a három pontot (
...
) az Üzemeltetési területen, majd válassza a Azure-alkalmazás szolgáltatás beállításainak kezelése lehetőséget.Az Alkalmazásbeállítások területen válassza a Beállítás hozzáadása lehetőséget, az Új alkalmazásbeállítás névtípusában
sqldb_connection
válassza az OK gombot.Az új sqldb_connection beállításban illessze be az előző szakaszban kimásolt kapcsolati sztring a Helyi mezőbe, és cserélje le
{your_username}
a{your_password}
helyőrzőket valós értékekkel. A helyi érték beszúrása lehetőséget választva másolja a frissített értéket a Távoli mezőbe, majd kattintson az OK gombra.A kapcsolati sztring titkosítva vannak tárolva az Azure-ban (távoli). A titkos kódok kiszivárgásának megakadályozása érdekében a local.settings.json projektfájlt (helyi) ki kell zárni a forrásvezérlőből, például .gitignore-fájl használatával.
Az SqlClient-csomag hozzáadása a projekthez
Hozzá kell adnia az SqlClient-kódtárat tartalmazó NuGet-csomagot. Ez az adatelérési kódtár az SQL Database-hez való csatlakozáshoz szükséges.
Nyissa meg a helyi függvényalkalmazás-projektet a Visual Studio 2022-ben.
A Megoldáskezelő kattintson a jobb gombbal a függvényalkalmazás-projektre, és válassza a NuGet-csomagok kezelése lehetőséget.
A Tallózás fülön keresse meg a(z)
Microsoft.Data.SqlClient
elemet, majd válassza ki.A Microsoft.Data.SqlClient lapon válassza ki a verziót
5.1.0
, majd kattintson a Telepítés gombra.A telepítés befejezése után tekintse át a módosításokat, majd kattintson az OK gombra az Előnézet ablak bezárásához.
Ha megjelenik egy License Acceptance (Licenc elfogadása) ablak, kattintson az I Accept (Elfogadom) gombra.
Most hozzáadhatja az SQL Database-hez csatlakozó C# függvénykódot.
Időzítő által aktivált hozzáadása
A Megoldáskezelő kattintson a jobb gombbal a függvényalkalmazás projektre, és válassza az Új Azure-függvény hozzáadása>lehetőséget.
Az Azure Functions-sablon kiválasztásával nevezze el az új elemet,
DatabaseCleanup.cs
és válassza a Hozzáadás lehetőséget.Az Új Azure-függvény párbeszédpanelen válassza az Időzítő eseményindítót, majd a Hozzáadás lehetőséget. Ez a párbeszédpanel létrehoz egy kódfájlt az időzítő által aktivált függvényhez.
Nyissa meg az új kódfájlt, és adja hozzá a következő utasításokat a fájl tetején:
using Microsoft.Data.SqlClient; using System.Threading.Tasks;
Cserélje le a meglévő
Run
függvényt a következő kódra:[FunctionName("DatabaseCleanup")] public static async Task Run([TimerTrigger("*/15 * * * * *")]TimerInfo myTimer, ILogger log) { // Get the connection string from app settings and use it to create a connection. var str = Environment.GetEnvironmentVariable("sqldb_connection"); using (SqlConnection conn = new SqlConnection(str)) { conn.Open(); var text = "UPDATE SalesLT.SalesOrderHeader " + "SET [Status] = 5 WHERE ShipDate < GetDate();"; using (SqlCommand cmd = new SqlCommand(text, conn)) { // Execute the command and log the # rows affected. var rows = await cmd.ExecuteNonQueryAsync(); log.LogInformation($"{rows} rows were updated"); } } }
Ez a függvény 15 másodpercenként fut az
Status
oszlop frissítéséhez a szállítási dátum alapján. Az időzítő eseményindítójáról további információt az Azure Functions Időzítő eseményindítója című témakörben talál.Nyomja le az F5 billentyűt a függvényalkalmazás elindításához. Megnyílik az Azure Functions Core Tools végrehajtási ablaka a Visual Studio mögött.
A függvény az indítás után 15 másodperccel fut. Figyelje meg a kimenetet, és figyelje meg a SalesOrderHeader táblában frissített sorok számát.
Az első végrehajtáskor 32 adatsort kell frissítenie. A következő futtatások nem frissítik az adatsorokat, hacsak nem módosítja a SalesOrderHeader tábla adatait, hogy az
UPDATE
utasítás több sort jelöljön ki.
Ha a függvény közzétételét tervezi, ne felejtse el 15 másodpercenként ésszerűbb cron ütemezésre módosítani az TimerTrigger
attribútumot. Azt is meg kell győződnie, hogy a függvényalkalmazás hozzáfér az Azure SQL Database-hez vagy a felügyelt Azure SQL-példányhoz. További információkért tekintse meg az Alábbi hivatkozások egyikét az Azure SQL típusától függően:
Következő lépések
A következő lépésben megismerheti a használat módját. A Logic Apps szolgáltatással együttműködve integrálható más szolgáltatásokkal.
A Functions szolgáltatással kapcsolatos további információkért tekintse meg az alábbi cikkeket:
-
Az Azure Functions fejlesztői segédanyagai
Programozói segédanyagok függvények kódolásához, valamint eseményindítók és kötések meghatározásához. -
Az Azure Functions tesztelése
Különböző függvénytesztelési eszközöket és technikákat ír le.