Azure İşlevleri için Azure SQL bağlamalarına genel bakış

Bu makale kümesinde, Azure İşlevleri'de Azure SQL bağlamalarıyla çalışma açıklanmaktadır. Azure İşlevleri, Azure SQL ve SQL Server ürünleri için giriş bağlamalarını, çıkış bağlamalarını ve işlev tetikleyicisini destekler.

Eylem Tür
SQL tablosunda değişiklik algılandığında bir işlevi tetikleme SQL tetikleyicisi
Veritabanından veri okuma Giriş bağlaması
Verileri veritabanına kaydetme Çıkış bağlaması

Uzantıyı yükleme

Yüklediğiniz NuGet uzantısı, işlev uygulamanızda kullandığınız C# moduna bağlıdır:

İşlevler yalıtılmış bir C# çalışan işleminde yürütülür. Daha fazla bilgi edinmek için bkz. Yalıtılmış çalışan işleminde C# Azure İşlevleri çalıştırma kılavuzu.

Bu NuGet paketini yükleyerek uzantıyı projenize ekleyin.

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

Microsoft.Azure.Functions.Worker.Extensions.Sql paketinin önizleme sürümünü kullanmak için komutuna --prerelease bayrağını ekleyin. önizleme işlevselliğini Azure İşlevleri SQL Uzantıları yayın sayfasında görüntüleyebilirsiniz.

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

Not

Azure İşlevleri için Azure SQL bağlamalarının önizleme sürümleri arasında hataya neden olan değişiklikler, aynı veritabanını hedefleyen tüm İşlevlerin SQL uzantı paketinin aynı sürümünü kullanmasını gerektirir.

Paket yükleme

SQL bağlamaları uzantısı, host.json proje dosyanızda belirtilen v4 uzantı paketinin bir parçasıdır.

Uzantı paketi, dosyanızda host.json aşağıdaki kodla belirtilir:

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

İşlevler çalışma zamanı

Paket yükleme

SQL bağlamaları uzantısı, host.json proje dosyanızda belirtilen v4 uzantı paketinin bir parçasıdır.

Uzantı paketi, dosyanızda host.json aşağıdaki kodla belirtilir:

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

Paket yükleme

SQL bağlamaları uzantısı, host.json proje dosyanızda belirtilen v4 uzantı paketinin bir parçasıdır.

Uzantı paketi, dosyanızda host.json aşağıdaki kodla belirtilir:

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

Paketleri güncelleştirme

Aşağıdaki kod parçacığında görüldüğü gibi Java Azure İşlevleri projenizdeki dosyaya pom.xml yönelik bir güncelleştirmeyle işlev projenize SQL bağlamaları için Java kitaplığını ekleyin:

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

Önizleme uzantısı paketini, aşağıdaki kod parçacığında görüldüğü gibi Java Azure İşlevleri projenizdeki dosyaya yönelik bir güncelleştirmeyle pom.xml birlikte kullanabilirsiniz:

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

SQL bağlantı dizesi

Azure İşlevleri için Azure SQL bağlamaları, tüm bağlamalarda ve tetikleyicilerde bağlantı dizesi için gerekli bir özelliğe sahiptir. Bunlar bağlantı dizesi Microsoft.Data.SqlClient kitaplığına geçirir ve SqlClient Bağlan ionString belgelerinde tanımlandığı gibi bağlantı dizesi destekler. Önemli anahtar sözcükler şunlardır:

  • Authentication Bir işlevin Active Directory Yönetilen Kimliği de dahil olmak üzere Microsoft Entra Id ile Azure SQL'e bağlanmasına izin verir
  • Command Timeout bir işlevin sorguyu sonlandırmadan önce belirtilen süreyi saniye cinsinden beklemesine izin verir (varsayılan 30 saniye)
  • ConnectRetryCountbir işlevin otomatik olarak ek yeniden bağlanma denemeleri yapmasına izin verir; özellikle Azure SQL Veritabanı sunucusuz katman için geçerlidir (varsayılan 1)
  • Pooling bir işlevin veritabanı bağlantılarını yeniden kullanmasına izin verir ve bu da performansı geliştirebilir (varsayılan true). Bağlantı havuzu için ek ayarlar arasında Connection Lifetime, Max Pool Sizeve Min Pool Sizebulunur. ADO.NET belgelerinde bağlantı havuzu oluşturma hakkında daha fazla bilgi edinin

Dikkat edilmesi gereken noktalar

  • Azure SQL bağlaması İşlevler çalışma zamanının 4.x ve sonraki sürümlerini destekler.
  • Azure SQL bağlamalarının kaynak kodu bu GitHub deposunda bulunabilir.
  • Bu bağlama bir Azure SQL veya SQL Server veritabanına bağlantı gerektirir.
  • Veri türü NTEXTTEXT, veya IMAGE sütunlarını içeren tablolara yönelik çıkış bağlamaları desteklenmez ve veri upsert'leri başarısız olur. Bu türler SQL Server'ın gelecekteki bir sürümünde kaldırılacaktır ve bu Azure İşlevleri bağlaması tarafından kullanılan işlevle OPENJSON uyumlu değildir.

Örnekler

Azure SQL bağlamaları GitHub deposunda bulunan C#, Java, JavaScript, PowerShell ve Python örneklerine ek olarak Azure Örnekleri'nde daha fazlasını bulabilirsiniz:

Sonraki adımlar