Можно ли создать триггер HTTP Функций Azure, который использует application/octet-stream вместо application/json?
В настоящее время у меня есть триггер для application/json.
Кроме того, вы можете напрямую изменить привязку к потоку в function.json, см. здесь. Для языков с динамическим типом, таких как JavaScript, используйте свойство dataType в файле function.json. Например, чтобы прочитать содержимое HTTP-запроса в двоичном формате, установите для dataType значение binary: { "dataType": "binary", "type": "httpTrigger", "name": "req", "direction": " in" } Другими параметрами dataType являются поток и строка.
См. здесь - github.com/MicrosoftDocs/azure-docs/blob/main/articles/…





Для потоковой передачи данных в HTTP-триггере в виде потока: -
В соответствии с этим документом Github, вы можете отредактировать файл function.json вашего HTTP-триггера с типом данных как двоичный или поток для потоковой передачи данных, как показано ниже:
код function.json: -
{
"generatedBy": "Microsoft.NET.Sdk.Functions.Generator-4.1.1",
"configurationSource": "attributes",
"bindings": [
{
"type": "httpTrigger",
"direction": "in",
"dataType": "stream",
"route": "myroute",
"methods": [
"post"
],
"authLevel": "function",
"name": "req"
}
],
"disabled": false,
"scriptFile": "../bin/FunctionApp9.dll",
"entryPoint": "MyFunction.RunAsync"
}

Дополнительно по этому ТАК Thread ответ Энди. Ссылаясь на код Энди, я получил следующий вывод в своем браузере после запуска триггера http: - Здесь для response.ContentType установлено значение «application/json-data-stream»;
Код Энди: - Функция.cs: -
using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.Http; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System.Collections.Generic; namespace FunctionApp10 { public class Function1 { private async IAsyncEnumerable<string> GetDataAsync() { for (var i = 0; i < 100; ++i) { yield return "{\"hello\":\"world\"}"; } } [FunctionName("Function1")] public async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { var response = req.HttpContext.Response; await using var sw = new StreamWriter(response.Body); await foreach (var msg in GetDataAsync()) { await sw.WriteLineAsync(msg); } await sw.FlushAsync(); response.StatusCode = 200; response.ContentType = "application/json-data-stream"; return new EmptyResult(); } } }
Выход:- Триггер был выполнен: -

Получил потоковый ответ в браузере, как показано ниже:

Вы можете использовать «application/json-data-stream», обратитесь к этой теме SO здесь — stackoverflow.com/questions/67301743/…