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

İşlevler sürüm 2.x'den başlayarak HTTP uzantısı, host.json proje dosyanızda belirtilen bir uzantı paketinin parçasıdır. Daha fazla bilgi edinmek için bkz . uzantı paketi.

Uzantının bu sürümü, işlev uygulamanız için uzantı paketi sürüm 2.x ile zaten kullanılabilir olmalıdır.

host.json ayarları

Bu bölümde, 2.x ve üzeri 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şlevlere uygulanır. Aşağıdaki örnek host.json dosyası, bu bağlama için yalnızca sürüm 2.x+ ayarlarını içerir. 2.x ve sonraki sürümlerdeki işlev uygulaması yapılandırma ayarları hakkında daha fazla bilgi için bkz. Azure İşlevleri için host.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.
dynamicThrottlesEnabled True* 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. Ayrılmış planda varsayılan değerdir false.
hsts etkin değil isEnabled olarak ayarlandığındatrue, .NET Core'un HTTP Katı Aktarım Güvenliği (HSTS) davranışı sınıfında tanımlandığı 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.
MaxageStrict-Transport-Security üst bilgisinin max-age parametresini tanımlayan dize.
PreloadStrict-Transport-Security üst bilgisinin ön yükleme parametresinin etkinleştirilip etkinleştirilmediğini gösteren Boole değeri.
maxConcurrentRequests 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. Ayrılmış plan için varsayılan değer 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. Ayrılmış plan için varsayılan değer ilişkisizdir (-1 ).
routePrefix 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