Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha az Azure Functionst a .NET használatával hozza létre, és dev proxyt szeretne használni, kövesse a Dev Proxy .NET-alkalmazásokkal való használatához szükséges általános útmutatást.
Fontos
Ha meg szeretné akadályozni, hogy az Azure Functions indításkor sikertelen legyen, indítsa el a Dev Proxyt anélkül, hogy rendszerproxyként regisztrálná. Ezt megteheti a --as-system-proxy false beállítás használatával, vagy ha beállítja a asSystemProxy értéket false-ra a devproxyrc.json fájlban. Ha a Dev Proxyt rendszerproxyként regisztrálja, az Azure Functions indításakor a következőhöz hasonló hibaüzenet jelenik meg:
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.")'
Ahhoz, hogy könnyen válthasson a Dev Proxy fejlesztési környezetben való használata és a produkciós környezetben való mellőzése között, az Azure Functions alkalmazásban a proxyt a legjobban környezeti változók használatával konfigurálhatja. Módosítsa a fájlt úgy local.settings.json , hogy tartalmazza a környezeti változót HTTPS_PROXY .
{
"IsEncrypted": false,
"Values": {
"HTTPS_PROXY": "http://127.0.0.1:8000"
}
}
HttpClient a .NET automatikusan felveszi a HTTPS_PROXY környezeti változót, és a proxy konfigurálására használja a kimenő HTTP-kérésekhez.
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);
}
}
}