Csatlakozás Azure SQL-adatbázishoz a Azure Functions használatával
Ez a cikk bemutatja, hogyan hozhat létre ütemezett feladatokat a Azure Functions használatával, amelyek egy Azure SQL-adatbázishoz vagy Azure SQL Managed Instance csatlakoznak. 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 a függvényalkalmazásban egy kapcsolati sztring adatbázist is be kell állítania alkalmazásbeállításként. A Azure SQL Managed Instance engedélyeznie kell a nyilvános végpontot, hogy csatlakozni tudjon Azure Functions. Ez a forgatókönyv tömeges műveletet használ az adatbázison.
Ha ez az első tapasztalata a C#-függvények használatában, olvassa el a Azure Functions C#-fejlesztői referenciá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 meg. A projektet egy Azure-beli függvényalkalmazásban is közzé kell tennie.
Ez a cikk egy Transact-SQL-parancsot mutat be, amely tömeges tisztítási műveletet hajt végre az AdventureWorksLT mintaadatbázis SalesOrderHeader táblájában. Az AdventureWorksLT mintaadatbázis létrehozásához hajtsa végre az Adatbázis létrehozása Azure SQL adatbázisban a 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 a SQL Database példány helyi számítógépről való eléréséhez.
Kapcsolatadatok lekérése
Le kell kérnie az adatbázis kapcsolati sztring, amelyet az Adatbázis létrehozása Azure SQL-adatbázisban a Azure Portal használatával végzett.
Jelentkezzen be az Azure Portal.
A bal oldali menüben válassza az SQL-adatbázisok lehetőséget, majd az SQL-adatbázisok lapon válassza ki az adatbázist.
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. Azure SQL Managed Instance nyilvános végpont kapcsolati sztring másolása.
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 gyakorlatként tárolja a kapcsolati sztringeket és más titkos kódokat a függvényalkalmazás beállításaiban. 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ásai közvetlenül a Visual Studióból érhetők el.
Az alkalmazást korábban közzé kell 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 projektjére, és válassza a Közzététel parancsot.
A Közzététel lapon válassza a három pontot (
...
) az Üzemeltetés területen, majd válassza a Kezelés Azure App Service beállítások 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 neve területen írja be
sqldb_connection
a értéket, majd kattintson az OK gombra.Az új sqldb_connection beállításban illessze be az előző szakaszban másolt kapcsolati sztring a Helyi mezőbe, és cserélje le
{your_username}
a és{your_password}
a helyőrzőket valós értékekre. Válassza a Helyi érték beszúrása lehetőséget a frissített érték Távoli mezőbe másolásához, majd kattintson az OK gombra.A kapcsolati sztringeket a rendszer titkosítva tárolja az Azure-ban (távoli). A titkos kódok kiszivárgásának megakadályozása érdekében a local.settings.json projektfájlt (Local) ki kell zárni a verziókövetésbő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 szükséges a SQL Database való csatlakozáshoz.
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 projektjére, és válassza a Manage NuGet Packages (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 a SQL Database 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 projektjére, és válassza azÚj Azure-függvényhozzáadása> lehetőséget.
Ha a Azure Functions sablon van kijelölve, 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ó , 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ő using 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, hogy frissítse az
Status
oszlopot a szállítási dátum alapján. Az időzítő eseményindítóval kapcsolatos további információkért lásd: Időzítő eseményindító Azure Functions.Nyomja le az F5 billentyűt a függvényalkalmazás elindításához. Megnyílik a Azure Functions Core Tools végrehajtási ablaka a Visual Studio mögött.
Az indítás után 15 másodperccel fut a függvény. Figyelje meg a kimenetet, és jegyezze fel 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 a
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. Arról is gondoskodnia kell, hogy a függvényalkalmazás hozzáférhessen a Azure SQL Adatbázishoz vagy Azure SQL Managed Instance. További információért tekintse meg az alábbi hivatkozások egyikét a Azure SQL típusa alapján:
Következő lépések
A következő lépésben megtudhatja, hogyan használhatja. 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 a következő 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.