Usare Dev Proxy con JavaScript Funzioni di Azure
Se si compila Funzioni di Azure usando JavaScript e si vuole usare Dev Proxy, seguire le indicazioni generali per l'uso di Dev Proxy con applicazioni Node.js.
Per essere in grado di passare facilmente dall'uso di Dev Proxy in fase di sviluppo e non dall'uso nell'ambiente di produzione, è possibile configurare meglio il proxy nell'app Funzioni di Azure usando le variabili di ambiente. Modificare il local.settings.json
file in modo da includere la HTTPS_PROXY
variabile di ambiente. Disabilitare inoltre la convalida del certificato per consentire all'app Funzioni di Azure di considerare attendibile il certificato autofirmato usato dal proxy di sviluppo.
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "node",
"AzureWebJobsFeatureFlags": "EnableWorkerIndexing",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"HTTP_PROXY": "http://127.0.0.1:8000",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
Nell'app Funzioni di Azure usare l'oggetto process.env
per leggere le variabili di ambiente e configurare il proxy per le richieste HTTP.
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.HTTP_PROXY ? { agent: new HttpsProxyAgent(process.env.HTTP_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
});