Aracılığıyla paylaş


HTTP tetikleyicilerine ve bağlamalarına genel bakış Azure İşlevleri

Azure İşlevleri sunucusuz API'ler oluşturmak ve web kancalarına yanıt vermek için HTTP istekleri aracılığıyla çağrılabilir.

Eylem Tür
HTTP isteğinden işlev çalıştırma Tetikleyici
İşlevden HTTP yanıtı döndürme Çıkış bağlaması

Uzantıyı yükleme

Yüklediğiniz NuGet uzantısı, işlev uygulamanızda kullandığınız C# moduna bağlıdır:

İşlevler yalıtılmış bir C# çalışan işleminde yürütülür. Daha fazla bilgi edinmek için bkz. Yalıtılmış çalışan işleminde C# Azure İşlevleri çalıştırma kılavuzu.

Uzantının işlevselliği, uzantı sürümüne bağlı olarak değişir:

NuGet paketi sürüm 3.x'i yükleyerek uzantıyı projenize ekleyin.

Not

.NET Yalıtılmış'da ASP.NET Core tümleştirmesi için ek bir uzantı paketi gereklidir

Paket yükleme

Bu bağlama uzantısını uygulamanızda kullanabilmek için projenizin kökündeki host.json dosyasının şu extensionBundle başvuruyu içerdiğinden emin olun:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

Bu örnekte, version değeri [4.0.0, 5.0.0) İşlevler konağına en az 4.0.0 ama daha küçük 5.0.0olan ve 4.x'in tüm olası sürümlerini içeren bir paket sürümü kullanma talimatı verir. Bu gösterimi, uygulamanızı v4.x uzantı paketinin kullanılabilir en son ikincil sürümünde etkili bir şekilde korur.

Mümkün olduğunda, en son uzantı paketi ana sürümünü kullanmanız ve çalışma zamanının en son ikincil sürümü otomatik olarak korumasına izin vermelisiniz. Uzantı paketleri yayın sayfasında en son paketin içeriğini görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Azure İşlevleri uzantı paketleri.

host.json ayarları

Bu bölümde, 2.x ve sonraki sürümlerde bu bağlama için kullanılabilen yapılandırma ayarları açıklanmaktadır. host.json dosyasındaki ayarlar, bir işlev uygulaması örneğindeki tüm işlevler için geçerlidir. İşlev uygulaması yapılandırma ayarları hakkında daha fazla bilgi için bkz. Azure İşlevleri içinhost.json başvuru.

Not

İşlevler 1.x'teki host.json başvurusu için bkz. Azure İşlevleri 1.x için host.json başvuru.

{
    "extensions": {
        "http": {
            "routePrefix": "api",
            "maxOutstandingRequests": 200,
            "maxConcurrentRequests": 100,
            "dynamicThrottlesEnabled": true,
            "hsts": {
                "isEnabled": true,
                "maxAge": "10"
            },
            "customHeaders": {
                "X-Content-Type-Options": "nosniff"
            }
        }
    }
}
Özellik Varsayılan Açıklama
customHeaders yok HTTP yanıtında özel üst bilgiler ayarlamanıza olanak tanır. Önceki örnek, içerik türü algılamasını önlemek için üst bilgiyi yanıta ekler X-Content-Type-Options . Bu özel üst bilgi, işlev uygulamasındaki tüm HTTP ile tetiklenen işlevler için geçerlidir.
DinamikThrottlesEtkin doğru* Bu ayar etkinleştirildiğinde, istek işleme işlem hattının gibi connections/threads/processes/memory/cpu/etc sistem performans sayaçlarını düzenli aralıklarla denetlemesine neden olur ve bu sayaçlardan herhangi biri yerleşik yüksek eşikten (%80) fazlaysa, sayaçlar normal düzeylere dönene kadar istekler yanıtla 429 "Too Busy" reddedilir.
*Tüketim planında varsayılan değerdir true. Premium ve Ayrılmış planlarda varsayılan değerdir false.
hsts etkin değil isEnabled olarak ayarlandığındatrue, HstsOptions gibi zorlanır. Yukarıdaki örnekte özelliği de 10 gün olarak ayarlır maxAge . Desteklenen özellikleri hsts şunlardır:
ÖzellikAçıklama
excludedHostsHSTS üst bilgisinin eklenmediği konak adlarından oluşan bir dize dizisi.
includeSubDomainsStrict-Transport-Security üst bilgisinin includeSubDomain parametresinin etkinleştirilip etkinleştirilmediğini gösteren Boole değeri.
maxAge (Maksimum Yaş)Strict-Transport-Security üst bilgisinin max-age parametresini tanımlayan dize.
ön yüklemeStrict-Transport-Security üst bilgisinin ön yükleme parametresinin etkinleştirilip etkinleştirilmediğini gösteren Boole değeri.
En Fazla Eşzamanlı İstekler 100* Paralel olarak yürütülen EN FAZLA HTTP işlevi sayısı. Bu değer, kaynak kullanımını yönetmeye yardımcı olabilecek eşzamanlılığı denetlemenize olanak tanır. Örneğin, eşzamanlılık çok yüksek olduğunda sorunlara neden olacak şekilde çok sayıda sistem kaynağı (bellek/cpu/yuva) kullanan bir HTTP işlevine sahip olabilirsiniz. Ya da üçüncü taraf bir hizmete giden istekler yapan bir işleviniz olabilir ve bu çağrıların hız sınırlaması olması gerekir. Böyle durumlarda burada kısıtlama uygulamak yararlı olabilir.
*Tüketim planı için varsayılan değer 100'dür. Premium ve Ayrılmış planların varsayılanı ilişkisizdir (-1 ).
maxOutstandingRequests 200* Herhangi bir zamanda tutulan bekleyen istek sayısı üst sınırı. Bu sınır, kuyruğa alınmış ancak yürütülmeye başlamamış isteklerin yanı sıra devam eden yürütmeleri de içerir. Bu sınırı aşan tüm gelen istekler 429 "Çok Meşgul" yanıtıyla reddedilir. Bu, çağıranların zamana dayalı yeniden deneme stratejilerini kullanmasına olanak tanır ve ayrıca maksimum istek gecikme sürelerini denetlemenize yardımcı olur. Bu yalnızca betik ana bilgisayar yürütme yolunda gerçekleşen kuyruğa alma işlemini denetler. ASP.NET istek kuyruğu gibi diğer kuyruklar çalışmayan devam eder ve bu ayardan etkilenmez.
*Tüketim planı için varsayılan değer 200'dür. Premium ve Ayrılmış planların varsayılanı ilişkisizdir (-1 ).
rotaÖneki API Tüm yollar için geçerli olan yol ön eki. Varsayılan ön eki kaldırmak için boş bir dize kullanın.

Sonraki adımlar