Omówienie powiązań usługi Azure SQL dla usługi Azure Functions
W tym zestawie artykułów wyjaśniono, jak pracować z powiązaniami usługi Azure SQL w usłudze Azure Functions. Usługa Azure Functions obsługuje powiązania wejściowe, powiązania wyjściowe i wyzwalacz funkcji dla produktów Azure SQL i SQL Server.
Akcja | Typ |
---|---|
Wyzwalanie funkcji po wykryciu zmiany w tabeli SQL | Wyzwalacz SQL |
Odczytywanie danych z bazy danych | Powiązanie wejściowe |
Zapisywanie danych w bazie danych | Powiązanie wyjściowe |
Instalowanie rozszerzenia
Instalowany pakiet NuGet rozszerzenia zależy od trybu języka C#, którego używasz w aplikacji funkcji:
Funkcje są wykonywane w izolowanym procesie roboczym języka C#. Aby dowiedzieć się więcej, zobacz Przewodnik dotyczący uruchamiania usługi Azure Functions w języku C# w izolowanym procesie roboczym.
Dodaj rozszerzenie do projektu, instalując ten pakiet NuGet.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql
Aby użyć wersji zapoznawczej pakietu Microsoft.Azure.Functions.Worker.Extensions.Sql, dodaj flagę --prerelease
do polecenia . Funkcje w wersji zapoznawczej można wyświetlić na stronie wydania rozszerzeń SQL usługi Azure Functions.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql --prerelease
Uwaga
Zmiany powodujące niezgodność między wersjami zapoznawczymi powiązań usługi Azure SQL dla usługi Azure Functions wymagają, aby wszystkie funkcje przeznaczone dla tej samej bazy danych używały tej samej wersji pakietu rozszerzenia SQL.
Instalowanie pakietu
Rozszerzenie powiązań SQL jest częścią pakietu rozszerzenia w wersji 4, który jest określony w pliku projektu host.json.
Pakiet rozszerzeń jest określony przez następujący kod w host.json
pliku:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Środowisko uruchomieniowe usługi Functions
Instalowanie pakietu
Rozszerzenie powiązań SQL jest częścią pakietu rozszerzenia w wersji 4, który jest określony w pliku projektu host.json.
Pakiet rozszerzeń jest określony przez następujący kod w host.json
pliku:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Instalowanie pakietu
Rozszerzenie powiązań SQL jest częścią pakietu rozszerzenia w wersji 4, który jest określony w pliku projektu host.json.
Pakiet rozszerzeń jest określony przez następujący kod w host.json
pliku:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Aktualizowanie pakietów
Dodaj bibliotekę Języka Java dla powiązań SQL do projektu funkcji z aktualizacją pom.xml
pliku w projekcie usługi Azure Functions w języku Java, jak pokazano w poniższym fragmencie kodu:
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-sql</artifactId>
<version>2.1.0</version>
</dependency>
Możesz użyć pakietu rozszerzeń w wersji zapoznawczej z aktualizacją pom.xml
pliku w projekcie usługi Azure Functions w języku Java, jak pokazano w poniższym fragmencie kodu:
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-sql</artifactId>
<version>2.1.0-preview</version>
</dependency>
Parametry połączenia SQL
Ważne
Zdecydowanie zaleca się używanie tożsamości zarządzanych do uzyskiwania dostępu do usługi Azure SQL Database za pomocą usługi Azure Functions. Tożsamości zarządzane sprawiają, że aplikacja jest bezpieczniejsza, eliminując wpisy tajne z wdrożeń aplikacji, takie jak poświadczenia w parametry połączenia, nazwy serwerów i używane porty. W tym samouczku dowiesz się, jak używać tożsamości zarządzanych, połącz aplikację funkcji z usługą Azure SQL przy użyciu tożsamości zarządzanej i powiązań SQL.
Powiązania usługi Azure SQL dla usługi Azure Functions mają wymaganą właściwość dla parametry połączenia we wszystkich powiązaniach i wyzwalaczach. Przekazują one parametry połączenia do biblioteki Microsoft.Data.SqlClient i obsługują parametry połączenia zgodnie z definicją w dokumentacji sqlClient ConnectionString. Istotne słowa kluczowe obejmują:
Authentication
umożliwia funkcji nawiązywanie połączenia z usługą Azure SQL przy użyciu identyfikatora Entra firmy Microsoft, w tym tożsamości zarządzanej usługi Active DirectoryCommand Timeout
umożliwia funkcji oczekiwanie na określoną ilość czasu w sekundach przed zakończeniem zapytania (domyślnie 30 sekund)ConnectRetryCount
umożliwia funkcji automatyczne wykonywanie dodatkowych prób ponownego nawiązywania połączenia, szczególnie w przypadku warstwy bezserwerowej usługi Azure SQL Database (wartość domyślna 1)Pooling
umożliwia funkcji ponowne używanie połączeń z bazą danych, co może poprawić wydajność (ustawienie domyślnetrue
). Dodatkowe ustawienia puli połączeń obejmująConnection Lifetime
,Max Pool Size
iMin Pool Size
. Dowiedz się więcej o buforowaniu połączeń w dokumentacji ADO.NET
Kwestie wymagające rozważenia
- Powiązanie usługi Azure SQL obsługuje wersję 4.x i nowsze środowiska uruchomieniowego usługi Functions.
- Kod źródłowy powiązań usługi Azure SQL można znaleźć w tym repozytorium GitHub.
- To powiązanie wymaga łączności z bazą danych Azure SQL lub SQL Server.
- Powiązania wyjściowe względem tabel z kolumnami typów
NTEXT
danych ,TEXT
lubIMAGE
nie są obsługiwane, a upserts danych zakończy się niepowodzeniem. Te typy zostaną usunięte w przyszłej wersji programu SQL Server i nie są zgodne z funkcjąOPENJSON
używaną przez to powiązanie usługi Azure Functions. - Użyj tożsamości zarządzanych zamiast nazw użytkowników i haseł.
- Concider using an Azure Key Value to store application settings (Łączenie przy użyciu wartości klucza platformy Azure do przechowywania ustawień aplikacji).
Przykłady
Oprócz przykładów dla języków C#, Java, JavaScript, PowerShell i Python dostępnych w repozytorium GitHub powiązań usługi Azure SQL, więcej dostępnych jest w przykładach platformy Azure:
- Przykładowy interfejs API zadań do wykonania w języku C# z powiązaniami usługi Azure SQL
- Używanie powiązań SQL w usłudze Azure Stream Analytics
- Wysyłanie danych z usługi Azure SQL przy użyciu języka Python