Udostępnij za pośrednictwem


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 Directory
  • Command 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ślne true). Dodatkowe ustawienia puli połączeń obejmują Connection Lifetime, Max Pool Sizei Min 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 NTEXTdanych , TEXTlub IMAGE 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:

Następne kroki