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.
Sekilas
Tujuan: Menggunakan Dev Proxy dengan JS Azure Functions
Waktu: 10 menit
Plugin: Berbagai
Prasyarat:Menyiapkan Dev Proxy, Azure Functions Core Tools
Jika Anda membuat Azure Functions menggunakan JavaScript dan ingin menggunakan Dev Proxy, ikuti panduan umum untuk menggunakan Dev Proxy dengan aplikasi Node.js.
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. Selain itu, nonaktifkan validasi sertifikat untuk memungkinkan aplikasi Azure Functions mempercayai sertifikat yang ditandatangani sendiri yang digunakan oleh Dev Proxy.
File: local.settings.json
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "node",
"AzureWebJobsFeatureFlags": "EnableWorkerIndexing",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"HTTPS_PROXY": "http://127.0.0.1:8000",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
Di aplikasi Azure Functions Anda, gunakan process.env objek untuk membaca variabel lingkungan dan mengonfigurasi proksi untuk permintaan HTTP Anda.
File: src/functions/MyFnHttpTrigger.ts
import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";
import fetch from 'node-fetch';
import { HttpsProxyAgent } from 'https-proxy-agent';
export async function MyFnHttpTrigger(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
const options = process.env.HTTPS_PROXY ? { agent: new HttpsProxyAgent(process.env.HTTPS_PROXY) } : {};
const resp = await fetch('https://jsonplaceholder.typicode.com/posts', options);
const data = await resp.json();
return {
status: 200,
jsonBody: data
};
};
app.http('MyFnHttpTrigger', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
handler: MyFnHttpTrigger
});