.NET を使用して Azure Functions を構築し、開発プロキシを使用する場合は、 .NET アプリケーションで開発プロキシを使用するための一般的なガイダンスに従ってください。
Von Bedeutung
起動時に Azure Functions が失敗しないようにするには、--as-system-proxy false
オプションを使用するか、asSystemProxy
ファイルにfalse
するようにdevproxyrc.json
を構成して、システム プロキシとして登録せずに開発プロキシを起動します。 開発プロキシをシステム プロキシとして登録すると、起動時に Azure Functions が失敗し、次のようなエラー メッセージが表示されます。
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.")'
開発時の開発プロキシの使用と運用環境での使用を簡単に切り替えるには、環境変数を使用して Azure Functions アプリでプロキシを最適に構成できます。
local.settings.json
環境変数を含むようにHTTPS_PROXY
ファイルを変更します。
{
"IsEncrypted": false,
"Values": {
"HTTPS_PROXY": "http://127.0.0.1:8000"
}
}
HttpClient
.NET では、 HTTPS_PROXY
環境変数が自動的に取得され、それを使用して送信 HTTP 要求のプロキシが構成されます。
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);
}
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
Dev Proxy