Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jeśli tworzysz usługę Azure Functions przy użyciu języka JavaScript i chcesz używać serwera proxy deweloperskiego, postępuj zgodnie z ogólnymi wskazówkami dotyczącymi korzystania z serwera proxy deweloperskiego z aplikacjami Node.js.
Ważne
Aby zapobiec awarii usługi Azure Functions podczas uruchamiania, uruchom Dev Proxy bez rejestrowania go jako proxy systemowego, korzystając z opcji --as-system-proxy false lub poprzez skonfigurowanie asSystemProxy do false w pliku devproxyrc.json. Jeśli zarejestrujesz serwer proxy dev jako serwer proxy systemu, usługa Azure Functions zakończy się niepowodzeniem podczas uruchamiania z komunikatem o błędzie podobnym do następującego:
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.")'
Aby móc łatwo przełączać się między używaniem serwera proxy deweloperskiego w środowisku deweloperskim i nie używać go w środowisku produkcyjnym, najlepiej skonfigurować serwer proxy w aplikacji usługi Azure Functions przy użyciu zmiennych środowiskowych. Zmień plik, local.settings.json aby uwzględnić zmienną HTTPS_PROXY środowiskową. Ponadto wyłącz walidację certyfikatu, aby umożliwić aplikacji Usługi Azure Functions ufanie certyfikatowi z podpisem własnym używanemu przez serwer proxy deweloperów.
{
"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"
}
}
W aplikacji usługi Azure Functions użyj process.env obiektu , aby odczytać zmienne środowiskowe i skonfigurować serwer proxy dla żądań 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
});