Azure Işlevleri için Azure kuyruk depolama çıkışı bağlamaları

Azure Işlevleri, çıkış bağlaması ayarlayarak yeni Azure kuyruk depolama iletileri oluşturabilir.

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

Örnek

Aşağıdaki örnekte, alınan her HTTP isteği için bir kuyruk iletisi oluşturan bir C# işlevi gösterilmektedir.

[StorageAccount("MyStorageConnectionAppSetting")]
public static class QueueFunctions
{
    [FunctionName("QueueOutput")]
    [return: Queue("myqueue-items")]
    public static string QueueOutput([HttpTrigger] dynamic input,  ILogger log)
    {
        log.LogInformation($"C# function processed: {input.Text}");
        return input.Text;
    }
}

Öznitelikler ve ek açıklamalar

C# sınıf kitaplıklarında queueattributekullanın.

Özniteliği bir out parametre veya işlevin dönüş değeri için geçerlidir. Aşağıdaki örnekte gösterildiği gibi özniteliğin Oluşturucusu sıranın adını alır:

[FunctionName("QueueOutput")]
[return: Queue("myqueue-items")]
public static string Run([HttpTrigger] dynamic input,  ILogger log)
{
    ...
}

ConnectionAşağıdaki örnekte gösterildiği gibi, kullanılacak depolama hesabını belirtmek için özelliğini ayarlayabilirsiniz:

[FunctionName("QueueOutput")]
[return: Queue("myqueue-items", Connection = "StorageConnectionAppSetting")]
public static string Run([HttpTrigger] dynamic input,  ILogger log)
{
    ...
}

Tüm örnek için bkz. çıkış örneği.

StorageAccountSınıfı, yöntemi veya parametre düzeyinde depolama hesabını belirtmek için özniteliğini kullanabilirsiniz. Daha fazla bilgi için bkz. tetikleyici-öznitelikler.

Yapılandırma

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

function. JSON özelliği Öznitelik özelliği Description
türüyle yok Olarak ayarlanmalıdır queue . Bu özellik, Azure portal tetikleyiciyi oluşturduğunuzda otomatik olarak ayarlanır.
Görünüm yok Olarak ayarlanmalıdır out . Bu özellik, Azure portal tetikleyiciyi oluşturduğunuzda otomatik olarak ayarlanır.
ada yok İşlev kodundaki kuyruğu temsil eden değişkenin adı. $returnİşlev dönüş değerine başvuracak şekilde ayarlanır.
Adı Adı Kuyruğun adı.
bağlanma Bağlantı Azure kuyruğuna bağlanmayı belirten bir uygulama ayarı veya ayar koleksiyonu adı. Bkz. Bağlantılar.

Yerel olarak geliştirilirken, uygulama ayarları local.settings.jsdosyasınagider.

Bağlantılar

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

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

Bağlantı dizesi

Bağlantı dizesi almak için Depolama hesabı erişim anahtarlarını yönetme adımlarını izleyin.

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

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

Kimlik tabanlı bağlantılar

Uzantının 5.xveya daha yüksek bir sürümünü kullanıyorsanız, gizli dizi içeren bir bağlantı dizesi kullanmak yerine uygulamanın bir gizli dizi Azure Active Directory kullanabilirsiniz. Bunu yapmak için, tetikleyici ve bağlama yapılandırmasında özelliğiyle eşlenen ortak connection bir ön ek altında ayarları tanımlayabilirsiniz.

Bu modda, uzantı aşağıdaki özellikleri gerektirir:

Özellik Ortam değişkeni şablonu Açıklama Örnek değer
Kuyruk Hizmeti URI'si <CONNECTION_NAME_PREFIX>__queueServiceUri1 HTTPS şemasını kullanarak, bağlanmakta olduğunu kuyruk hizmetinin veri düzlemi URI'si. https://<storage_account_name>.queue.core.windows.net

1 <CONNECTION_NAME_PREFIX>__serviceUri diğer ad olarak kullanılabilir. Her iki form da queueServiceUri sağlanırsa form kullanılır. Form, serviceUri genel bağlantı yapılandırması bloblar, kuyruklar ve/veya tablolar arasında kullanılacak olduğunda kullanılamaz.

Bağlantıyı özelleştirmek için ek özellikler ayarlanmış olabilir. Bkz. Kimlik tabanlı bağlantılar için ortak özellikler.

Azure Işlevleri hizmetinde barındırıldığında, kimlik tabanlı bağlantılar yönetilen bir kimlikkullanır. Sistem tarafından atanan kimlik, ve özellikleriyle kullanıcı tarafından atanan bir kimlik belirtibilse de varsayılan olarak kullanılır credential clientID . Yerel geliştirme gibi diğer bağlamlarda çalıştırıldığında geliştirici kimliğiniz bunun yerine özelleştirilebilir. Bkz. kimlik tabanlı bağlantılarla yerel geliştirme.

Kimliğe izin ver

Kullanılan kimliğin istenen eylemleri gerçekleştirmek için izinleri olması gerekir. Azure RBAC 'de, bu izinleri sağlayan yerleşik veya özel roller kullanarak bir rol atamanızgerekir.

Önemli

Bazı izinler, tüm bağlamlarda gerekli olmayan hedef hizmet tarafından açığa çıkabilir. Mümkün olduğunda, en az ayrıcalık ilkesine bağlı olarak yalnızca kimlik gerekli ayrıcalıkları veriliyor. Örneğin, uygulamanın yalnızca bir veri kaynağından okuyabilmesi gerekiyorsa, yalnızca okuma iznine sahip olan bir rol kullanın. Bu hizmetin yazılmasına izin veren bir rol atamak uygun değildir, çünkü bu, okuma işlemi için aşırı izindir. Benzer şekilde, rol atamasının yalnızca okunması gereken kaynaklar üzerinde kapsam olmasını sağlamak isteyeceksiniz.

Çalışma zamanında kuyruğunuza erişim sağlayan bir rol ataması oluşturmanız gerekecektir. Sahip gibi yönetim rolleri yeterli değildir. aşağıdaki tabloda, normal işlemde Queue Depolama uzantısı kullanılırken önerilen yerleşik roller gösterilmektedir. Uygulamanız, yazdığınız koda göre ek izinler gerektirebilir.

Bağlama türü Örnek yerleşik roller
Tetikleyici [Depolama kuyruğu veri okuyucu], [Depolama kuyruğu veri iletisi işlemcisi]
Çıkış bağlama [Depolama kuyruğu verileri katılımcısı], [Depolama kuyruğu veri iletisi gönderici]

Kullanım

Varsayılan

Gibi bir yöntem parametresi kullanarak tek bir kuyruk iletisi yazın out T paramName . Bir parametre yerine yöntem dönüş türünü kullanabilir out ve T aşağıdaki türlerden herhangi biri olabilir:

' CloudQueueMessage a bağlanıp bir hata iletisi almaya çalışırsanız, doğru Depolama SDK sürümünebaşvurunuz olduğundan emin olun.

C# ve C# komut dosyasında, aşağıdaki türlerden birini kullanarak birden çok kuyruk iletisi yazın:

  • ICollector<T> veya IAsyncCollector<T>
  • CloudQueue

Ek türler

Uzantının 5.0.0 veya daha yüksek Depolama kullanan uygulamalar. .NETiçin Azure SDK'dan türleri de kullanabilir. Bu sürüm, eski ve türleri CloudQueue için CloudQueueMessage desteği aşağıdaki türler için tercih ediyor:

Bu türleri kullanan örnekler için uzantının GitHub deposuna bakın.

Özel durumlar ve dönüş kodları

Bağlama Başvuru
Kuyruk Kuyruk Hata Kodları
Blob, Tablo, Kuyruk Depolama Hata Kodları
Blob, Tablo, Kuyruk Sorun giderme

Sonraki adımlar