Compartir a través de


Uso del proxy de desarrollo con Azure Functions de JavaScript

Si compila Azure Functions con JavaScript y quiere usar el proxy de desarrollo, siga las instrucciones generales para usar el proxy de desarrollo con aplicaciones de Node.js.

Para poder cambiar fácilmente entre el uso del proxy de desarrollo en desarrollo y no usarlo en producción, puede configurar mejor el proxy en la aplicación de Azure Functions mediante variables de entorno. Cambie el local.settings.json archivo para incluir la variable de HTTPS_PROXY entorno. Además, deshabilite la validación de certificados para permitir que la aplicación de Azure Functions confíe en el certificado autofirmado usado por el proxy de desarrollo.

{
  "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"
  }
}

En la aplicación de Azure Functions, use el process.env objeto para leer las variables de entorno y configurar el proxy para las solicitudes 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
});