Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Jika Anda membuat Azure Functions menggunakan .NET dan ingin menggunakan Dev Proxy, ikuti panduan umum untuk menggunakan Dev Proxy dengan aplikasi .NET.
Penting
Untuk mencegah Azure Functions gagal saat memulai, mulai Proksi Dev tanpa mendaftarkannya sebagai proksi sistem baik dengan menggunakan opsi --as-system-proxy false
atau dengan mengonfigurasi asSystemProxy
ke false
dalam file devproxyrc.json
. Jika Anda mendaftarkan Proksi Dev sebagai proksi sistem, Azure Functions gagal saat memulai dengan pesan kesalahan yang mirip dengan:
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.")'
Agar dapat dengan mudah beralih antara menggunakan Dev Proxy dalam pengembangan dan tidak menggunakannya dalam produksi, Anda dapat mengonfigurasi proksi paling baik di aplikasi Azure Functions Anda menggunakan variabel lingkungan.
local.settings.json
Ubah file untuk menyertakan HTTPS_PROXY
variabel lingkungan.
{
"IsEncrypted": false,
"Values": {
"HTTPS_PROXY": "http://127.0.0.1:8000"
}
}
HttpClient
di .NET secara otomatis mengambil variabel lingkungan HTTPS_PROXY
dan menggunakannya untuk mengonfigurasi proksi untuk permintaan HTTP keluar.
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);
}
}
}