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 verirCommand Timeout
bir işlevin sorguyu sonlandırmadan önce belirtilen süreyi saniye cinsinden beklemesine izin verir (varsayılan 30 saniye)ConnectRetryCount
bir 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ılantrue
). Bağlantı havuzu için ek ayarlar arasındaConnection Lifetime
,Max Pool Size
veMin Pool Size
bulunur. 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ü
NTEXT
TEXT
, veyaIMAGE
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şlevleOPENJSON
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:
- Azure SQL bağlamalarıyla C# ToDo API örneği
- Azure Stream Analytics'te SQL bağlamalarını kullanma
- Python ile Azure SQL'den veri gönderme