Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
Bu bağlama uzantısını uygulamanızda kullanabilmek için projenizin kökündeki host.json dosyasının şu extensionBundle başvuruyu içerdiğinden emin olun:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Bu örnekte, version değeri [4.0.0, 5.0.0) İşlevler konağına en az 4.0.0 ama daha küçük 5.0.0olan ve 4.x'in tüm olası sürümlerini içeren bir paket sürümü kullanma talimatı verir. Bu gösterimi, uygulamanızı v4.x uzantı paketinin kullanılabilir en son ikincil sürümünde etkili bir şekilde korur.
Mümkün olduğunda, en son uzantı paketi ana sürümünü kullanmanız ve çalışma zamanının en son ikincil sürümü otomatik olarak korumasına izin vermelisiniz. Uzantı paketleri yayın sayfasında en son paketin içeriğini görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Azure İşlevleri uzantı paketleri.
Uygulamanızın önizleme işlevselliğini kullanması gerekiyorsa, bunun yerine önizleme paketinin en son sürümüne başvurmanız gerekir. Daha fazla bilgi için bkz. Önizleme uzantısı paketleriyle çalışma.
önizleme işlevselliğini Azure İşlevleri SQL Uzantıları yayın sayfasında görüntüleyebilirsiniz.
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.
Paketleri güncelleştirme
Bu örnekte olduğu gibi, projenizdeki dosyaya bir güncelleştirmeyle pom.xml ekleyin:
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-sql</artifactId>
<version>2.1.0</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 ConnectionString belgelerinde tanımlandığı gibi bağlantı dizesi destekler.
Önemli
En iyi güvenlik için, İşlevler ve Azure SQL Veritabanı arasındaki bağlantılar için yönetilen kimliklerle Microsoft Entra Id kullanmalısınız. Yönetilen kimlikler, bağlantı dizesi kimlik bilgileri, sunucu adları ve kullanılan bağlantı noktaları gibi uygulama dağıtımlarınızdaki gizli dizileri ortadan kaldırarak uygulamanızı daha güvenli hale getirir. Bu öğreticide yönetilen kimlikleri kullanmayı öğrenebilirsiniz: Yönetilen kimlik ve SQL bağlamaları ile bir işlev uygulamasını Azure SQL'e bağlama.
Önemli anahtar sözcükler şunlardır:
-
Authentication: bir işlevin Microsoft Entra Id ve yönetilen kimliklerle Azure SQL'e bağlanmasına izin verir. Daha fazla bilgi için bkz . Yönetilen kimlik ve SQL bağlamalarıyla işlev uygulamasını Azure SQL'e bağlama. -
Command timeout: bir işlevin sorguyu sonlandırmadan önce belirtilen süreyi saniye cinsinden beklemesine izin verir (varsayılan 30 saniye) -
ConnectRetryCount: özellikle Azure SQL Veritabanı sunucusuz katman (varsayılan 1) için geçerli olmak üzere bir işlevin otomatik olarak ek yeniden bağlantı denemeleri yapmasına izin verir -
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 SizeveMin 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, veyaIMAGEsü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şlevleOPENJSONuyumlu değildir. - Kullanıcı adları ve parolalar yerine yönetilen kimlikleri kullanın.
- Uygulama ayarlarını depolamak için bir Azure Anahtar Değeri kullanmayı göz önünde bulundurun.
Ö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