Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Si vous générez Azure Functions à l’aide de .NET et souhaitez utiliser le proxy de développement, suivez les instructions générales relatives à l’utilisation du proxy de développement avec des applications .NET.
Important
Pour empêcher Azure Functions d’échouer au démarrage, démarrez le proxy de développement sans l’inscrire en tant que proxy système à l’aide de l’option --as-system-proxy false
ou en configurant asSystemProxy
sur false
le devproxyrc.json
fichier. Si vous inscrivez le proxy de développement en tant que proxy système, Azure Functions échoue au démarrage avec un message d’erreur similaire à :
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.")'
Pour pouvoir facilement basculer entre l’utilisation du proxy de développement dans le développement et ne pas l’utiliser en production, vous pouvez configurer le proxy dans votre application Azure Functions à l’aide de variables d’environnement. Modifiez le local.settings.json
fichier pour inclure la variable d’environnement HTTPS_PROXY
.
{
"IsEncrypted": false,
"Values": {
"HTTPS_PROXY": "http://127.0.0.1:8000"
}
}
HttpClient
dans .NET récupère automatiquement la HTTPS_PROXY
variable d’environnement et l’utilise pour configurer le proxy pour les requêtes HTTP sortantes.
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);
}
}
}