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;
}
}
Aşağıdaki örnek, bağlamayı kullanan bir function. JSON dosyası ve C# betiği (. CSX) kodunda bir http tetikleyicisi bağlamayı gösterir. İşlevi, alınan her HTTP isteği için bir Customqueuemessage nesne yüküne sahip bir kuyruk öğesi oluşturur.
Yapılandırma bölümünde bu özellikler açıklanmaktadır.
Tek bir sıra iletisi oluşturan C# betik kodu aşağıda verilmiştir:
public class CustomQueueMessage
{
public string PersonName { get; set; }
public string Title { get; set; }
}
public static CustomQueueMessage Run(CustomQueueMessage input, ILogger log)
{
return input;
}
Bir veya parametresini kullanarak bir kerede birden çok ileti gönderebilirsiniz ICollectorIAsyncCollector . Burada, biri HTTP istek verileriyle, diğeri ise sabit kodlanmış değerlerle birden çok ileti gönderen C# betik kodu:
Aşağıdaki örnek, bir HTTP isteği tarafından tetiklendiğinde kuyruk iletisi oluşturan bir Java işlevini gösterir.
@FunctionName("httpToQueue")
@QueueOutput(name = "item", queueName = "myqueue-items", connection = "MyStorageConnectionAppSetting")
public String pushToQueue(
@HttpTrigger(name = "request", methods = {HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS)
final String message,
@HttpOutput(name = "response") final OutputBinding<String> result) {
result.setValue(message + " has been added.");
return message;
}
Java işlevleri çalışma zamanı kitaplığı'nda, @QueueOutput değeri kuyruk depolamaya yazılacak olan parametrelerde ek açıklamayı kullanın. Parametre türü olmalıdır OutputBinding<T> , burada T BIR Pojo 'Nın yerel Java türüdür.
Aşağıdaki örnek, bir function. JSON DOSYASıNDAKI bir http tetikleyicisi bağlamasını ve bağlamayı kullanan bir JavaScript işlevini gösterir. İşlevi, alınan her HTTP isteği için bir kuyruk öğesi oluşturur.
Çıkış bağlaması için bir ileti dizisi tanımlayarak bir kerede birden çok ileti gönderebilirsiniz myQueueItem . Aşağıdaki JavaScript kodu, alınan her HTTP isteği için sabit kodlanmış değerler içeren iki kuyruk iletisi gönderir.
Aşağıdaki kod örnekleri, bir HTTP ile tetiklenen işlevden bir sıra iletisinin nasıl çıktısının alınacağını göstermektedir. İçindeki yapılandırma bölümü, typequeue Çıkış bağlamayı tanımlar.
Bu bağlama yapılandırmasını kullanarak bir PowerShell işlevi kullanarak bir kuyruk iletisi oluşturabilir Push-OutputBinding . Bu örnekte, bir sorgu dizesinden veya gövde parametresinden bir ileti oluşturulur.
using namespace System.Net
# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)
# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."
# Interact with query parameters or the body of the request.
$message = $Request.Query.Message
Push-OutputBinding -Name Msg -Value $message
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = 200
Body = "OK"
})
Aynı anda birden çok ileti göndermek için, bir ileti dizisi tanımlayın ve Push-OutputBinding Iletileri kuyruk çıkış bağlamasına göndermek için kullanın.
using namespace System.Net
# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)
# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."
# Interact with query parameters or the body of the request.
$message = @("message1", "message2")
Push-OutputBinding -Name Msg -Value $message
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = 200
Body = "OK"
})
Aşağıdaki örnek, Depolama kuyruklarına tek ve birden çok değerin nasıl alınacağını gösterir. Function. JSON için gereken yapılandırma her iki yoldan de aynıdır.
Depolama kuyruğu bağlama, türü olarak ayarlandığı function. json içinde tanımlanır queue .
Kuyrukta birden çok ileti oluşturmak için, uygun liste türü olarak bir parametre bildirin ve yönteme (liste türüyle eşleşen) bir değer dizisi geçirin set .
Ö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:
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.
Öznitelikler C# betiği tarafından desteklenmez.
QueueOutputEk açıklama, bir işlevin çıktısı olarak bir ileti yazmanızı sağlar. Aşağıdaki örnekte, bir kuyruk iletisi oluşturan HTTP ile tetiklenen bir işlev gösterilmektedir.
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.
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.
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 credentialclientID . 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]
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:
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:
gibi bir yöntem parametresi kullanarak tek bir kuyruk iletisi out T paramName yazın. paramName, namefunction.json özelliğinin özelliğinde belirtilen değerdir. Bir parametre yerine yöntem dönüş türünü out kullanabilirsiniz ve T aşağıdaki türlerden herhangi biri olabilir:
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:
QueueOutput ek açıklamasını kullanarak bir işlevden Kuyruk iletisi çıkışı için iki seçenek vardır:
Dönüş değeri: Ek açıklama işlevin kendisine uygulanarak işlevin dönüş değeri Kuyruk iletisi olarak kalıcı olur.
Kesinlik: İleti değerini açıkça ayarlamak için, ek açıklamasını türünde belirli bir parametreye (burada POJO veya herhangi bir yerel OutputBinding<T>T Java türü) uygulayabilirsiniz. Bu yapılandırmayla, yöntemine bir setValue değer geçirme, değeri Kuyruk iletisi olarak kalıcı olarak devam eder.
Çıkış kuyruğu öğesi, context.bindings.<NAME><NAME>function.json içinde tanımlanan adla eşlenin üzerinden kullanılabilir. Kuyruk öğesi yükü için bir dize veya JSON seri hale getirilebilir nesnesi kullanabilirsiniz.
Kuyruk iletisi çıkışı, function.json dosyasında bağlamanın parametresi tarafından belirlenen adla eşan bağımsız değişkenleri Push-OutputBindingnameiletirsiniz.
Bir işlevden Kuyruk iletisi çıkışı için iki seçenek vardır:
Dönüş değeri:namefunction.json'daki özelliğini olarak$return ayarlayın. Bu yapılandırmayla, işlevin dönüş değeri Kuyruk depolama iletisi olarak kalıcı olur.
Imperative: Bir değeri Out türü olarak bildirilen parametresinin set yöntemine iletir. geçirilen değer, set Kuyruk depolama iletisi olarak kalıcıdır.