Aracılığıyla paylaş


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

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ı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.
  • 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:

Sonraki adımlar