Översikt över Azure SQL-bindningar för Azure Functions

Den här uppsättningen artiklar beskriver hur du arbetar med Azure SQL-bindningar i Azure Functions. Azure Functions stöder indatabindningar, utdatabindningar och en funktionsutlösare för Azure SQL- och SQL Server-produkterna.

Åtgärd Typ
Utlösa en funktion när en ändring identifieras i en SQL-tabell SQL-utlösare
Läsa data från en databas Indatabindning
Spara data i en databas Utdatabindning

Installera tillägget

Vilket NuGet-tilläggspaket du installerar beror på vilket C#-läge du använder i funktionsappen:

Funktioner körs i en isolerad C#-arbetsprocess. Mer information finns i Guide för att köra C# Azure Functions i en isolerad arbetsprocess.

Lägg till tillägget i projektet genom att installera det här NuGet-paketet.

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql

Om du vill använda en förhandsversion av paketet Microsoft.Azure.Functions.Worker.Extensions.Sql lägger du till --prerelease flaggan i kommandot . Du kan visa förhandsversionsfunktioner på versionssidan för Azure Functions SQL-tillägg.

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql --prerelease

Kommentar

Icke-bakåtkompatibla ändringar mellan förhandsversioner av Azure SQL-bindningar för Azure Functions kräver att alla funktioner som riktar sig till samma databas använder samma version av SQL-tilläggspaketet.

Installera paket

För att kunna använda det här bindningstillägget i din app kontrollerar du att denhost.json filen i projektets rot innehåller den här extensionBundle referensen:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

I det här exemplet version instruerar värdet [4.0.0, 5.0.0) för Functions-värden att använda en paketversion som är minst 4.0.0 men mindre än 5.0.0, som innehåller alla potentiella versioner av 4.x. Den här notationen underhåller appen på den senaste tillgängliga delversionen av v4.x-tilläggspaketet.

När det är möjligt bör du använda den senaste huvudversionen av tilläggspaketet och låta körningen automatiskt behålla den senaste delversionen. Du kan visa innehållet i det senaste paketet på versionssidan för tilläggspaket. Mer information finns i Azure Functions-tilläggspaket.

Om din app behöver använda förhandsgranskningsfunktioner bör du i stället referera till den senaste versionen av förhandsgranskningspaketet. Mer information finns i Arbeta med paket med förhandsgranskningstillägg.

Du kan visa förhandsversionsfunktioner på versionssidan för Azure Functions SQL-tillägg.

Kommentar

Icke-bakåtkompatibla ändringar mellan förhandsversioner av Azure SQL-bindningar för Azure Functions kräver att alla funktioner som riktar sig till samma databas använder samma version av SQL-tilläggspaketet.

Uppdatera paket

Lägg till Azure Functions Java SQL Types-paketet i ditt funktionsprojekt med en uppdatering av pom.xml filen i projektet, som i det här exemplet:

<dependency>
    <groupId>com.microsoft.azure.functions</groupId>
    <artifactId>azure-functions-java-library-sql</artifactId>
    <version>2.1.0</version>
</dependency>

Connections

Egenskapen connectionStringSetting är inställd på en nyckel i applikationsinställningarna som returnerar ett värde som används av Functions-runtimen för att ansluta till Azure SQL- eller SQL Server-databasen som används av tillägget. Värdet på anslutningsegenskapsinställningen beror på typen av anslutning:

  • Managed identity connection: Egenskapen connectionStringSetting returnerar en reťazec pripojenia som används Authentication=služba Active Directory Managed Identity för autentisering utan hemligheter. Du kan använda antingen en systemtilldelad eller användartilldelad hanterad identitet. För mer information, se Koppla en funktionsapp till Azure SQL med hanterad identitet och Definiera identitetsanslutningar.
  • Key Vault-referens: Egendomsinställningen connectionStringSetting returnerar en Azure Key Vault-referens till platsen där reťazec pripojenia underhålls centralt. För mer information, se Definiera Key Vault-anslutningar.
  • App Configuration Reference: Egenskapsinställningen connectionStringSetting returnerar en Azure App Configuration-referens som returnerar en reťazec pripojenia eller en Key Vault-referens. För mer information, se Azure App Configuration i artikeln om anslutningar.
  • Connection string: Egenskapsinställningen connectionStringSetting returnerar den faktiska SQL-reťazec pripojenia. Eftersom reťazec pripojenia kan innehålla referenser bör du använda en managed identity connection eller åtminstone lagra reťazec pripojenia i Key Vault. För mer information, se Definiera kopplingar.

För att lära dig mer om bindningsanslutningar, se Hantera anslutningar i Azure Functions.

reťazec pripojenia skickas vidare till Microsoft. Data.SqlClient och stöder alla nyckelord som definieras i dokumentationen SqlClient ConnectionString. Viktiga nyckelord är:

  • Authentication: Anslut till Azure SQL med Microsoft Entra ID. Ställ in på služba Active Directory Managed Identity för managed identitys. För mer information, se Koppla en funktionsapp till Azure SQL med hanterad identitet.
  • Command Timeout: Vänta en viss tid i sekunder innan du avslutar en fråga (standard 30 sekunder).
  • ConnectRetryCount: Gör automatiskt ytterligare återanslutningsförsök, särskilt tillämpligt på Azure SQL Database serverless tier (standard 1).
  • Pooling: Återanvänd anslutningar till databasen för att förbättra prestandan (standard true). Ytterligare inställningar för anslutningspooler är Connection Lifetime, Max Pool Sizeoch Min Pool Size. Läs mer i ADO.NET-dokumentationen.

Att tänka på

  • Azure SQL-bindning stöder version 4.x och senare av Functions-körningen.
  • Källkod för Azure SQL-bindningar finns på den här GitHub-lagringsplatsen.
  • Den här bindningen kräver anslutning till en Azure SQL- eller SQL Server-databas.
  • Utdatabindningar mot tabeller med kolumner med datatyper NTEXT, TEXTeller IMAGE stöds inte och datauppserterter misslyckas. Dessa typer tas bort i en framtida version av SQL Server och är inte kompatibla med funktionen OPENJSON som används av den här Azure Functions-bindningen.
  • Använd hanterade identiteter i stället för användarnamn och lösenord.
  • Överväg att använda ett Azure Key Value för att lagra programinställningar.

Exempel

Utöver exemplen för C#, Java, JavaScript, PowerShell och Python som är tillgängliga på GitHub-lagringsplatsen för Azure SQL-bindningar finns det fler tillgängliga i Azure-exempel:

Nästa steg