Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Si compila Azure Functions con .NET y quiere usar el proxy de desarrollo, siga las instrucciones generales para usar el proxy de desarrollo con aplicaciones .NET.
Importante
Para evitar que Azure Functions falle al iniciarse, inicie Dev Proxy sin registrarlo como proxy del sistema, ya sea utilizando la opción --as-system-proxy false
o configurando asSystemProxy
en el archivo false
devproxyrc.json
. Si registra Dev Proxy como proxy del sistema, Azure Functions produce un error al iniciarse con un mensaje de error similar al siguiente:
Grpc.Core.RpcException: 'Status(StatusCode="Internal", Detail="Error starting gRPC call. HttpRequestException: Requesting HTTP version 2.0 with version policy RequestVersionOrHigher while unable to establish HTTP/2 connection.", DebugException="System.Net.Http.HttpRequestException: Requesting HTTP version 2.0 with version policy RequestVersionOrHigher while unable to establish HTTP/2 connection.")'
Para poder cambiar fácilmente entre el uso del proxy de desarrollo en desarrollo y no usarlo en producción, puede configurar mejor el proxy en la aplicación de Azure Functions mediante variables de entorno. Cambie el local.settings.json
archivo para incluir la variable de HTTPS_PROXY
entorno.
{
"IsEncrypted": false,
"Values": {
"HTTPS_PROXY": "http://127.0.0.1:8000"
}
}
HttpClient
en .NET selecciona automáticamente la HTTPS_PROXY
variable de entorno y la usa para configurar el proxy para las solicitudes HTTP salientes.
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace dotnet_azure_fn;
public class MyFn(ILogger<MyFn> logger, IHttpClientFactory httpClientFactory)
{
private readonly ILogger<MyFn> _logger = logger;
private readonly HttpClient _httpClient = httpClientFactory.CreateClient();
[Function("MyFn")]
public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req)
{
_logger.LogInformation("C# HTTP trigger function processed a request.");
var result = await _httpClient.GetAsync("https://jsonplaceholder.typicode.com/posts");
if (result.IsSuccessStatusCode)
{
return new OkObjectResult(await result.Content.ReadAsStringAsync());
}
else
{
_logger.LogError("HTTP request failed.");
return new StatusCodeResult(StatusCodes.Status500InternalServerError);
}
}
}