Функция Azure с несколькими привязками вывода - Blob и HTTP - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь написать функцию Azure, которая будет выводить большой двоичный объект, а также возвращать HTTP-ответ вызывающей стороне. Часть function.json довольно проста -

{ 
      "name": "$return", 
      "type": "http", 
      "direction": "out" 
    }, 
    {
      "type": "blob",
      "name": "outputBlob",
      "path": "outcontainer/{rand-guid}",
      "connection": "STORAGE",
      "direction": "out"
    }

Но у меня возникают проблемы с доступом к выводу BLOB-объекта в моем действительном коде функции. Исходя из примеров, это должно выглядеть так:

    public static async Task<HttpResponseMessage> Run(HttpRequestMessage req,
      out string outputBlob, TraceWriter log)
    {
    //proccess request and create blob output
    }

Как и следовало ожидать, это приводит к ошибке, поскольку в асинхронном вызове не может быть параметра out. Я не хочу делать вызов синхронным, так как мы ожидаем довольно большую громкость.

Возможно ли вообще иметь вывод HTTP с выводом BLOB-объекта? Если да, то как бы вы это сделали?

1 Ответ

0 голосов
/ 13 сентября 2018

Я думаю, что моя ошибка заключалась в том, что выходной двоичный объект мог быть связан только со строкой, потому что это то, что я видел в большинстве примеров. Изменение привязки к потоку, а затем выполнение Stream.WriteAsync до того, как я вернул HTTP-ответ, решило проблему.

...