Aracılığıyla paylaş


Azure İşlevleri için Azure Cosmos DB tetikleyicilerine ve bağlamalarına genel bakış

Bu makale kümesinde , Azure İşlevleri'nde Azure Cosmos DB bağlamalarıyla çalışma açıklanmaktadır. Azure İşlevleri, Azure Cosmos DB için tetikleyici, giriş ve çıkış bağlamalarını destekler.

Eylem Tür
Azure Cosmos DB belgesi oluşturulduğunda veya değiştirildiğinde işlev çalıştırma Tetikleyici
Azure Cosmos DB belgesini okuma Giriş bağlaması
Azure Cosmos DB belgesinde değişiklikleri kaydetme Çıkış bağlaması

Önemli

Azure Cosmos DB bağlama uzantısının bu sürümü , Azure İşlevleri sürüm 4.x'i destekler. Uygulamanız hala İşlevler çalışma zamanının 1.x sürümünü kullanıyorsa bkz. Azure İşlevleri 1.x için Azure Cosmos DB bağlamaları. İşlevler v1.x çalışma zamanında, bu bağlama ilk olarak olarak olarak adlandırıldı DocumentDB.

Desteklenen API'ler

Bu tabloda işlev kodunuzdan çeşitli Azure Cosmos DB API'lerine nasıl bağlandığınız gösterilir:

API Tavsiye
NoSQL için Azure Cosmos DB Azure Cosmos DB bağlama uzantısını kullanma
MongoDB için Azure Cosmos DB Yerel istemci SDK'sı kullanın.
Tablo için Azure Cosmos DB Azure Tabloları bağlama uzantısının 5.x veya sonraki bir sürümünü kullanın.
Apache Cassandra için Azure Cosmos DB Yerel istemci SDK'sı kullanın.
Apache Gremlin için Azure Cosmos DB (Graph API) Yerel istemci SDK'sı kullanma
PostgreSQL için Azure Cosmos DB Yerel istemci SDK'sı kullanın.

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.

Uzantıyı yükleme işlemi uzantı sürümüne bağlı olarak değişir:

Azure Cosmos DB bağlama uzantısının bu sürümü gizli dizi yerine kimlik kullanarak bağlanma özelliğini tanıtır. İşlev uygulamalarınızı yönetilen kimliklerle yapılandırma öğreticisi için kimlik tabanlı bağlantılarla işlev uygulaması oluşturma öğreticisine bakın.

NuGet paketi sürüm 4.x'i yükleyerek uzantıyı projenize ekleyin.

Uygulamanızı F# kullanarak yazıyorsanız, bu uzantıyı uygulamanın başlangıç yapılandırmasının bir parçası olarak da yapılandırmanız gerekir. veya ConfigureFunctionsWorkerDefaults()çağrısındaConfigureFunctionsWebApplication(), parametre alan bir IFunctionsWorkerApplication temsilci ekleyin. Ardından bu temsilcinin gövdesinde nesnesine çağrı ConfigureCosmosDBExtension() yapın:

let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
    appBuilder.ConfigureCosmosDBExtension() |> ignore
) |> ignore

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.

Azure Cosmos DB SDK'sında şema değişiklikleri nedeniyle, Azure Cosmos DB uzantısının 4.x sürümü Java işlevleri için azure-functions-java-library V3.0.0 gerektirir.

Bağlama türleri

.NET için desteklenen bağlama türleri, aşağıdakilerden biri olabilecek uzantı sürümüne ve C# yürütme moduna bağlıdır:

Yalıtılmış çalışan işlem sınıfı kitaplığı derlenmiş C# işlevi çalışma zamanından yalıtılmış bir işlemde çalışır.

Modun ve sürümün bağlama türü ayrıntılarını görmek için bir sürüm seçin.

Yalıtılmış çalışan işlemi, aşağıdaki tablolara göre parametre türlerini destekler. Microsoft.Azure.Cosmos'tan türlere bağlama desteği önizleme aşamasındadır.

Cosmos DB tetikleyicisi

İşlevin tek bir belgeyi işlemesini istediğinizde Cosmos DB tetikleyicisi aşağıdaki türlere bağlanabilir:

Tür Açıklama
JSON serileştirilebilir türler İşlevler, Cosmos DB değişiklik akışından belgenin JSON verilerinin seri durumdan çıkarılarak düz eski bir CLR nesnesi (POCO) türüne dönüştürülmesi için çalışır.

İşlevin bir grup belgeyi işlemesini istediğinizde, Cosmos DB tetikleyicisi aşağıdaki türlere bağlanabilir:

Tür Açıklama
IEnumerable<T>burada T JSON serileştirilebilir bir türdür Toplu işe dahil edilen varlıkların numaralandırması. Her girdi Cosmos DB değişiklik akışından bir belgeyi temsil eder.

Cosmos DB giriş bağlaması

İşlevin tek bir belgeyi işlemesini istediğinizde Cosmos DB giriş bağlaması aşağıdaki türlere bağlanabilir:

Tür Açıklama
JSON serileştirilebilir türler İşlevler, belgenin JSON verilerini seri durumdan çıkararak düz eski bir CLR nesnesi (POCO) türüne dönüştürmeye çalışır.

İşlevin bir sorgudan birden çok belgeyi işlemesini istediğinizde, Cosmos DB giriş bağlaması aşağıdaki türlere bağlanabilir:

Tür Açıklama
IEnumerable<T>burada T JSON serileştirilebilir bir türdür Sorgu tarafından döndürülen varlıkların numaralandırması. Her girdi bir belgeyi temsil eder.
CosmosClient1 Cosmos DB hesabına bağlı bir istemci.
Veritabanı1 Cosmos DB veritabanına bağlı bir istemci.
Kapsayıcı1 Cosmos DB kapsayıcısına bağlı bir istemci.

1 Bu türleri kullanmak için Microsoft.Azure.Functions.Worker.Extensions.CosmosDB 4.4.0 veya sonraki sürümlerine ve SDK türü bağlamalarına yönelik ortak bağımlılıklara başvurmanız gerekir.

Cosmos DB çıkış bağlaması

İşlevin tek bir belgeye yazmasını istediğinizde Cosmos DB çıkış bağlaması aşağıdaki türlere bağlanabilir:

Tür Açıklama
JSON serileştirilebilir türler Belgenin JSON içeriğini temsil eden nesne. İşlevler, düz eski bir CLR nesnesi (POCO) türünü JSON verilerine seri hale getirme girişiminde bulunur.

İşlevin birden çok belgeye yazmasını istediğinizde Cosmos DB çıkış bağlaması aşağıdaki türlere bağlanabilir:

Tür Açıklama
T[] burada T JSON serileştirilebilir türüdür Birden çok belge içeren bir dizi. Her girdi bir belgeyi temsil eder.

Diğer çıkış senaryoları için doğrudan Microsoft.Azure.Cosmos'un diğer türleriyle CosmosClient oluşturun ve kullanın. Azure SDK'dan bir istemci türü oluşturmak için bağımlılık ekleme kullanma örneği için bkz . Azure istemcilerini kaydetme.

SDK Bağlama Türleri

Azure Cosmos için SDK Türü desteği Önizleme aşamasındadır. Python'da Cosmos için SDK Türlerini kullanmaya başlamak için CosmosDB için Python SDK Bağlamaları Örneğini izleyin.

Önemli

SDK türü bağlamalarını kullanmak için Python v2 programlama modeli gerekir.


Bağlama Parametre türleri Örnekler
CosmosDB girişi ContainerProxy,
CosmosClient,
DatabaseProxy
ContainerProxy,
CosmosClient,
DatabaseProxy

Özel durumlar ve dönüş kodları

Bağlama Başvuru
Azure Cosmos DB veritabanı Azure Cosmos DB için HTTP durum kodları

host.json ayarları

Bu bölümde, 2.x ve sonraki sürümlerde bu bağlama için kullanılabilen yapılandırma ayarları açıklanmaktadır. host.json dosyasındaki ayarlar, bir işlev uygulaması örneğindeki tüm işlevler için geçerlidir. İşlev uygulaması yapılandırma ayarları hakkında daha fazla bilgi için bkz. Azure İşlevleri içinhost.json başvuru.

{
    "version": "2.0",
    "extensions": {
        "cosmosDB": {
            "connectionMode": "Gateway",
            "userAgentSuffix": "MyDesiredUserAgentStamp"
        }
    }
}
Özellik Varsayılan Açıklama
connectionMode Gateway İşlev tarafından Azure Cosmos DB hizmetine bağlanırken kullanılan bağlantı modu. Seçenekler: Direct TCP üzerinden arka uç çoğaltmalarına doğrudan bağlanır ve daha düşük gecikme süresi sağlayabilir ve Gateway istekleri HTTPS üzerinden bir ön uç ağ geçidi üzerinden yönlendirir. Daha fazla bilgi için bkz. Azure Cosmos DB SDK bağlantı modları.
userAgentSuffix yok Belirtilen dize değerini tetikleyici veya hizmete bağlama tarafından yapılan tüm isteklere ekler. Bu, belirli bir işlev uygulamasına ve filtrelemeye User Agentgöre Azure İzleyici'deki etkinliği izlemenizi kolaylaştırır.

Sonraki adımlar