Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir bakışta
Hedef: JS Azure İşlevleri ile Dev Proxy kullanma
Süre: 10 dakika
Eklentiler: Çeşitli
Önkoşullar:Geliştirme Proxy'sini ayarlama, Azure İşlevleri Temel Araçları
JavaScript kullanarak Azure İşlevleri derleyip Dev Proxy kullanmak istiyorsanız, Node.js uygulamalarla Geliştirme Proxy'si kullanmaya yönelik genel yönergeleri izleyin.
Önemli
Azure İşlevleri'nin başlangıçta başarısız olmasını önlemek için, Dev Proxy'yi bir sistem proxy'si olarak kaydetmeden başlatmak amacıyla --as-system-proxy false seçeneğini kullanarak ya da asSystemProxy-yi false olarak devproxyrc.json dosyasında yapılandırarak başlatın. Dev Proxy'yi bir sistem proxy'si olarak kaydederseniz Azure İşlevleri başlangıçta aşağıdakine benzer bir hata iletisiyle başarısız olur:
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.")'
Geliştirme aşamasında Dev Proxy kullanma ile üretimde kullanmama arasında kolayca geçiş yapabilmek için, ortam değişkenlerini kullanarak Azure İşlevleri uygulamanızda proxy'yi en iyi şekilde yapılandırabilirsiniz.
local.settings.json dosyasını HTTPS_PROXY ortam değişkenini içerecek şekilde değiştirin. Ayrıca, Azure İşlevleri uygulamasının Geliştirme Proxy'si tarafından kullanılan otomatik olarak imzalanan sertifikaya güvenmesine izin vermek için sertifika doğrulamayı devre dışı bırakın.
Dosya: 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"
}
}
Azure İşlevleri uygulamanızda, ortam değişkenlerini okumak ve HTTP istekleriniz için ara sunucuyu yapılandırmak için nesnesini kullanınprocess.env.
Dosya: 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
});