Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Importante
Para evitar que Azure Functions falle al iniciarse, inicie Dev Proxy sin registrarlo como proxy del sistema, ya sea utilizando la opción --as-system-proxy false
o configurando asSystemProxy
en el archivo false
devproxyrc.json
. Si registra Dev Proxy como proxy del sistema, Azure Functions produce un error al iniciarse con un mensaje de error similar al siguiente:
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.")'
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",
"HTTPS_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.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
});