2017-07-07 47 views
6

Azure portalında, bir Azure işlevinin çıktı bağlamaları, bu işlevin 'Bütünleştir' sayfasından kolayca yapılandırabilir. Bu ayarlar Sonunda function.json'a gidin.Visual Studio 2017 önizleme 2'den Azure Function'un çıktı bağları nasıl belirlenir?

Specifying output bindings from Azure portal

Sorum ben Görsel stüdyodan bu değerleri ayarlayabilirsiniz nasıl olduğunu? kod şuna benzer: Benim kod ve yapılandırma kontrol kaynak böylece VS, kullanılacak kuyruk ve hangi depolama belirtmek istediğiniz

public static class SomeEventProcessor 
{ 
    [FunctionName("SomeEventProcessor")] 

    public static async Task<HttpResponseMessage> Run(
     [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, 
     TraceWriter log, 
     IAsyncCollector<EventInfo> outputQueue) 
    { 
     log.Info("C# HTTP trigger function processed a request."); 

     EventInfo eventInfo = new EventInfo(); //Just a container 
     eventInfo.SomeID = req.Headers.Contains("SomeID") ? req.Headers.GetValues("SomeID").First() : null; 

     //Write to a queue and promptly return 
     await outputQueue.AddAsync(eventInfo); 

     return req.CreateResponse(HttpStatusCode.OK); 

    } 
} 

. Benzer sorular, önerilen sorular vb. Kontrol ettim, ancak hiçbiri kullanışlı olmadı. Ben Görsel stüdyo 2017 önizleme kullanıyorum

, Sürüm 15.3.0 Önizleme 3

VS Uzantısı: VS için Azure Fonksiyon araçları, sürüm bağlamaları sadece tetikleyici olarak belirtilir 0.2

cevap

8

, ilgili özelliklerini kullanarak bağlı olması gereken parametreler. Bağlanma konfigürasyonu (örneğin sıra adı, bağlantı, vb.) Öznitelik parametreleri/özellikleri olarak sağlanır.

örnek olarak kodu kullanarak, bağlayıcı bir kuyruk çıkışı şu şekilde görünecektir:

public static class SomeEventProcessor 
{ 
    [FunctionName("SomeEventProcessor")] 

    public static async Task<HttpResponseMessage> Run(
     [HttpTrigger(AuthorizationLevel.Function, "get", "post")]HttpRequestMessage req, 
     TraceWriter log, 
     [Queue("myQueueName", Connection = "myconnection")] IAsyncCollector<EventInfo> outputQueue) 
    { 
     log.Info("C# HTTP trigger function processed a request."); 

     EventInfo eventInfo = new EventInfo(); //Just a container 
     eventInfo.SomeID = req.Headers.Contains("SomeID") ? req.Headers.GetValues("SomeID").First() : null; 

     //Write to a queue and promptly return 
     await outputQueue.AddAsync(eventInfo); 

     return req.CreateResponse(HttpStatusCode.OK); 

    } 
} 

sadece HTTP işlevinden bir 200 (Ok) dönen ediyorsanız, kodunuzu basitleştirmek Furtner edebilirsiniz yine bir örnek olarak da kodu kullanarak, yöntemin return değeri, hiç niteliğini uygulayarak şu şekilde görünecektir:

[FunctionName("SomeEventProcessor")] 
[return: Queue("myQueueName", Connection = "myconnection")] 
public static EventInfo Run(
    [HttpTrigger(AuthorizationLevel.Function, "get", "post")]HttpRequestMessage req, 
    TraceWriter log) 
{ 
    log.Info("C# HTTP trigger function processed a request."); 

    EventInfo eventInfo = new EventInfo(); //Just a container 
    eventInfo.SomeID = req.Headers.Contains("SomeID") ? req.Headers.GetValues("SomeID").First() : null; 

    return eventInfo; 
} 

yukarıdaki kodu kullanarak, Azure fonksiyonlar otomatik fonksiyonları başarılı olduğunda bir 200 dönmek ve 500 olacak whe n/istisna atılırsa.

+0

Bu kod satırında Queue'nın yerini alan NotificationHub için dekoratör ne olacak: [Queue ("myQueueName", Connection = "myconnection")]. Kontrol ettim ve NotificationHub'u görmedim – Devsined