Azure İşlevleri için Azure Blob depolama bağlamalarına genel bakış
Azure İşlevleri ile tümleşirTetikleyiciler ve bağlamalar aracılığıyla Azure Depolama. Blob depolama ile tümleştirme, blob verilerindeki değişikliklere tepki veren işlevlerin yanı sıra okuma ve yazma değerleri oluşturmanıza olanak tanır.
Eylem | Tür |
---|---|
Blob depolama verileri değiştikçe işlev çalıştırma | Tetikleyici |
İşlevdeki blob depolama verilerini okuma | Giriş bağlaması |
İşlevin blob depolama verileri yazmasına izin verme | Çı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.
Uzantının işlevselliği, uzantı sürümüne bağlı olarak değişir:
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.
Bu sürüm, Azure.Storage.Blobs'tan türlere bağlamanıza olanak tanır. Azure.Storage.Blobs Geçiş Kılavuzu'ndan bu yeni türlerin ve bunlara geçişin nasıl farklı WindowsAzure.Storage
Microsoft.Azure.Storage
olduğu hakkında daha fazla bilgi edinin.
Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs NuGet paketini, sürüm 5.x veya üzerini yükleyerek uzantıyı projenize ekleyin.
.NET CLI'yi kullanma:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
Not
Azure Blobları, Azure Kuyrukları ve Azure Tabloları artık ayrı uzantılar kullanır ve tek tek başvurulur. Örneğin, .NET yalıtılmış işlem uygulamanızdaki üç hizmetin de tetikleyicilerini ve bağlamalarını kullanmak için projenize aşağıdaki paketleri eklemeniz gerekir:
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
- Microsoft.Azure.Functions.Worker.Extensions.Tables
Daha önce uzantılar birlikte Microsoft.Azure.Functions.Worker.Extensions.Storage, sürüm 4.x olarak gönderilmektedir. Aynı paket, yalnızca bloblar ve kuyruklar için bölünmüş paketlere başvuran 5.x sürümüne de sahiptir. Bu nedenle, paket başvurularınızı eski sürümlerden yükseltirken yeni Microsoft.Azure.Functions.Worker.Extensions.Tables NuGet paketine de başvurmanız gerekebilir. Ayrıca, bu yeni bölünmüş paketlere başvururken, aynı bağlamaların iki tanımından çakışmalara neden olacağı için birleşik depolama paketinin eski bir sürümüne başvurmadığınızdan emin olun.
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 ConfigureFunctionsWebApplication()
çağrısındaConfigureFunctionsWorkerDefaults()
, parametre alan bir IFunctionsWorkerApplication
temsilci ekleyin. Ardından bu temsilcinin gövdesinde nesnesine çağrı ConfigureBlobStorageExtension()
yapın:
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureBlobStorageExtension() |> ignore
) |> ignore
Paket yükleme
Blob depolama bağlaması, host.json proje dosyanızda belirtilen bir uzantı paketinin parçasıdır. Bağlamanın sürümünü değiştirmek için veya paketler henüz yüklü değilse bu paketi değiştirmeniz gerekebilir. Daha fazla bilgi edinmek için bkz . uzantı paketi.
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.
Uzantı paketi v3'ten, dosyanıza host.json
aşağıdaki kodu ekleyerek veya değiştirerek uzantının bu sürümünü ekleyebilirsiniz:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
Daha fazla bilgi edinmek için bkz . Uzantılarınızı güncelleştirme.
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.
Blob tetikleyicisi
Blob tetikleyicisi aşağıdaki türlere bağlanabilir:
Type | Açıklama |
---|---|
string |
Dize olarak blob içeriği. Blob içeriği basit metin olduğunda kullanın. |
byte[] |
Blob içeriğinin baytları. |
JSON serileştirilebilir türler | Bir blob JSON verileri içerdiğinde İşlevler, JSON verilerini seri durumdan çıkararak düz eski bir CLR nesnesi (POCO) türüne dönüştürmeye çalışır. |
Akış1 | Blob içeriğinin giriş akışı. |
BlobClient1, BlockBlobClient1, PageBlobClient1, AppendBlobClient1, BlobBaseClient1 |
Bloba bağlı bir istemci. Bu tür kümesi blobu işlemek için en fazla denetimi sunar ve bağlantı yeterli izne sahipse bloba geri yazmak için kullanılabilir. |
1 Bu türleri kullanmak için Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 veya sonraki sürümlerine ve SDK türü bağlamaları için ortak bağımlılıklara başvurmanız gerekir.
Blob giriş bağlaması
İşlevin tek bir blobu işlemesini istediğinizde, blob giriş bağlaması aşağıdaki türlere bağlanabilir:
Type | Açıklama |
---|---|
string |
Dize olarak blob içeriği. Blob içeriği basit metin olduğunda kullanın. |
byte[] |
Blob içeriğinin baytları. |
JSON serileştirilebilir türler | Bir blob JSON verileri içerdiğinde İşlevler, JSON verilerini seri durumdan çıkararak düz eski bir CLR nesnesi (POCO) türüne dönüştürmeye çalışır. |
Akış1 | Blob içeriğinin giriş akışı. |
BlobClient1, BlockBlobClient1, PageBlobClient1, AppendBlobClient1, BlobBaseClient1 |
Bloba bağlı bir istemci. Bu tür kümesi blobu işlemek için en fazla denetimi sunar ve bağlantı yeterli izne sahipse bloba geri yazmak için kullanılabilir. |
İşlevin bir kapsayıcıdan birden çok blobu işlemesini istediğinizde, blob giriş bağlaması aşağıdaki türlere bağlanabilir:
Type | Açıklama |
---|---|
T[] veya List<T> burada T tek blob giriş bağlama türlerinden biridir |
Birden çok blobun dizisi veya listesi. Her girdi kapsayıcıdan bir blobu temsil eder. Ayrıca, gibi bu türler IEnumerable<T> tarafından uygulanan arabirimlere de bağlanabilirsiniz. |
BlobContainerClient1 | Kapsayıcıya bağlı bir istemci. Bu tür, kapsayıcıyı işlemek için en fazla denetimi sunar ve bağlantı yeterli izne sahipse kapsayıcıya yazmak için kullanılabilir. |
1 Bu türleri kullanmak için Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 veya sonraki sürümlerine ve SDK türü bağlamaları için ortak bağımlılıklara başvurmanız gerekir.
Blob çıkış bağlaması
İşlevin tek bir bloba yazmasını istediğinizde, blob çıkış bağlaması aşağıdaki türlere bağlanabilir:
Type | Açıklama |
---|---|
string |
Dize olarak blob içeriği. Blob içeriği basit metin olduğunda kullanın. |
byte[] |
Blob içeriğinin baytları. |
JSON serileştirilebilir türler | JSON blobunun 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 bloba yazmasını istediğinizde, blob çıkış bağlaması aşağıdaki türlere bağlanabilir:
Type | Açıklama |
---|---|
T[] burada T tek blob çıkış bağlama türlerinden biridir |
Birden çok blob için içerik içeren bir dizi. Her girdi bir blobun içeriğini temsil eder. |
Diğer çıkış senaryoları için, doğrudan Azure.Storage.Blobs'tan diğer türlerle bir BlobClient veya BlobContainerClient 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.
host.json ayarları
Bu bölümde, bu bağlamayı kullanan işlevler için kullanılabilen işlev uygulaması yapılandırma ayarları açıklanmaktadır. Bu ayarlar yalnızca uzantı sürümü 5.0.0 ve üzeri kullanılırken geçerlidir. Aşağıdaki örnek host.json dosyası, bu bağlama için yalnızca sürüm 2.x+ ayarlarını içerir. 2.x ve sonraki sürümlerdeki işlev uygulaması yapılandırma ayarları hakkında daha fazla bilgi için bkz. Azure İşlevleri için host.json başvuru.
Not
Bu bölüm, 5.0.0'ın önceki uzantı sürümleri için geçerli değildir. Bu önceki sürümlerde bloblar için işlev uygulaması genelinde yapılandırma ayarı yoktur.
{
"version": "2.0",
"extensions": {
"blobs": {
"maxDegreeOfParallelism": 4,
"poisonBlobThreshold": 1
}
}
}
Özellik | Varsayılan | Açıklama |
---|---|---|
maxDegreeOfParallelism | 8 * (kullanılabilir çekirdek sayısı) | Belirli bir işlev uygulamasındaki tüm blob ile tetiklenen işlevler için izin verilen eşzamanlı çağrıların tamsayısı. İzin verilen en düşük değer 1'dir. |
poisonBlobThreshold | 5 | İletiyi zehirli kuyruğa taşımadan önce işlemeyi denemenin tamsayı sayısı. İzin verilen en düşük değer 1'dir. |