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


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.

  1. Jelentkezzen be az Azure Portalra.

  2. 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.

  3. 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.

    Másolja az ADO.NET kapcsolati sztringet.

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.

  1. A Megoldáskezelő kattintson a jobb gombbal a függvényalkalmazás projektre, és válassza a Közzététel lehetőséget.

  2. 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.

    A függvényalkalmazás App Service-beállításainak kezelése.

  3. 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ábansqldb_connectionválassza az OK gombot.

    Adjon hozzá egy alkalmazásbeállítást a függvényalkalmazáshoz.

  4. 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.

    SQL-kapcsolati sztring beállítás hozzáadása.

    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.

  1. Nyissa meg a helyi függvényalkalmazás-projektet a Visual Studio 2022-ben.

  2. A Megoldáskezelő kattintson a jobb gombbal a függvényalkalmazás-projektre, és válassza a NuGet-csomagok kezelése lehetőséget.

  3. A Tallózás fülön keresse meg a(z) Microsoft.Data.SqlClient elemet, majd válassza ki.

  4. A Microsoft.Data.SqlClient lapon válassza ki a verziót5.1.0, majd kattintson a Telepítés gombra.

  5. 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.

  6. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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;
    
  5. 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.

  6. 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.

  7. 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.

    A függvénynaplók megtekintése.

    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: