Aracılığıyla paylaş


Azure İşlevleri 2.x ve üzeri için host.json başvurusu

host.json meta veri dosyası, bir işlev uygulaması örneğindeki tüm işlevleri etkileyen yapılandırma seçeneklerini içerir. Bu makalede, Azure İşlevleri çalışma zamanının 2.x sürümünden itibaren kullanılabilen ayarlar listelenir.

Not

Bu makale Azure İşlevleri 2.x ve sonraki sürümlere yöneliktir. İşlevler 1.x'teki host.json başvurusu için bkz. Azure İşlevleri 1.x için host.json başvuru.

Diğer işlev uygulaması yapılandırma seçenekleri, işlev uygulamasının çalıştığı yere bağlı olarak yönetilir:

  • Azure'a dağıtıldı: Uygulama ayarlarınızda
  • Yerel bilgisayarınızda: local.settings.json dosyasında.

bağlamalarla ilgili host.json yapılandırmaları, işlev uygulamasındaki her işleve eşit olarak uygulanır.

Ayrıca uygulama ayarlarını kullanarak ortam başına ayarları geçersiz kılabilir veya uygulayabilirsiniz.

Örnek host.json dosyası

Sürüm 2.x+ için aşağıdaki örnek host.json dosyasında tüm olası seçenekler belirtilmiştir (yalnızca iç kullanım için olan seçenekler hariç).

{
    "version": "2.0",
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    },
    "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        },
    "extensions": {
        "blobs": {},
        "cosmosDb": {},
        "durableTask": {},
        "eventHubs": {},
        "http": {},
        "queues": {},
        "sendGrid": {},
        "serviceBus": {}
    },
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    },
    "functions": [ "QueueProcessor", "GitHubWebHook" ],
    "functionTimeout": "00:05:00",
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    },
    "logging": {
        "fileLoggingMode": "debugOnly",
        "logLevel": {
          "Function.MyFunction": "Information",
          "default": "None"
        },
        "applicationInsights": {
            "samplingSettings": {
              "isEnabled": true,
              "maxTelemetryItemsPerSecond" : 20,
              "evaluationInterval": "01:00:00",
              "initialSamplingPercentage": 100.0, 
              "samplingPercentageIncreaseTimeout" : "00:00:01",
              "samplingPercentageDecreaseTimeout" : "00:00:01",
              "minSamplingPercentage": 0.1,
              "maxSamplingPercentage": 100.0,
              "movingAverageRatio": 1.0,
              "excludedTypes" : "Dependency;Event",
              "includedTypes" : "PageView;Trace"
            },
            "dependencyTrackingOptions": {
                "enableSqlCommandTextInstrumentation": true
            },
            "enableLiveMetrics": true,
            "enableDependencyTracking": true,
            "enablePerformanceCountersCollection": true,            
            "httpAutoCollectionOptions": {
                "enableHttpTriggerExtendedInfoCollection": true,
                "enableW3CDistributedTracing": true,
                "enableResponseHeaderInjection": true
            },
            "snapshotConfiguration": {
                "agentEndpoint": null,
                "captureSnapshotMemoryWeight": 0.5,
                "failedRequestLimit": 3,
                "handleUntrackedExceptions": true,
                "isEnabled": true,
                "isEnabledInDeveloperMode": false,
                "isEnabledWhenProfiling": true,
                "isExceptionSnappointsEnabled": false,
                "isLowPrioritySnapshotUploader": true,
                "maximumCollectionPlanSize": 50,
                "maximumSnapshotsRequired": 3,
                "problemCounterResetInterval": "24:00:00",
                "provideAnonymousTelemetry": true,
                "reconnectInterval": "00:15:00",
                "shadowCopyFolder": null,
                "shareUploaderProcess": true,
                "snapshotInLowPriorityThread": true,
                "snapshotsPerDayLimit": 30,
                "snapshotsPerTenMinutesLimit": 1,
                "tempFolder": null,
                "thresholdForSnapshotting": 1,
                "uploaderProxy": null
            }
        }
    },
    "managedDependency": {
        "enabled": true
    },
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    },
    "telemetryMode": "OpenTelemetry",
    "watchDirectories": [ "Shared", "Test" ],
    "watchFiles": [ "myFile.txt" ]
}

Bu makalenin aşağıdaki bölümlerinde her üst düzey özellik açıklanmaktadır. Aksi belirtilmediği sürece tümü isteğe bağlıdır.

Toplayıcı

Application Insights ölçümlerini hesaplarken kaç işlev çağrısının toplanmış olduğunu belirtir.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
Özellik Varsayılan Açıklama
batchSize 1000 Toplanmış en fazla istek sayısı.
flushTimeout 00:00:30 Top alınacak en uzun süre.

İki sınırdan ilki ulaşıldığında işlev çağrıları toplanır.

applicationInsights

Bu ayar, günlüğe kaydetmenin alt öğesidir.

Örnekleme seçenekleri de dahil olmak üzere Application Insights seçeneklerini denetler.

JSON yapısının tamamı için önceki örnek host.json dosyasına bakın.

Not

Günlük örnekleme, bazı yürütmelerin Application Insights izleyici dikey penceresinde gösterilmemesine neden olabilir. Günlük örneklemesini önlemek için samplingSettings değerini ekleyinexcludedTypes: "Request".

Özellik Varsayılan Açıklama
samplingSettings yok Bkz . applicationInsights.samplingSettings.
dependencyTrackingOptions yok Bkz . applicationInsights.dependencyTrackingOptions.
enableLiveMetrics true Canlı ölçüm toplamayı etkinleştirir.
enableDependencyTracking true Bağımlılık izlemeyi etkinleştirir.
enablePerformanceCountersCollection true Kudu performans sayaçları koleksiyonunu etkinleştirir.
liveMetricsInitializationDelay 00:00:15 Yalnızca şirket içi kullanım içindir.
httpAutoCollectionOptions yok Bkz . applicationInsights.httpAutoCollectionOptions.
snapshotConfiguration yok Bkz . applicationInsights.snapshotConfiguration.

applicationInsights.samplingSettings

Bu ayarlar hakkında daha fazla bilgi için bkz . Application Insights'ta Örnekleme.

Özellik Varsayılan Açıklama
isEnabled true Örneklemeyi etkinleştirir veya devre dışı bırakır.
maxTelemetryItemsPerSecond 20 Her sunucu konağına saniyede günlüğe kaydedilen telemetri öğelerinin hedef sayısı. Uygulamanız birçok konakta çalışıyorsa, genel hedef trafik oranınızın içinde kalmak için bu değeri azaltın.
evaluationInterval 01:00:00 Geçerli telemetri hızının yeniden değerlendirildiği aralık. Değerlendirme hareketli ortalama olarak gerçekleştirilir. Telemetriniz ani patlamalara karşı sorumluysa bu aralığı kısaltmak isteyebilirsiniz.
initialSamplingPercentage 100.0 Örnekleme işleminin başlangıcında uygulanan ilk örnekleme yüzdesi, yüzdeyi dinamik olarak değiştirmek için kullanılır. Hata ayıklarken değeri azaltmayın.
samplingPercentageIncreaseTimeout 00:00:01 Örnekleme yüzdesi değeri değiştiğinde, bu özellik Application Insights'ın daha fazla veri yakalamak için örnekleme yüzdesini yeniden yükseltmesine ne kadar süre içinde izin verileceğini belirler.
samplingPercentageDecreaseTimeout 00:00:01 Örnekleme yüzdesi değeri değiştiğinde, bu özellik Application Insights'ın daha az veri yakalamak için örnekleme yüzdesini ne kadar süre sonra yeniden düşürmesine izin verileceğini belirler.
minSamplingPercentage 0,1 Örnekleme yüzdesi farklılık gösterdiğinden, bu özellik izin verilen en düşük örnekleme yüzdesini belirler.
maxSamplingPercentage 100.0 Örnekleme yüzdesi farklılık gösterdiğinden, bu özellik izin verilen en yüksek örnekleme yüzdesini belirler.
movingAverageRatio 1.0 Hareketli ortalamanın hesaplanmasında, en son değere atanan ağırlık. 1'e eşit veya 1'den küçük bir değer kullanın. Daha küçük değerler, algoritmanın ani değişikliklere daha az reaktif olmasını sağlar.
excludedTypes boş Örneklenmek istemediğiniz türlerin noktalı virgülle ayrılmış listesi. Tanınan türler şunlardır: Dependency, Event, Exception, PageView, Requestve Trace. Belirtilen türlerin tüm örnekleri iletilir; belirtilmeyen türler örneklenir.
includedTypes boş Örneklemek istediğiniz türlerin noktalı virgülle ayrılmış listesi; boş bir liste tüm türleri gösterir. Burada listelenen geçersiz kılma türlerinde excludedTypes listelenen tür. Tanınan türler şunlardır: Dependency, Event, Exception, PageView, Requestve Trace. Belirtilen türlerin örnekleri örneklenir; belirtilmeyen veya örtük türler örnekleme olmadan iletilir.

applicationInsights.httpAutoCollectionOptions

Özellik Varsayılan Açıklama
enableHttpTriggerExtendedInfoCollection true HTTP tetikleyicileri için genişletilmiş HTTP isteği bilgilerini etkinleştirir veya devre dışı bırakır: gelen istek bağıntı üst bilgileri, çoklu izleme anahtarları desteği, HTTP yöntemi, yol ve yanıt.
enableW3CDistributedTracing true W3C dağıtılmış izleme protokolü desteğini etkinleştirir veya devre dışı bırakır (ve eski bağıntı şemasını açar). True ise enableHttpTriggerExtendedInfoCollection varsayılan olarak etkindir. enableHttpTriggerExtendedInfoCollection False ise, bu bayrak yalnızca giden istekler için geçerlidir, gelen istekler için geçerli değildir.
enableResponseHeaderInjection true Çok bileşenli bağıntı üst bilgilerinin yanıtlara eklenmesini etkinleştirir veya devre dışı bırakır. Eklemenin etkinleştirilmesi, Application Insights'ın birkaç izleme anahtarı kullanıldığında uygulama eşlemesi oluşturmasına olanak tanır. True ise enableHttpTriggerExtendedInfoCollection varsayılan olarak etkindir. Bu ayar false ise enableHttpTriggerExtendedInfoCollection geçerli değildir.

applicationInsights.dependencyTrackingOptions

Özellik Varsayılan Açıklama
enableSqlCommandTextInstrumentation yanlış Varsayılan olarak devre dışı bırakılan SQL sorgularının tam metninin toplanmasını sağlar. SQL sorgu metnini toplama hakkında daha fazla bilgi için bkz . Tam SQL sorgusu almak için Gelişmiş SQL izleme.

applicationInsights.snapshotConfiguration

Anlık görüntüler hakkında daha fazla bilgi için bkz . .NET uygulamalarında özel durumlarda anlık görüntülerde hata ayıklama ve Application Insights Anlık Görüntü Hata Ayıklayıcısı'nı etkinleştirme veya anlık görüntüleri görüntüleme sorunlarını giderme.

Özellik Varsayılan Açıklama
agentEndpoint boş Application Insights Snapshot Debugger hizmetine bağlanmak için kullanılan uç nokta. Null ise, varsayılan uç nokta kullanılır.
captureSnapshotMemoryWeight 0,5 Anlık görüntü almak için yeterli bellek olup olmadığını denetlerken geçerli işlem bellek boyutuna verilen ağırlık. Beklenen değer 0'dan büyük bir doğru kesirdir (0 < CaptureSnapshotMemoryWeight < 1).
failedRequestLimit 3 Telemetri işlemcisi devre dışı bırakılmadan önce anlık görüntü istemek için başarısız istek sayısı sınırı.
handleUntrackedExceptions true Application Insights telemetrisi tarafından izlenilmeyen özel durumların izlenmesini etkinleştirir veya devre dışı bırakır.
isEnabled true Anlık görüntü toplamayı etkinleştirir veya devre dışı bırakır
isEnabledInDeveloperMode yanlış Geliştirici modunda anlık görüntü toplamayı etkinleştirir veya devre dışı bırakır.
isEnabledWhenProfiling true Application Insights Profil Oluşturucu ayrıntılı bir profil oluşturma oturumu topluyor olsa bile anlık görüntü oluşturmayı etkinleştirir veya devre dışı bırakır.
isExceptionSnappointsEnabled yanlış Özel durumların filtrelenmesine olanak tanır veya devre dışı bırakır.
isLowPrioritySnapshotUploader true SnapshotUploader işleminin normal önceliğin altında çalıştırılıp çalıştırılmayacağını belirler.
maximumCollectionPlanSize 50 Bir ile 9999 arasında herhangi bir zamanda izleyebileceğiniz maksimum sorun sayısı.
maximumSnapshotsRequired 3 Bir ile 999 arasında tek bir sorun için toplanan en fazla anlık görüntü sayısı. Bir sorun, uygulamanızda tek bir throw deyimi olarak düşünülebilir. Bir sorun için toplanan anlık görüntü sayısı bu değere ulaştığında, sorun sayaçları sıfırlanıp sınıra yeniden ulaşılana kadar bu sorun için artık anlık görüntü toplanmaz .problemCounterResetIntervalthresholdForSnapshotting
problemCounterResetInterval 24:00:00 Bir dakika ile yedi gün arasında bir aralıktaki sorun sayaçlarını sıfırlama sıklıkları. Bu zaman aralığına ulaşıldığında, tüm sorun sayıları sıfırlanır. Anlık görüntü oluşturma eşiğine zaten ulaşmış ancak içinde anlık görüntü maximumSnapshotsRequiredsayısını henüz oluşturmamış olan mevcut sorunlar etkin kalır.
provideAnonymousTelemetry true Microsoft'a anonim kullanım ve hata telemetrisi gönderilip gönderilmeyeceğini belirler. Bu telemetri, Anlık Görüntü Hata Ayıklayıcısı ile ilgili sorunları gidermeye yardımcı olması için Microsoft ile iletişim kurarsanız kullanılabilir. Kullanım desenlerini izlemek için de kullanılır.
reconnectInterval 00:15:00 Snapshot Debugger uç noktasına ne sıklıkta yeniden bağlanıyoruz? İzin verilebilen aralık bir dakikadan bir güne kadardır.
shadowCopyFolder boş Gölge kopyalama ikili dosyaları için kullanılacak klasörü belirtir. Ayarlanmazsa, aşağıdaki ortam değişkenleri tarafından belirtilen klasörler sırayla denenebilir: Fabric_Folder_App_Temp, LOCALAPPDATA, APPDATA, TEMP.
shareUploaderProcess true Doğruysa, SnapshotUploader'ın yalnızca bir örneği InstrumentationKey'i paylaşan birden çok uygulama için anlık görüntüleri toplar ve karşıya yükler. false olarak ayarlanırsa SnapshotUploader her (ProcessName, InstrumentationKey) tanımlama grubu için benzersiz olur.
snapshotInLowPriorityThread true Anlık görüntülerin düşük GÇ öncelikli iş parçacığında işlenip işlenmeyeceğini belirler. Anlık görüntü oluşturmak hızlı bir işlemdir, ancak anlık görüntüyü Snapshot Debugger hizmetine yüklemek için önce diske minidump olarak yazılması gerekir. Bu, SnapshotUploader işleminde gerçekleşir. Bu değeri true olarak ayarlamak, minidump yazmak için düşük öncelikli GÇ kullanır ve bu da uygulamanızla kaynaklar için rekabet etmez. Bu değeri false olarak ayarlamak, uygulamanızı yavaşlatma pahasına minidump oluşturmayı hızlandırır.
snapshotsPerDayLimit 30 Bir günde izin verilen en fazla anlık görüntü sayısı (24 saat). Bu sınır, Application Insights hizmeti tarafında da uygulanır. Karşıya yüklemeler uygulama başına günlük 50 ile sınırlıdır (yani izleme anahtarı başına). Bu değer, karşıya yükleme sırasında sonunda reddedilecek ek anlık görüntülerin oluşturulmasını önlemeye yardımcı olur. Sıfır değeri sınırı tamamen kaldırır ve bu önerilmez.
snapshotsPerTenMinutesLimit 1 10 dakika içinde izin verilen en fazla anlık görüntü sayısı. Bu değer üzerinde üst sınır olmasa da, uygulamanızın performansını etkileyebileceğinden üretim iş yüklerinde artırmaya dikkat edin. Anlık görüntü oluşturmak hızlıdır, ancak anlık görüntünün minidump'unu oluşturup Snapshot Debugger hizmetine yüklemek, uygulamanızla kaynaklar (hem CPU hem de G/Ç) için rekabet edecek çok daha yavaş bir işlemdir.
tempFolder boş Minidumps ve karşıya yükleyen günlük dosyaları yazacak klasörü belirtir. Ayarlanmadıysa % TEMP%\Dumps kullanılır.
thresholdForSnapshotting 1 Application Insights'ın anlık görüntü istemeden önce kaç kez özel durum görmesi gerekir.
uploaderProxy boş Anlık Görüntü Yükleyicisi işleminde kullanılan proxy sunucusunu geçersiz kılar. Uygulamanız bir ara sunucu aracılığıyla İnternet'e bağlanıyorsa bu ayarı kullanmanız gerekebilir. Anlık Görüntü Toplayıcı, uygulamanızın işlemi içinde çalışır ve aynı ara sunucu ayarlarını kullanır. Ancak, Anlık Görüntü Yükleyicisi ayrı bir işlem olarak çalışır ve proxy sunucusunu el ile yapılandırmanız gerekebilir. Bu değer null ise, Anlık Görüntü Toplayıcı değeri inceleyip System.Net.WebRequest.DefaultWebProxy Anlık Görüntü Yükleyicisi'ne geçirerek ara sunucunun adresini otomatik olarak algılamayı dener. Bu değer null değilse, otomatik işlem kullanılmaz ve burada belirtilen proxy sunucusu Anlık Görüntü Yükleyicisi'nde kullanılır.

bloblar

Yapılandırma ayarları Depolama blobu tetikleyicileri ve bağlamalarında bulunabilir.

console

Bu ayar, günlüğe kaydetmenin alt öğesidir. Hata ayıklama modunda değilken konsol günlüğünü denetler.

{
    "logging": {
    ...
        "console": {
          "isEnabled": false,
          "DisableColors": true
        },
    ...
    }
}
Özellik Varsayılan Açıklama
DisableColors yanlış Linux'taki kapsayıcı günlüklerinde günlük biçimlendirmesini gizler. Linux üzerinde çalışırken kapsayıcı günlüklerinde istenmeyen ANSI denetim karakterleri görüyorsanız true olarak ayarlayın.
isEnabled yanlış Konsol günlüğünü etkinleştirir veya devre dışı bırakır.

Azure Cosmos DB

Yapılandırma ayarları Azure Cosmos DB tetikleyicileri ve bağlamalarında bulunabilir.

customHandler

Özel işleyici için yapılandırma ayarları. Daha fazla bilgi için bkz. özel işleyicileri Azure İşlevleri.

"customHandler": {
  "description": {
    "defaultExecutablePath": "server",
    "workingDirectory": "handler",
    "arguments": [ "--port", "%FUNCTIONS_CUSTOMHANDLER_PORT%" ]
  },
  "enableForwardingHttpRequest": false
}
Özellik Varsayılan Açıklama
defaultExecutablePath yok Özel işleyici işlemi olarak başlatacak yürütülebilir dosya. Özel işleyiciler kullanılırken gerekli bir ayardır ve değeri işlev uygulaması köküne göredir.
workingDirectory işlev uygulaması kökü Özel işleyici işleminin başlatıldığı çalışma dizini. İsteğe bağlı bir ayardır ve değeri işlev uygulaması köküne göredir.
Bağımsız değişken yok Özel işleyici işlemine geçirilebilir bir komut satırı bağımsız değişkenleri dizisi.
enableForwardingHttpRequest yanlış Ayarlanırsa, yalnızca bir HTTP tetikleyicisi ve HTTP çıkışından oluşan tüm işlevler, özel işleyici isteği yükü yerine özgün HTTP isteğine iletilir.

durableTask

Yapılandırma ayarı, Dayanıklı İşlevler bağlamalarında bulunabilir.

eşzamanlılık

İşlev uygulamanızdaki belirli bağlamalar için dinamik eşzamanlılığı etkinleştirir. Daha fazla bilgi için bkz . Dinamik eşzamanlılık.

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
Özellik Varsayılan Açıklama
dynamicConcurrencyEnabled yanlış Varsayılan olarak kapalı olan bu özellik tarafından desteklenen tüm tetikleyiciler için dinamik eşzamanlılık davranışlarını etkinleştirir.
snapshotPersistenceEnabled true Öğrenilen eşzamanlılık değerleri düzenli aralıklarla depolamada kalıcı hale getirir, böylece yeni örnekler 1'den başlayıp öğrenimi yinelemek yerine bu değerlerden başlar.

eventHub

Yapılandırma ayarları Olay Hub'ı tetikleyicileri ve bağlamalarında bulunabilir.

uzantılar

http ve eventHub gibi bağlamaya özgü tüm ayarları içeren bir nesne döndüren özellik.

extensionBundle

Uzantı paketleri, işlev uygulamanıza uyumlu bir dizi İşlev bağlama uzantısı eklemenize olanak tanır. Daha fazla bilgi edinmek için bkz . Yerel geliştirme için uzantı paketleri.

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

Aşağıdaki özellikler extensionBundle öğesinde kullanıma sunuldu:

Özellik Açıklama
id Microsoft Azure İşlevleri uzantı paket gruplarına yönelik ad alanı.
version Yüklenecek paketin sürüm aralığı. İşlevler çalışma zamanı her zaman sürüm aralığı tarafından tanımlanan, izin verilen en yüksek sürümü seçer. Örneğin, değer version aralığı [4.0.0, 5.0.0) 4.0.0'dan 5.0.0'a kadar olan tüm paket sürümlerine izin verir ancak 5.0.0'ı içermez. Daha fazla bilgi için bkz. sürüm aralıklarını belirtmeye yönelik aralık gösterimi.

işlevleri

İş konağı tarafından çalıştırılır işlevlerin listesi. Boş bir dizi, tüm işlevleri çalıştırma anlamına gelir. Yalnızca yerel olarak çalıştırılırken kullanılmak üzere tasarlanmıştır. Azure'daki işlev uygulamalarında, bu ayarı kullanmak yerine belirli işlevleri devre dışı bırakmak için Azure İşlevleri işlevleri devre dışı bırakma bölümünde yer alan adımları izlemeniz gerekir.

{
    "functions": [ "QueueProcessor", "GitHubWebHook" ]
}

functionTimeout

Tüm işlev yürütmeleri için zaman aşımı süresini gösterir. Zaman aralığı dize biçimini izler.

Plan türü Varsayılan (dk) Maksimum (dk)
Tüketim 5 10
Premium1 30 -1 (ilişkisiz)2
Ayrılmış (App Service) 30 -1 (ilişkisiz)2

1 Premium plan yürütmesi yalnızca 60 dakika garanti edilir, ancak teknik olarak sınırsızdır.
2 Değeri, ilişkisiz yürütmeyi -1 gösterir, ancak sabit bir üst sınır tutulması önerilir.

{
    "functionTimeout": "00:05:00"
}

healthMonitor

Konak sistem durumu izleyicisi için yapılandırma ayarları.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Özellik Varsayılan Açıklama
enabled true Özelliğin etkinleştirilip etkinleştirilmediğini belirtir.
healthCheckInterval 10 saniye Düzenli arka plan sistem durumu denetimleri arasındaki zaman aralığı.
healthCheckWindow 2 dakika Ayar ile birlikte kullanılan kayan healthCheckThreshold zaman penceresi.
healthCheckThreshold 6 Konak geri dönüşümü başlatılmadan önce sistem durumu denetiminin başarısız olabileceği en fazla sayı.
counterThreshold 0.80 Performans sayacının iyi durumda olmayan olarak kabul edileceği eşik.

http

Yapılandırma ayarları http tetikleyicileri ve bağlamalarında bulunabilir.

günlüğe kaydetme

Application Insights dahil olmak üzere işlev uygulamasının günlüğe kaydetme davranışlarını denetler.

"logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "Function.MyFunction": "Information",
      "default": "None"
    },
    "console": {
        ...
    },
    "applicationInsights": {
        ...
    }
}
Özellik Varsayılan Açıklama
fileLoggingMode debugOnly Azure'da çalışırken dosya günlüğü davranışını belirler. Seçenekler : never, alwaysve debugOnly. Bu ayar yerel olarak çalıştırılırken kullanılmaz. Mümkün olduğunda, Azure'da işlevlerinizde hata ayıklarken Application Insights'ı kullanmanız gerekir. Kullanmak always , uygulamanızın soğuk başlangıç davranışını ve veri aktarım hızını olumsuz etkiler. Varsayılan debugOnly ayar, Azure portalını kullanarak hata ayıklarken günlük dosyaları oluşturur.
logLevel yok Uygulamadaki işlevler için günlük kategorisi filtrelemesini tanımlayan nesne. Bu ayar, belirli işlevler için günlüğe kaydetmeyi filtrelemenizi sağlar. Daha fazla bilgi için bkz . Günlük düzeylerini yapılandırma.
console yok Konsol günlüğü ayarı.
applicationInsights yok applicationInsights ayarı.

managedDependency

Yönetilen bağımlılık, şu anda yalnızca PowerShell tabanlı işlevlerde desteklenen bir özelliktir. Bağımlılıkların hizmet tarafından otomatik olarak yönetilmesini sağlar. enabled özelliği olarak ayarlandığındatruerequirements.psd1, dosya işlenir. Herhangi bir ikincil sürüm yayımlandığında bağımlılıklar güncelleştirilir. Daha fazla bilgi için PowerShell makalesindeki Yönetilen bağımlılık bölümüne bakın.

{
    "managedDependency": {
        "enabled": true
    }
}

kuyruklar

Yapılandırma ayarları Depolama kuyruğu tetikleyicileri ve bağlamalarında bulunabilir.

sendGrid

Yapılandırma ayarı SendGrid tetikleyicileri ve bağlamaları bölümünde bulunabilir.

serviceBus

Yapılandırma ayarı Service Bus tetikleyicileri ve bağlamalarında bulunabilir.

Singleton

Tekil kilit davranışı için yapılandırma ayarları. Daha fazla bilgi için bkz . Tekil destek hakkında GitHub sorunu.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
Özellik Varsayılan Açıklama
lockPeriod 00:00:15 İşlev düzeyi kilitlerinin alındığı süre. Otomatik yenilemeyi kilitler.
dinleyiciLockPeriod 00:01:00 Dinleyici kilitlerinin alındığı süre.
listenerLockRecoveryPollingInterval 00:01:00 Başlangıçta bir dinleyici kilidi alınamadıysa dinleyici kilidi kurtarma için kullanılan zaman aralığı.
lockAcquisitionTimeout 00:01:00 Çalışma zamanının kilit almaya çalışacağı maksimum süre.
lockAcquisitionPollingInterval yok Kilit alma girişimleri arasındaki aralık.

telemetryMode

Bu özellik şu anda önizleme aşamasındadır.

OpenTelemetry'yi destekleyen bir veya daha fazla uç noktaya OpenTelemetry çıkış biçimindeki günlüklerin ve izlemelerin çıkışını etkinleştirmek için kullanılır. Bu ayar olarak ayarlandığında OpenTelemetryOpenTelemetry çıkışı kullanılır. Varsayılan olarak bu ayar olmadan tüm günlükler, izlemeler ve olaylar standart çıkışlar kullanılarak Application Insights'a gönderilir. Daha fazla bilgi için bkz. Azure İşlevleri ile OpenTelemetry kullanma.

sürüm

Bu değer, host.json şema sürümünü gösterir. Sürüm dizesi "version": "2.0" , v2 çalışma zamanını veya sonraki bir sürümü hedefleyen bir işlev uygulaması için gereklidir. v2 ile v3 arasında host.json şema değişikliği yoktur.

watchDirectories

Değişiklikler için izlenmesi gereken paylaşılan kod dizinleri kümesi. Bu dizinlerdeki kod değiştirildiğinde değişikliklerin işlevleriniz tarafından alınmasını sağlar.

{
    "watchDirectories": [ "Shared" ]
}

watchFiles

Uygulamanızın yeniden başlatılmasını gerektiren değişiklikler için izlenen bir veya daha fazla dosya adı dizisi. Bu, bu dosyalardaki kod değiştirildiğinde güncelleştirmelerin işlevleriniz tarafından alınmasını garanti eder.

{
    "watchFiles": [ "myFile.txt" ]
}

host.json değerlerini geçersiz kılma

host.json dosyasının kendisini değiştirmeden belirli bir ortam için host.json dosyasında belirli ayarları yapılandırmak veya değiştirmek istediğiniz örnekler olabilir. Uygulama ayarı olarak eşdeğer bir değer oluşturarak belirli host.json değerlerini geçersiz kılabilirsiniz. Çalışma zamanı biçiminde AzureFunctionsJobHost__path__to__settingbir uygulama ayarı bulduğunda, JSON'da bulunan path.to.setting eşdeğer host.json ayarını geçersiz kılar. Uygulama ayarı olarak ifade edildiğinde, JSON hiyerarşisini göstermek için kullanılan nokta (.) yerine çift alt çizgi (__ kullanılır).

Örneğin, yerel olarak çalışırken Application Insight örneklemesini devre dışı bırakmak istediğinizi varsayalım. Application Insights'ı devre dışı bırakmak için yerel host.json dosyasını değiştirdiyseniz, bu değişiklik dağıtım sırasında üretim uygulamanıza gönderebilirsiniz. Bunu yapmak için daha güvenli bir yol bunun yerine dosyada olduğu gibi "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false" bir uygulama ayarı oluşturmaktır local.settings.json . Bunu, yayımlanmayan aşağıdaki local.settings.json dosyada görebilirsiniz:

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "{storage-account-connection-string}",
        "FUNCTIONS_WORKER_RUNTIME": "{language-runtime}",
        "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false"
    }
}

Ortam değişkenlerini kullanarak host.json ayarlarını geçersiz kılma, ASP.NET Core adlandırma kurallarını izler. Öğe yapısı bir dizi içerdiğinde, sayısal dizi dizini bu yolda ek öğe adı olarak ele alınmalıdır. Daha fazla bilgi için bkz . Ortam değişkenlerini adlandırma.

Sonraki adımlar