Overzicht van Azure SQL-bindingen voor Azure Functions
In deze set artikelen wordt uitgelegd hoe u kunt werken met Azure SQL-bindingen in Azure Functions. Azure Functions ondersteunt invoerbindingen, uitvoerbindingen en een functietrigger voor de Azure SQL- en SQL Server-producten.
Actie | Type |
---|---|
Een functie activeren wanneer een wijziging wordt gedetecteerd in een SQL-tabel | SQL-trigger |
Gegevens uit een database lezen | Invoerbinding |
Gegevens opslaan in een database | Uitvoerbinding |
De extensie installeren
Het NuGet-extensiepakket dat u installeert, is afhankelijk van de C#-modus die u gebruikt in uw functie-app:
Functies worden uitgevoerd in een geïsoleerd C#-werkproces. Zie De handleiding voor het uitvoeren van C# Azure Functions in een geïsoleerd werkproces voor meer informatie.
Voeg de extensie toe aan uw project door dit NuGet-pakket te installeren.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql
Als u een preview-versie van het pakket Microsoft.Azure.Functions.Worker.Extensions.Sql wilt gebruiken, voegt u de --prerelease
vlag toe aan de opdracht. U kunt preview-functionaliteit bekijken op de releasepagina van Azure Functions SQL Extensions.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql --prerelease
Notitie
Belangrijke wijzigingen tussen preview-releases van de Azure SQL-bindingen voor Azure Functions vereisen dat alle functies die gericht zijn op dezelfde database, dezelfde versie van het SQL-extensiepakket gebruiken.
Bundel installeren
De extensie SQL-bindingen maakt deel uit van de v4-extensiebundel, die is opgegeven in uw host.json projectbestand.
De extensiebundel wordt opgegeven met de volgende code in uw host.json
bestand:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Functions-runtime
Bundel installeren
De extensie SQL-bindingen maakt deel uit van de v4-extensiebundel, die is opgegeven in uw host.json projectbestand.
De extensiebundel wordt opgegeven met de volgende code in uw host.json
bestand:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Bundel installeren
De extensie SQL-bindingen maakt deel uit van de v4-extensiebundel, die is opgegeven in uw host.json projectbestand.
De extensiebundel wordt opgegeven met de volgende code in uw host.json
bestand:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Pakketten bijwerken
Voeg de Java-bibliotheek voor SQL-bindingen toe aan uw functions-project met een update voor het pom.xml
bestand in uw Java Azure Functions-project, zoals te zien is in het volgende codefragment:
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-sql</artifactId>
<version>2.1.0</version>
</dependency>
U kunt de preview-extensiebundel gebruiken met een update van het pom.xml
bestand in uw Java Azure Functions-project, zoals te zien is in het volgende codefragment:
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-sql</artifactId>
<version>2.1.0-preview</version>
</dependency>
SQL-verbindingsreeks
Belangrijk
Het wordt sterk aanbevolen om beheerde identiteiten te gebruiken voor toegang tot een Azure SQL Database met Azure Functions. Beheerde identiteiten maken uw app veiliger door geheimen uit uw toepassingsimplementaties te elimineren, zoals referenties in de verbindingsreeks s, servernamen en poorten die worden gebruikt. In deze zelfstudie leert u hoe u beheerde identiteiten gebruikt, een functie-app verbinden met Azure SQL met beheerde identiteiten en SQL-bindingen.
Azure SQL-bindingen voor Azure Functions hebben een vereiste eigenschap voor de verbindingsreeks op alle bindingen en triggers. Deze geven de verbindingsreeks door aan de bibliotheek Microsoft.Data.SqlClient en ondersteunen de verbindingsreeks zoals gedefinieerd in de sqlClient ConnectionString-documentatie. Belangrijke trefwoorden zijn:
Authentication
staat een functie toe om verbinding te maken met Azure SQL met Microsoft Entra ID, waaronder Active Directory Managed IdentityCommand Timeout
staat een functie toe om te wachten op de opgegeven hoeveelheid tijd in seconden voordat een query wordt beëindigd (standaard 30 seconden)ConnectRetryCount
staat een functie toe om automatisch extra pogingen tot opnieuw verbinding te maken, met name van toepassing op de serverloze laag van Azure SQL Database (standaard 1)Pooling
staat een functie toe om verbindingen met de database opnieuw te gebruiken, waardoor de prestaties (standaardtrue
) kunnen worden verbeterd. Aanvullende instellingen voor groepsgewijze verbindingen zijn onder andereConnection Lifetime
,Max Pool Size
enMin Pool Size
. Meer informatie over groepsgewijze verbindingen vindt u in de ADO.NET documentatie
Overwegingen
- Azure SQL-binding ondersteunt versie 4.x en hoger van de Functions-runtime.
- De broncode voor de Azure SQL-bindingen vindt u in deze GitHub-opslagplaats.
- Voor deze binding is verbinding met een Azure SQL- of SQL Server-database vereist.
- Uitvoerbindingen voor tabellen met kolommen met gegevenstypen
NTEXT
,TEXT
ofIMAGE
worden niet ondersteund en upserts van gegevens mislukken. Deze typen worden verwijderd in een toekomstige versie van SQL Server en zijn niet compatibel met deOPENJSON
functie die wordt gebruikt door deze Azure Functions-binding. - Gebruik beheerde identiteiten in plaats van gebruikersnamen en wachtwoorden.
- Overweeg het gebruik van een Azure Key Value om toepassingsinstellingen op te slaan.
Voorbeelden
Naast de voorbeelden voor C#, Java, JavaScript, PowerShell en Python die beschikbaar zijn in de GitHub-opslagplaats voor Azure SQL-bindingen, zijn er meer beschikbaar in Azure-voorbeelden:
- C# ToDo API-voorbeeld met Azure SQL-bindingen
- SQL-bindingen gebruiken in Azure Stream Analytics
- Gegevens verzenden vanuit Azure SQL met Python