Tengo una aplicación lógica que está tratando de PUBLICAR un mensaje grande en un punto final HTTP pero obtengo un error:

enter image description here

¿Existe alguna forma sencilla de aumentar el tiempo de espera? ¿O una forma fácil de PUBLICAR mensajes grandes en un punto final HTTP?

Soy consciente del límite predeterminado:

enter image description here

También probé Chunking pero sigo teniendo el mismo problema.

0
Victor McIntyre 3 mar. 2021 a las 12:24

1 respuesta

La mejor respuesta

1. Tal vez puedas crear un Función duradera de Azure como su punto de conexión Http:

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.DurableTask;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;

namespace FrankDurableFunction
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static async Task<List<string>> RunOrchestrator(
            [OrchestrationTrigger] IDurableOrchestrationContext context)
        {
            var outputs = new List<string>();

            // Replace "hello" with the name of your Durable Activity Function.
            outputs.Add(await context.CallActivityAsync<string>("Function1_Hello", "Tokyo"));
            //outputs.Add(await context.CallActivityAsync<string>("Function1_Hello", context.GetInput<ProcessRequest>()));

            return outputs;
        }

        [FunctionName("Function1_Hello")]
        public static string SayHello([ActivityTrigger] string name, ILogger log)
        {
            log.LogInformation($"Saying hello to {name}.");
            Thread.Sleep(TimeSpan.FromMinutes(3));
            return $"Hello {name}!";
        }

        [FunctionName("Function1_HttpStart")]
        public static async Task<HttpResponseMessage> HttpStart(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequestMessage req,
            [DurableClient] IDurableOrchestrationClient starter,
            ILogger log)
        {
            //ProcessRequest requestData = await req.Content.ReadAsAsync<ProcessRequest>();
            // Function input comes from the request content.
            //string instanceId = await starter.StartNewAsync("Function1", requestData);

            string instanceId = await starter.StartNewAsync("Function1", null);

            log.LogInformation($"Started orchestration with ID = '{instanceId}'.");
            var response = starter.CreateCheckStatusResponse(req, instanceId);
            response.Headers.RetryAfter = new RetryConditionHeaderValue(TimeSpan.FromSeconds(10));
            return response;
        }
    }
    public class ProcessRequest
    {
        public string data { get; set; }
    }
}

2. Activa Asynchronous Pattern para la configuración de Http

enter image description here

Hice una prueba y el resultado no parece ser un problema.

enter image description here

1
Frank Gong 4 mar. 2021 a las 05:49