Aracılığıyla paylaş


Azure İşlevleri için Azure Blob depolama giriş bağlaması

Giriş bağlaması, azure işlevine giriş olarak blob depolama verilerini okumanızı sağlar.

Kurulum ve yapılandırma ayrıntıları hakkında bilgi için genel bakışa bakın.

Önemli

Bu makalede, Node.js programlama modelinin birden çok sürümünü desteklemek için sekmeler kullanılır. Genel kullanıma sunulan v4 modeli, JavaScript ve TypeScript geliştiricileri için daha esnek ve sezgisel bir deneyime sahip olacak şekilde tasarlanmıştır. v4 modelinin nasıl çalıştığı hakkında daha fazla bilgi için Azure İşlevleri Node.js geliştirici kılavuzuna bakın. v3 ile v4 arasındaki farklar hakkında daha fazla bilgi edinmek için geçiş kılavuzuna bakın.

Azure İşlevleri, Python için iki programlama modelini destekler. Bağlamalarınızı tanımlama şekliniz seçtiğiniz programlama modeline bağlıdır.

Python v2 programlama modeli, doğrudan Python işlev kodunuzda dekoratörleri kullanarak bağlamaları tanımlamanıza olanak tanır. Daha fazla bilgi için bkz . Python geliştirici kılavuzu.

Bu makale her iki programlama modelini de destekler.

Örnek

C# işlevi aşağıdaki C# modlarından biri kullanılarak oluşturulabilir:

  • Yalıtılmış çalışan modeli: Çalışma zamanından yalıtılmış bir çalışan işleminde çalışan derlenmiş C# işlevi. LTS ve .NET ve .NET Framework dışındaki sürümlerde çalışan C# işlevlerini desteklemek için yalıtılmış çalışan işlemi gereklidir. Yalıtılmış çalışan işlemi işlevleri için uzantılar ad alanlarını kullanır Microsoft.Azure.Functions.Worker.Extensions.* .
  • İşlem içi model: İşlevler çalışma zamanıyla aynı işlemde çalışan derlenmiş C# işlevi. Bu modelin bir varyasyonunda, İşlevler öncelikle C# portalı düzenleme için desteklenen C# betiği kullanılarak çalıştırılabilir. İşlem içi işlevlerin uzantıları ad alanlarını kullanır Microsoft.Azure.WebJobs.Extensions.* .

Önemli

İşlem içi model desteği 10 Kasım 2026'da sona erecektir. Tam destek için uygulamalarınızı yalıtılmış çalışan modeline geçirmenizi kesinlikle öneririz.

Aşağıdaki örnek, yalıtılmış bir çalışan işleminde çalışan ve hem blob girişi hem de blob çıkış blob bağlamaları ile blob tetikleyicisi kullanan bir C# işlevidir . İşlev, test-samples-trigger kapsayıcısında bir blob oluşturularak tetikleniyor. Test-samples-input kapsayıcısından bir metin dosyası okur ve tetiklenen dosyanın adına göre çıkış kapsayıcısında yeni bir metin dosyası oluşturur.

    public static class BlobFunction
    {
        [Function(nameof(BlobFunction))]
        [BlobOutput("test-samples-output/{name}-output.txt")]
        public static string Run(
            [BlobTrigger("test-samples-trigger/{name}")] string myTriggerItem,
            [BlobInput("test-samples-input/sample1.txt")] string myBlob,
            FunctionContext context)
        {
            var logger = context.GetLogger("BlobFunction");
            logger.LogInformation("Triggered Item = {myTriggerItem}", myTriggerItem);
            logger.LogInformation("Input Item = {myBlob}", myBlob);

            // Blob Output
            return "blob-output content";
        }
    }
}

Bu bölüm aşağıdaki örnekleri içerir:

HTTP tetikleyicisi, sorgu dizesinden blob adını arayın

Aşağıdaki örnekte, blob depolama kapsayıcısında HttpTrigger dosyanın adını içeren bir parametreyi almak için ek açıklamayı kullanan bir Java işlevi gösterilmektedir. Ek BlobInput açıklama daha sonra dosyayı okur ve içeriğini işlevine olarak byte[]geçirir.

  @FunctionName("getBlobSizeHttp")
  @StorageAccount("Storage_Account_Connection_String")
  public HttpResponseMessage blobSize(
    @HttpTrigger(name = "req", 
      methods = {HttpMethod.GET}, 
      authLevel = AuthorizationLevel.ANONYMOUS) 
    HttpRequestMessage<Optional<String>> request,
    @BlobInput(
      name = "file", 
      dataType = "binary", 
      path = "samples-workitems/{Query.file}") 
    byte[] content,
    final ExecutionContext context) {
      // build HTTP response with size of requested blob
      return request.createResponseBuilder(HttpStatus.OK)
        .body("The size of \"" + request.getQueryParameters().get("file") + "\" is: " + content.length + " bytes")
        .build();
  }

Kuyruk tetikleyicisi, kuyruk iletisinden blob adı alma

Aşağıdaki örnekte, blob depolama kapsayıcısında QueueTrigger dosyanın adını içeren bir ileti almak için ek açıklamayı kullanan bir Java işlevi gösterilmektedir. Ek BlobInput açıklama daha sonra dosyayı okur ve içeriğini işlevine olarak byte[]geçirir.

  @FunctionName("getBlobSize")
  @StorageAccount("Storage_Account_Connection_String")
  public void blobSize(
    @QueueTrigger(
      name = "filename", 
      queueName = "myqueue-items-sample") 
    String filename,
    @BlobInput(
      name = "file", 
      dataType = "binary", 
      path = "samples-workitems/{queueTrigger}") 
    byte[] content,
    final ExecutionContext context) {
      context.getLogger().info("The size of \"" + filename + "\" is: " + content.length + " bytes");
  }

Java işlevleri çalışma zamanı kitaplığında@BlobInput, değeri blobdan gelen parametrelerde ek açıklamayı kullanın. Bu ek açıklama kullanılarak yerel Java türleri, POJO'lar veya null atanabilir değerlerle Optional<T>kullanılabilir.

Aşağıdaki örnekte, bir blobun kopyasını oluşturan kuyruk tarafından tetiklenen TypeScript işlevi gösterilmektedir. İşlev, kopyalanacak blobun adını içeren bir kuyruk iletisiyle tetikleniyor. Yeni blob {originalblobname}-Copy olarak adlandırılır.

import { app, input, InvocationContext, output } from '@azure/functions';

const blobInput = input.storageBlob({
    path: 'samples-workitems/{queueTrigger}',
    connection: 'MyStorageConnectionAppSetting',
});

const blobOutput = output.storageBlob({
    path: 'samples-workitems/{queueTrigger}-Copy',
    connection: 'MyStorageConnectionAppSetting',
});

export async function storageQueueTrigger1(queueItem: unknown, context: InvocationContext): Promise<unknown> {
    return context.extraInputs.get(blobInput);
}

app.storageQueue('storageQueueTrigger1', {
    queueName: 'myqueue-items',
    connection: 'MyStorageConnectionAppSetting',
    extraInputs: [blobInput],
    return: blobOutput,
    handler: storageQueueTrigger1,
});

Aşağıdaki örnekte, bir blobun kopyasını oluşturan kuyruk tarafından tetiklenen JavaScript işlevi gösterilmektedir. İşlev, kopyalanacak blobun adını içeren bir kuyruk iletisiyle tetikleniyor. Yeni blob {originalblobname}-Copy olarak adlandırılır.

const { app, input, output } = require('@azure/functions');

const blobInput = input.storageBlob({
    path: 'samples-workitems/{queueTrigger}',
    connection: 'MyStorageConnectionAppSetting',
});

const blobOutput = output.storageBlob({
    path: 'samples-workitems/{queueTrigger}-Copy',
    connection: 'MyStorageConnectionAppSetting',
});

app.storageQueue('storageQueueTrigger1', {
    queueName: 'myqueue-items',
    connection: 'MyStorageConnectionAppSetting',
    extraInputs: [blobInput],
    return: blobOutput,
    handler: (queueItem, context) => {
        return context.extraInputs.get(blobInput);
    },
});

Aşağıdaki örnekte, function.json dosyasında tanımlanan ve gelen blob verilerini PowerShell işlevi için kullanılabilir hale getiren bir blob giriş bağlaması gösterilmektedir.

JSON yapılandırması şu şekildedir:

{
  "bindings": [
    {
      "name": "InputBlob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "source/{name}",
      "connection": "AzureWebJobsStorage"
    }
  ]
}

İşlev kodu şu şekildedir:

# Input bindings are passed in via param block.
param([byte[]] $InputBlob, $TriggerMetadata)

Write-Host "PowerShell Blob trigger: Name: $($TriggerMetadata.Name) Size: $($InputBlob.Length) bytes"

Bu örnek, Blob depolama giriş bağlaması tarafından sağlanan temel alınan BlobClient nesneye doğrudan erişmek için SDK türlerini kullanır:

import logging

import azure.functions as func
import azurefunctions.extensions.bindings.blob as blob

app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)
@app.route(route="file")
@app.blob_input(
    arg_name="client", path="PATH/TO/BLOB", connection="AzureWebJobsStorage"
)
def blob_input(req: func.HttpRequest, client: blob.BlobClient):
    logging.info(
        f"Python blob input function processed blob \n"
        f"Properties: {client.get_blob_properties()}\n"
        f"Blob content head: {client.download_blob().read(size=1)}"
    )
    return "ok"

Diğer SDK türlerini kullanma örnekleri için ve StorageStreamDownloader örneklerine ContainerClient bakın.

Projenizde SDK türü bağlamalarını etkinleştirme de dahil olmak üzere daha fazla bilgi edinmek için bkz . SDK türü bağlamaları.

Kod bir blobun kopyasını oluşturur.

import logging
import azure.functions as func

app = func.FunctionApp()

@app.function_name(name="BlobOutput1")
@app.route(route="file")
@app.blob_input(arg_name="inputblob",
                path="sample-workitems/test.txt",
                connection="<BLOB_CONNECTION_SETTING>")
@app.blob_output(arg_name="outputblob",
                path="newblob/test.txt",
                connection="<BLOB_CONNECTION_SETTING>")
def main(req: func.HttpRequest, inputblob: str, outputblob: func.Out[str]):
    logging.info(f'Python Queue trigger function processed {len(inputblob)} bytes')
    outputblob.set(inputblob)
    return "ok"

Özellikler

hem işlem içi hem de yalıtılmış çalışan işlemi C# kitaplıkları işlevi tanımlamak için öznitelikleri kullanır. Bunun yerine C# betiği, C# betik kılavuzunda açıklandığı gibi bir function.json yapılandırma dosyası kullanır.

Yalıtılmış çalışan işlemi, aşağıdaki parametreleri alan bir öznitelik kullanarak bir BlobInputAttribute giriş bağlaması tanımlar:

Parametre Açıklama
BlobPath Blob yolu.
Bağlantı Azure Bloblarına nasıl bağlanıldığını belirten bir uygulama ayarının veya ayar koleksiyonunun adı. Bkz. Bağlantılar.

Yerel olarak geliştirme yaparken uygulama ayarlarınızı koleksiyondaki local.settings.json dosyasına Values ekleyin.

Dekoratörler

Yalnızca Python v2 programlama modeli için geçerlidir.

Dekoratörler kullanılarak tanımlanan Python v2 işlevleri için ve blob_output dekoratörlerinde aşağıdaki özellikler blob_input Blob Depolama tetikleyicilerini tanımlar:

Özellik Açıklama
arg_name İşlev kodundaki blobu temsil eden değişkenin adı.
path Blob yolu Dekoratör için blob_input blob okuma yoludur. blob_output Dekoratör için giriş blobunun çıktısı veya kopyasıdır.
connection Depolama hesabı bağlantı dizesi.
data_type Dinamik olarak yazılan diller için, temel alınan veri türünü belirtir. Olası değerler , binaryveya streamşeklindedirstring. Daha fazla ayrıntı için tetikleyiciler ve bağlamalar kavramlarına bakın.

function.json kullanılarak tanımlanan Python işlevleri için Yapılandırma bölümüne bakın.

Ek Açıklamalar

özniteliği, @BlobInput işlevi tetikleyen bloba erişmenizi sağlar. özniteliğiyle bir bayt dizisi kullanıyorsanız olarak ayarlayın dataType binary. Ayrıntılar için giriş örneğine bakın.

Yapılandırma

Yalnızca Python v1 programlama modeli için geçerlidir.

Aşağıdaki tabloda, yöntemine geçirilen input.storageBlob() nesnede options ayarlayabileceğiniz özellikler açıklanmaktadır.

Özellik Açıklama
yol Blob yolu.
bağlantı Azure Bloblarına nasıl bağlanıldığını belirten bir uygulama ayarının veya ayar koleksiyonunun adı. Bkz. Bağlantılar.

Aşağıdaki tabloda, function.json dosyasında ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır.

function.json özelliği Açıklama
type olarak ayarlanmalıdır blob.
direction olarak ayarlanmalıdır in. Kullanım bölümünde özel durumlar not edilir.
ad İşlev kodundaki blobu temsil eden değişkenin adı.
yol Blob yolu.
bağlantı Azure Bloblarına nasıl bağlanıldığını belirten bir uygulama ayarının veya ayar koleksiyonunun adı. Bkz. Bağlantılar.
Datatype Dinamik olarak yazılan diller için, temel alınan veri türünü belirtir. Olası değerler , binaryveya streamşeklindedirstring. Daha fazla ayrıntı için tetikleyiciler ve bağlamalar kavramlarına bakın.

Tam örnekler için Örnek bölümüne bakın.

Kullanım

Blob girişi tarafından desteklenen bağlama türleri, uzantı paketi sürümüne ve işlev uygulamanızda kullanılan C# modalitesine bağlıdır.

İş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.

stringöğesine bağlama veya Byte[] yalnızca blob boyutu küçük olduğunda önerilir. Blob içeriğinin tamamı belleğe yüklendiğinden bu önerilir. Çoğu blob için veya Stream BlobClient türünü kullanın. Daha fazla bilgi için bkz . Eşzamanlılık ve bellek kullanımı.

Depolama SDK'sı türlerinden birine bağlanmaya çalışırken bir hata iletisi alırsanız doğru Depolama SDK'sı sürümüne başvuru aldığınızdan emin olun.

Kullanılacak depolama hesabını belirtmek için StorageAccountAttribute'u da kullanabilirsiniz. Kitaplıktaki diğer işlevlerden farklı bir depolama hesabı kullanmanız gerektiğinde bunu yapabilirsiniz. Oluşturucu, depolama bağlantı dizesi içeren bir uygulama ayarının adını alır. Özniteliği parametre, yöntem veya sınıf düzeyinde uygulanabilir. Aşağıdaki örnekte sınıf düzeyi ve yöntem düzeyi gösterilmektedir:

[StorageAccount("ClassLevelStorageAppSetting")]
public static class AzureFunctions
{
    [FunctionName("BlobTrigger")]
    [StorageAccount("FunctionLevelStorageAppSetting")]
    public static void Run( //...
{
    ....
}

Kullanılacak depolama hesabı aşağıdaki sırayla belirlenir:

  • Özniteliğin BlobTrigger Connection özelliği.
  • özniteliğiyle StorageAccount aynı parametreye uygulandı BlobTrigger .
  • StorageAccount İşleve uygulanan öznitelik.
  • StorageAccount sınıfına uygulanan öznitelik.
  • uygulama ayarında AzureWebJobsStorage tanımlanan işlev uygulaması için varsayılan depolama hesabı.

özniteliği, @BlobInput işlevi tetikleyen bloba erişmenizi sağlar. özniteliğiyle bir bayt dizisi kullanıyorsanız olarak ayarlayın dataType binary. Ayrıntılar için giriş örneğine bakın.

kullanarak context.extraInputs.get()blob verilerine erişin.

Blob verilerine, function.json dosyasında bağlamanın ad parametresi tarafından belirlenen adla eşleşen bir parametre aracılığıyla erişin.

InputStream olarak yazılan parametre aracılığıyla blob verilerine erişin. Ayrıntılar için giriş örneğine bakın.

İşlevler, Azure Blob depolama için Python SDK türü bağlamalarını da destekler ve bu da aşağıdaki temel SDK türlerini kullanarak blob verileriyle çalışmanıza olanak tanır:

Önemli

Python için SDK türleri desteği şu anda önizleme aşamasındadır ve yalnızca Python v2 programlama modeli için desteklenir. Daha fazla bilgi için bkz . Python'da SDK türleri.

Bağlantılar

connection özelliği, uygulamanın Azure Bloblarına nasıl bağlanması gerektiğini belirten bir ortam yapılandırması başvurusudur. Şunları belirtebilir:

  • bağlantı dizesi içeren bir uygulama ayarının adı
  • Birden çok uygulama ayarı için paylaşılan ön ekin adı ve birlikte kimlik tabanlı bağlantı tanımlama.

Yapılandırılan değer hem tek bir ayar için tam eşleşme hem de diğer ayarlar için bir ön ek eşleşmesiyse, tam eşleşme kullanılır.

Connection string

bağlantı dizesi almak için Depolama hesabı erişim anahtarlarını yönetme bölümünde gösterilen adımları izleyin. bağlantı dizesi, Blob depolama hesabı için değil genel amaçlı bir depolama hesabı için olmalıdır.

Bu bağlantı dizesi, bağlama yapılandırmasının özelliği tarafından connection belirtilen değerle eşleşen bir adla bir uygulama ayarında depolanmalıdır.

Uygulama ayarı adı "AzureWebJobs" ile başlıyorsa, adın yalnızca kalanını burada belirtebilirsiniz. Örneğin, "MyStorage" olarak ayarlarsanız connection , İşlevler çalışma zamanı "AzureWebJobsMyStorage" adlı bir uygulama ayarı arar. Boş bırakırsanızconnection, İşlevler çalışma zamanı adlı AzureWebJobsStorageuygulama ayarında varsayılan Depolama bağlantı dizesi kullanır.

Kimlik tabanlı bağlantılar

Uzantının 5.x veya üzeri bir sürümünü (non-.NET dil yığınları için paket 3.x veya üzeri) kullanıyorsanız, gizli dizi içeren bir bağlantı dizesi kullanmak yerine uygulamanın bir Microsoft Entra kimliği kullanmasını sağlayabilirsiniz. Kimlik kullanmak için, tetikleyici ve bağlama yapılandırmasındaki özelliğiyle connection eşleyen ortak bir ön ek altında ayarları tanımlarsınız.

"AzureWebJobsStorage" olarak ayarlanıyorsanız connection bkz . Kimlikle konak depolamaya bağlanma. Diğer tüm bağlantılar için uzantı aşağıdaki özellikleri gerektirir:

Özellik Ortam değişkeni şablonu Açıklama Örnek değer
Blob Hizmeti URI'si <CONNECTION_NAME_PREFIX>__serviceUri1 HTTPS şemasını kullanarak bağlandığınız blob hizmetinin veri düzlemi URI'si. <https:// storage_account_name.blob.core.windows.net>

1 <CONNECTION_NAME_PREFIX>__blobServiceUri diğer ad olarak kullanılabilir. Bağlantı yapılandırması bir blob tetikleyicisi tarafından kullanılacaksa, blobServiceUri öğesinin de eşlik queueServiceUrietmesi gerekir. Aşağıya bakın.

Genel serviceUri bağlantı yapılandırması bloblar, kuyruklar ve/veya tablolar arasında kullanılacaksa form kullanılamaz. URI yalnızca blob hizmetini belirleyebilir. Alternatif olarak, her hizmet için özel olarak bir URI sağlayarak tek bir bağlantının kullanılmasını sağlayabilirsiniz. Her iki sürüm de sağlanırsa, çok hizmetli form kullanılır. Bağlantıyı birden çok hizmet için yapılandırmak için yerine <CONNECTION_NAME_PREFIX>__serviceUrişunu ayarlayın:

Özellik Ortam değişkeni şablonu Açıklama Örnek değer
Blob Hizmeti URI'si <CONNECTION_NAME_PREFIX>__blobServiceUri HTTPS şemasını kullanarak bağlandığınız blob hizmetinin veri düzlemi URI'si. <https:// storage_account_name.blob.core.windows.net>
Kuyruk Hizmeti URI'si (blob tetikleyicileriiçin gereklidir 2) <CONNECTION_NAME_PREFIX>__queueServiceUri HTTPS şemasını kullanarak bir kuyruk hizmetinin veri düzlemi URI'si. Bu değer yalnızca blob tetikleyicileri için gereklidir. <https:// storage_account_name.queue.core.windows.net>

2 Blob tetikleyicisi, bir kuyruğa zehirli bloblar yazarak birden çok yeniden denemede başarısızlığı işler. Formda serviceUri bağlantı AzureWebJobsStorage kullanılır. Ancak, belirtilirken blobServiceUriile bir kuyruk hizmeti URI'si de sağlanmalıdır queueServiceUri. Blob hizmetiyle aynı depolama hesabından hizmeti kullanmanız önerilir. Ayrıca, Depolama Kuyruğu Veri Katkıda Bulunanı gibi bir rol atayarak tetikleyicinin yapılandırılan kuyruk hizmetinde iletileri okuyabildiğinden ve yazadığından da emin olmanız gerekir.

Bağlantıyı özelleştirmek için diğer özellikler ayarlanabilir. Bkz. Kimlik tabanlı bağlantılar için ortak özellikler.

Azure İşlevleri hizmetinde barındırıldığında, kimlik tabanlı bağlantılar yönetilen kimlik kullanır. Ve özellikleriyle credential clientID kullanıcı tarafından atanan bir kimlik belirtilse de, sistem tarafından atanan kimlik varsayılan olarak kullanılır. Kullanıcı tarafından atanan kimliği kaynak kimliğiyle yapılandırmanın desteklenmediğini unutmayın. Yerel geliştirme gibi diğer bağlamlarda çalıştırıldığında, bunun yerine geliştirici kimliğiniz kullanılır, ancak bu özelleştirilebilir. Bkz. Kimlik tabanlı bağlantılarla yerel geliştirme.

Kimliğe izin verme

Hangi kimlik kullanılıyorsa, hedeflenen eylemleri gerçekleştirmek için izinlere sahip olmalıdır. Çoğu Azure hizmeti için bu, bu izinleri sağlayan yerleşik veya özel rolleri kullanarak Azure RBAC'de bir rol atamanız gerektiği anlamına gelir.

Önemli

Bazı izinler, tüm bağlamlar için gerekli olmayan hedef hizmet tarafından gösterilebilir. Mümkün olduğunda, kimliğe yalnızca gerekli ayrıcalıkları sağlayarak en az ayrıcalık ilkesine uyun. Örneğin, uygulamanın yalnızca bir veri kaynağından okuyabilmesi gerekiyorsa, yalnızca okuma izni olan bir rol kullanın. Okuma işlemi için aşırı izin olduğundan, bu hizmete yazmaya da izin veren bir rol atamak uygun olmaz. Benzer şekilde, rol atamasının kapsamının yalnızca okunması gereken kaynaklara göre ayarlandığından emin olmak istersiniz.

Çalışma zamanında blob kapsayıcınıza erişim sağlayan bir rol ataması oluşturmanız gerekir. Sahip gibi yönetim rolleri yeterli değildir. Aşağıdaki tabloda, normal işlemde Blob Depolama uzantısı kullanılırken önerilen yerleşik roller gösterilmektedir. Uygulamanız, yazdığınız koda göre daha fazla izin gerektirebilir.

Bağlama türü Örnek yerleşik roller
Tetikleyici Depolama Blobu Veri Sahibi ve Depolama Kuyruğu Veri Katkıda Bulunanı1

AzureWebJobsStorage bağlantısına ek izinler de verilmelidir.2
Giriş bağlaması Depolama Blob Verileri Okuyucusu
Çıkış bağlaması Depolama Blob Verileri Sahibi

1 Blob tetikleyicisi, bağlantı tarafından belirtilen depolama hesabındaki bir kuyruğa zehirli bloblar yazarak birden çok yeniden denemede başarısızlığı işler.

2 AzureWebJobsStorage bağlantısı, tetikleyiciyi etkinleştiren bloblar ve kuyruklar için dahili olarak kullanılır. Kimlik tabanlı bir bağlantı kullanacak şekilde yapılandırılmışsa, varsayılan gereksinimin ötesinde ek izinlere ihtiyacı vardır. Gerekli izinler Depolama Blobu Veri Sahibi, Depolama Kuyruğu Veri Katkıda Bulunanı ve Depolama Hesabı Katkıda Bulunanı rolleri kapsamındadır. Daha fazla bilgi edinmek için bkz . Kimlikle konak depolamaya bağlanma.

Sonraki adımlar