Připojení ke službě Azure SQL Database pomocí Azure Functions
V tomto článku se dozvíte, jak pomocí služby Azure Functions vytvořit naplánovanou úlohu, která se připojuje k Azure SQL Database nebo spravované instanci Azure SQL. Kód funkce vyčistí řádky v tabulce v databázi. Nová funkce jazyka C# se vytvoří na základě předem definované šablony triggeru časovače v sadě Visual Studio 2019. Pokud chcete tento scénář podporovat, musíte také nastavit databázi připojovací řetězec jako nastavení aplikace v aplikaci funkcí. Pro spravovanou instanci Azure SQL musíte povolit veřejný koncový bod , aby se mohl připojit z Azure Functions. Tento scénář používá hromadnou operaci s databází.
Pokud se jedná o vaše první zkušenosti s funkcemi jazyka C#, měli byste si přečíst referenční informace pro vývojáře v jazyce C#.
Požadavky
Dokončete kroky v článku Vytvoření první funkce pomocí sady Visual Studio k vytvoření místní aplikace funkcí, která cílí na verzi 2.x nebo novější verzi modulu runtime. Projekt musíte také publikovat do aplikace funkcí v Azure.
Tento článek ukazuje příkaz Transact-SQL, který provádí hromadnou operaci vyčištění v tabulce SalesOrderHeader v ukázkové databázi AdventureWorksLT. Pokud chcete vytvořit ukázkovou databázi AdventureWorksLT, proveďte kroky v článku Vytvoření databáze ve službě Azure SQL Database pomocí webu Azure Portal.
Musíte přidat pravidlo brány firewall na úrovni serveru pro veřejnou IP adresu počítače, který používáte pro účely tohoto rychlého startu. Toto pravidlo se vyžaduje pro přístup k instanci služby SQL Database z místního počítače.
Získání informací o připojení
Potřebujete získat připojovací řetězec pro databázi, kterou jste vytvořili po dokončení vytvoření databáze ve službě Azure SQL Database pomocí webu Azure Portal.
Přihlaste se k portálu Azure.
V nabídce vlevo vyberte databáze SQL a na stránce Databáze SQL vyberte svou databázi.
V části Nastavení vyberte Připojovací řetězce a zkopírujte kompletní ADO.NET připojovací řetězec. Pro službu Azure SQL Managed Instance zkopírujte připojovací řetězec pro veřejný koncový bod.
Nastavit připojovací řetězec
Function App hostuje provádění vašich funkcí v Azure. Osvědčeným postupem zabezpečení je ukládat připojovací řetězec a další tajné kódy do nastavení aplikace funkcí. Použití nastavení aplikace brání náhodnému zpřístupnění připojovací řetězec s vaším kódem. K nastavení aplikace pro vaši aplikaci funkcí máte přístup přímo ze sady Visual Studio.
Musíte mít dříve publikovanou aplikaci do Azure. Pokud jste to ještě neudělali, publikujte aplikaci funkcí do Azure.
V Průzkumník řešení klikněte pravým tlačítkem na projekt aplikace funkcí a zvolte Publikovat.
Na stránce Publikovat vyberte tři tečky (
...
) v oblasti Hostování a zvolte Spravovat nastavení služby Aplikace Azure.V nastavení aplikace vyberte Přidat nastavení, v části Nový typ
sqldb_connection
nastavení aplikace a vyberte OK.V novém nastavení sqldb_connection vložte připojovací řetězec, které jste zkopírovali v předchozí části, do pole Místní a nahraďte
{your_username}
a{your_password}
zástupné symboly skutečnými hodnotami. Chcete-li zkopírovat aktualizovanou hodnotu do pole Vzdálené, vyberte možnost Vložit hodnotu z místního prostředí a pak vyberte OK.Připojovací řetězec se ukládají zašifrované v Azure (Remote). Aby se zabránilo úniku tajných kódů, měl by být soubor projektu local.settings.json (místní) vyloučen ze správy zdrojového kódu, například pomocí souboru .gitignore.
Přidání balíčku SqlClient do projektu
Musíte přidat balíček NuGet, který obsahuje knihovnu SqlClient. Tato knihovna přístupu k datům je potřebná pro připojení ke službě SQL Database.
Otevřete projekt místní aplikace funkcí v sadě Visual Studio 2022.
V Průzkumník řešení klikněte pravým tlačítkem na projekt aplikace funkcí a zvolte Spravovat balíčky NuGet.
Na kartě Procházet vyhledejte a po nalezení vyberte
Microsoft.Data.SqlClient
.Na stránce Microsoft.Data.SqlClient vyberte verzi
5.1.0
a potom klikněte na nainstalovat.Po dokončení instalace zkontrolujte změny a potom kliknutím na OK zavřete okno Náhled.
Pokud se zobrazí okno Souhlas s podmínkami licence, klikněte na Souhlasím.
Teď můžete přidat kód funkce jazyka C#, který se připojuje k databázi SQL.
Přidání funkce aktivované časovačem
V Průzkumník řešení klikněte pravým tlačítkem na projekt aplikace funkcí a zvolte Přidat>novou funkci Azure.
Když vyberete šablonu Azure Functions , pojmenujte novou položku podobně jako
DatabaseCleanup.cs
a vyberte Přidat.V dialogovém okně Nová funkce Azure vyberte trigger časovače a pak přidejte. Toto dialogové okno vytvoří soubor kódu pro funkci aktivovanou časovačem.
Otevřete nový soubor kódu a na začátek souboru přidejte následující příkazy using:
using Microsoft.Data.SqlClient; using System.Threading.Tasks;
Nahraďte existující
Run
funkci následujícím kódem:[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"); } } }
Tato funkce se spustí každých 15 sekund, aby se sloupec aktualizoval
Status
na základě data expedice. Další informace o triggeru Časovač najdete v tématu Trigger časovače pro Azure Functions.Stisknutím klávesy F5 spusťte aplikaci funkcí. Otevře se okno spouštění nástrojů Azure Functions Core Tools za sadou Visual Studio.
Po spuštění se funkce spustí po 15 sekundách. Podívejte se na výstup a poznamenejte si počet řádků aktualizovaných v tabulce SalesOrderHeader .
Při prvním spuštění byste měli aktualizovat 32 řádků dat. Následující spuštění neaktualizuje žádné řádky dat, pokud neuděláte změny dat tabulky SalesOrderHeader tak, aby byly
UPDATE
příkazem vybrány další řádky.
Pokud plánujete tuto funkci publikovat, nezapomeňte změnit TimerTrigger
atribut na rozumnější plán cron než každých 15 sekund. Musíte se také ujistit, že vaše aplikace funkcí má přístup ke službě Azure SQL Database nebo Azure SQL Managed Instance. Další informace najdete na jednom z následujících odkazů na základě vašeho typu Azure SQL:
Další kroky
V dalším kroku se dozvíte, jak používat. Funkce s Logic Apps pro integraci s dalšími službami
Další informace o funkcích najdete v následujících článcích:
-
Referenční informace pro vývojáře Azure Functions
Referenční informace pro programátory týkající se kódování funkcí a definování triggerů a vazeb. -
Testování Azure Functions
Toto téma popisuje různé nástroje a techniky pro testování funkcí.