Referensi host.json untuk Azure Functions 2.x dan versi lebih baru

File metadata host.json berisi opsi konfigurasi yang memengaruhi semua fungsi di instans aplikasi fungsi. Artikel ini mencantumkan pengaturan yang tersedia dimulai dengan runtime Azure Functions versi 2.x.

Catatan

Artikel ini adalah untuk Azure Functions 2.x dan versi yang lebih baru. Untuk referensi host.json di Azure Functions 1.x, lihat referensi host.json untuk Azure Functions 1.x.

Opsi konfigurasi aplikasi fungsi lainnya dikelola tergantung pada lokasi aplikasi fungsi berjalan:

Konfigurasi dalam host.json terkait dengan pengikatan diterapkan secara merata ke setiap fungsi di aplikasi fungsi.

Anda juga dapat menimpa atau menerapkan pengaturan per lingkungan menggunakan pengaturan aplikasi.

Contoh file host.json

Contoh file host.json berikut untuk versi 2.x+ memiliki semua opsi yang mungkin ditentukan (tidak termasuk yang hanya digunakan dalam lingkup internal).

{
    "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"
    },
    "watchDirectories": [ "Shared", "Test" ],
    "watchFiles": [ "myFile.txt" ]
}

Bagian berikut dari artikel ini menjelaskan setiap properti tingkat atas. Semua bersifat opsional kecuali dinyatakan lain.

agregator

Menentukan berapa banyak pemanggilan fungsi yang diagregasi saat menghitung metrik untuk Application Insights.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
Properti Default Deskripsi
batchSize 1000 Jumlah maksimum permintaan untuk agregat.
flushTimeout 00:00:30 Periode waktu maksimum untuk agregat.

Pemanggilan fungsi diagregasi ketika batasan pertama dari dua batas tercapai.

applicationInsights

Pengaturan ini adalah anak dari pengelogan.

Mengontrol opsi untuk Application Insights, termasuk opsi pengambilan sampel.

Untuk struktur JSON lengkap, lihat contoh file host.json sebelumnya.

Catatan

Pengambilan sampel log dapat menyebabkan beberapa eksekusi tidak muncul di bilah monitor Application Insights. Untuk menghindari pengambilan sampel log, tambahkan excludedTypes: "Request" ke nilai samplingSettings.

Properti Default Deskripsi
Pengaturan pengambilan sampel n/a Lihat applicationInsights.samplingSettings.
dependencyTrackingOptions n/a Lihat applicationInsights.dependencyTrackingOptions.
enableLiveMetrics benar Mengaktifkan kumpulan metrik langsung.
enableDependencyTracking benar Mengaktifkan pelacakan dependensi.
enablePerformanceCountersCollection benar Mengaktifkan kumpulan penghitung kinerja Kudu.
liveMetricsInitializationDelay 00:00:15 Hanya untuk penggunaan internal.
httpAutoCollectionOptions n/a Lihat applicationInsights.httpAutoCollectionOptions.
snapshotConfiguration n/a Lihat applicationInsights.snapshotConfiguration.

applicationInsights.samplingSettings

Untuk informasi selengkapnya tentang pengaturan ini, lihat Pengambilan Sampel di Application Insights.

Properti Default Deskripsi
Diaktifkan benar Mengaktifkan atau menonaktifkan pengambilan sampel.
maxTelemetryItemsPerSecond 20 Jumlah target item telemetri yang dicatat per detik pada setiap host server. Jika aplikasi Anda berjalan di banyak host, kurangi nilai ini agar tetap berada dalam tingkat target lalu lintas Anda secara keseluruhan.
evaluationInterval 01:00:00 Interval di mana tingkat telemetri saat ini dievaluasi kembali. Evaluasi dilakukan sebagai rata-rata pergerakan. Anda mungkin ingin mempersingkat interval ini jika telemetri Anda bisa meledak secara tiba-tiba.
initialSamplingPercentage 100,0 Persentase pengambilan sampel awal diterapkan pada awal proses pengambilan sampel untuk secara dinamis meragamkan persentase. Jangan kurangi nilai saat Anda sedang melakukan debug.
samplingPercentageIncreaseTimeout 00:00:01 Ketika nilai persentase pengambilan sampel berubah, properti ini menentukan seberapa cepat setelah itu Application Insights diizinkan untuk menaikkan persentase pengambilan sampel lagi untuk menangkap lebih banyak data.
samplingPercentageDecreaseTimeout 00:00:01 Ketika nilai persentase pengambilan sampel berubah, properti ini menentukan seberapa cepat setelah itu Application Insights diizinkan untuk menurunkan persentase pengambilan sampel lagi untuk menangkap data yang lebih sedikit.
minSamplingPercentage 0.1 Karena persentase pengambilan sampel bervariasi, properti ini menentukan persentase pengambilan sampel minimum yang diizinkan.
maxSamplingPercentage 100,0 Karena persentase pengambilan sampel bervariasi, properti ini menentukan persentase pengambilan sampel maksimum yang diizinkan.
movingAverageRatio 1.0 Dalam perhitungan rata-rata bergerak, bobot ditetapkan ke nilai terbaru. Gunakan nilai yang sama dengan atau kurang dari 1. Nilai yang lebih kecil membuat algoritma kurang reaktif terhadap perubahan mendadak.
excludedTypes nihil Daftar jenis yang dipisahkan dengan titik koma yang tidak ingin Anda ambil sampelnya. Jenis yang dikenali adalah: Dependency, Event, Exception, PageView, Request, dan Trace. Semua contoh jenis yang ditentukan dikirimkan; tipe yang tidak ditentukan diambil sampelnya.
includedTypes nihil Daftar jenis dipisahkan titik koma yang ingin Anda ambil sampelnya; daftar kosong menyiratkan semua jenis. Jenis tercantum dalam excludedTypes menimpa jenis yang tercantum di sini. Jenis yang dikenali adalah: Dependency, Event, Exception, PageView, Request, dan Trace. Instance dari tipe yang ditentukan diambil sampelnya; jenis yang tidak ditentukan atau tersirat dikirim tanpa pengambilan sampel.

applicationInsights.httpAutoCollectionOptions

Properti Default Deskripsi
enableHttpTriggerExtendedInfoCollection benar Mengaktifkan atau menonaktifkan informasi permintaan HTTP yang diperpanjang untuk pemicu HTTP: header korelasi permintaan masuk, dukungan kunci multi-instrumentasi, metode HTTP, jalur, dan respons.
enableW3CDistributedTracing benar Mengaktifkan atau menonaktifkan dukungan protokol pelacakan terdistribusi W3C (dan mengaktifkan skema korelasi warisan). Aktifkan secara default jika enableHttpTriggerExtendedInfoCollection benar. Jika enableHttpTriggerExtendedInfoCollection salah, bendera ini hanya berlaku untuk permintaan keluar, bukan permintaan masuk.
enableResponseHeaderInjection benar Mengaktifkan atau menonaktifkan injeksi header korelasi multi-komponen ke dalam respons. Mengaktifkan injeksi akan memungkinkan Application Insights untuk membangun Peta Aplikasi saat beberapa kunci instrumentasi digunakan. Aktifkan secara default jika enableHttpTriggerExtendedInfoCollection benar. Setelan ini tidak berlaku jika enableHttpTriggerExtendedInfoCollection salah.

applicationInsights.dependencyTrackingOptions

Properti Default Deskripsi
enableSqlCommandTextInstrumentation salah Mengaktifkan pengumpulan teks lengkap kueri SQL, yang dinonaktifkan secara default. Untuk informasi selengkapnya tentang mengumpulkan teks kueri SQL, lihat Pelacakan SQL Tingkat Lanjut untuk mendapatkan kueri SQL lengkap.

applicationInsights.snapshotConfiguration

Untuk informasi selengkapnya tentang salinan bayangan, lihat Men-debug snapshot pada pengecualian di aplikasi .NET dan Memecahkan masalah yang memungkinkan Application Insights Snapshot Debugger atau melihat salinan bayangan.

Properti Default Deskripsi
agentEndpoint nihil Titik akhir yang digunakan untuk menyambungkan ke layanan Application Insights Snapshot Debugger. Jika null, titik akhir default akan digunakan.
captureSnapshotMemoryWeight 0,5 Bobot yang diberikan pada ukuran memori proses saat ini ketika memeriksa apakah memori masih cukup untuk mengambil snapshot. Nilai yang diharapkan lebih besar dari 0 pecahan biasa (0 < CaptureSnapshotMemoryWeight < 1).
failedRequestLimit 3 Batas jumlah permintaan yang gagal untuk meminta snapshot sebelum prosesor telemetri dinonaktifkan.
handleUntrackedExceptions benar Mengaktifkan atau menonaktifkan pelacakan pengecualian yang tidak dilacak oleh telemetri Application Insights.
Diaktifkan benar Mengaktifkan atau menonaktifkan pengumpulan snapshot
isEnabledInDeveloperMode salah Mengaktifkan atau menonaktifkan pengumpulan snapshot diaktifkan dalam mode pengembang.
isEnabledWhenProfiling benar Mengaktifkan atau menonaktifkan pembuatan snapshot meskipun Profiler Application Insights sedang mengumpulkan sesi pembuatan profil terperinci.
isExceptionSnappointsEnabled salah Mengaktifkan atau menonaktifkan pemfilteran pengecualian.
isLowPrioritySnapshotUploader benar Menentukan apakah akan menjalankan proses SnapshotUploader di bawah prioritas normal.
maximumCollectionPlanSize 50 Jumlah maksimum masalah yang dapat kami lacak kapan saja dalam kisaran satu hingga 9999.
maximumSnapshotsRequired 3 Jumlah snapshot maksimum yang dikumpulkan untuk satu masalah, dalam rentang dari satu hingga 999. Masalah dapat dianggap sebagai pernyataan lemparan individu dalam aplikasi Anda. Setelah jumlah snapshot yang dikumpulkan untuk masalah mencapai nilai ini, tidak ada lagi snapshot yang akan dikumpulkan untuk masalah itu sampai penghitung masalah diatur ulang (lihat problemCounterResetInterval) dan batas thresholdForSnapshotting tercapai lagi.
problemCounterResetInterval 24:00:00 Seberapa sering untuk mengatur ulang penghitung masalah dalam rentang satu menit hingga tujuh hari. Ketika interval ini tercapai, semua jumlah masalah direset ke nol. Masalah yang ada yang telah mencapai ambang batas untuk melakukan snapshot, tetapi belum menghasilkan jumlah snapshot di maximumSnapshotsRequired, tetap aktif.
provideAnonymousTelemetry benar Menentukan apakah akan mengirim penggunaan anonim dan telemetri kesalahan ke Microsoft. Telemetri ini dapat digunakan jika Anda menghubungi Microsoft untuk membantu memecahkan masalah dengan Snapshot Debugger. Ini juga digunakan untuk memantau pola penggunaan.
reconnectInterval 00:15:00 Seberapa sering kita terhubung kembali ke titik akhir Snapshot Debugger. Rentang yang diperbolehkan adalah satu menit hingga satu hari.
shadowCopyFolder nihil Menentukan folder yang akan digunakan untuk biner penyalinan bayangan. Jika tidak disetel, folder yang ditentukan oleh variabel lingkungan berikut ini dicoba dengan urutan: Fabric_Folder_App_Temp, LOCALAPPDATA, APPDATA, TEMP.
shareUploaderProcess benar Jika benar, hanya satu instans SnapshotUploader yang akan mengumpulkan dan mengunggah snapshot untuk beberapa aplikasi yang berbagi InstrumentationKey. Jika disetel ke salah, SnapshotUploader akan menjadi unik untuk setiap urutan (ProcessName, InstrumentationKey).
snapshotInLowPriorityThread benar Menentukan apakah akan memproses snapshot dalam rangkaian prioritas IO rendah atau tidak. Membuat snapshot adalah operasi yang cepat, tetapi untuk mengunggah snapshot ke layanan Snapshot Debugger, snapshot harus ditulis terlebih dahulu ke diska sebagai minidump. Itu berlangsung dalam proses SnapshotUploader. Mengatur nilai ini ke benar menggunakan IO berprioritas rendah untuk menulis minidump, yang tidak akan bersaing dengan aplikasi Anda untuk berebut sumber daya. Mengatur nilai ini untuk mempercepat pembuatan minidump dengan konsekuensi memperlambat aplikasi Anda.
snapshotsPerDayLimit 30 Jumlah maksimum snapshot yang diperbolehkan dalam satu hari (24 jam). Batas ini juga diberlakukan di sisi layanan Application Insights. Pengunggahan dibatasi hingga 50 per hari per aplikasi (artinya, per kunci instrumentasi). Nilai ini membantu mencegah pembuatan snapshot tambahan yang akhirnya akan ditolak selama pengunggahan. Nilai nol menghapus batas sepenuhnya. Nilai ini tidak disarankan.
snapshotsPerTenMinutesLimit 1 Jumlah maksimum snapshot yang diperbolehkan dalam 10 menit. Meskipun tidak ada batas atas pada nilai ini, berhati-hatilah untuk meningkatkannya pada beban kerja produksi karena dapat memengaruhi performa aplikasi Anda. Membuat snapshot adalah proses yang cepat, tetapi membuat minidump snapshot dan mengunggahnya ke layanan Snapshot Debugger adalah operasi yang jauh lebih lambat yang akan bersaing dengan aplikasi Anda untuk berebut sumber daya (CPU dan I/O).
tempFolder nihil Menentukan folder untuk menulis minidump dan file log pengunggah. Jika tidak disetel, maka %TEMP%\Dumps digunakan.
thresholdForSnapshotting 1 Berapa kali Application Insights perlu melihat pengecualian sebelum meminta snapshot.
uploaderProxy nihil Mengambil alih server proxy yang digunakan dalam proses Snapshot Uploader. Anda mungkin perlu menggunakan pengaturan ini jika aplikasi Anda terhubung ke internet melalui server proxy. Snapshot Collector berjalan dalam proses aplikasi Anda dan akan menggunakan pengaturan proxy yang sama. Namun, Snapshot Uploader berjalan sebagai proses terpisah dan Anda mungkin perlu mengonfigurasi server proxy secara manual. Jika nilai ini null, maka Snapshot Collector akan mencoba memetakan alamat proksi secara otomatis dengan memeriksa System.Net.WebRequest.DefaultWebProxy dan meneruskan nilai ke Pengunggah Rekam Jepret. Jika nilai ini tidak null, maka deteksi otomatis tidak digunakan dan server proxy yang ditentukan di sini akan digunakan di Snapshot Uploader.

blob

Pengaturan konfigurasi dapat ditemukan di pemicu dan pengikatan penyimpanan Blob.

konsol

Pengaturan ini adalah anak dari pengelogan. Ini mengontrol pencatatan konsol saat tidak dalam mode debugging.

{
    "logging": {
    ...
        "console": {
          "isEnabled": false,
          "DisableColors": true
        },
    ...
    }
}
Properti Default Deskripsi
DisableColors salah Menahan pemformatan log pada log kontainer di Linux. Atur ke true jika Anda melihat karakter kontrol ANSI yang tidak diinginkan di log kontainer saat berjalan di Linux.
Diaktifkan salah Mengaktifkan atau menonaktifkan pencatatan konsol.

Azure Cosmos DB

Pengaturan konfigurasi dapat ditemukan di pemicu dan pengikatan Azure Cosmos DB.

customHandler

Pengaturan konfigurasi untuk penanganan kustom. Untuk informasi selengkapnya, lihat Penanganan kustom Azure Functions.

"customHandler": {
  "description": {
    "defaultExecutablePath": "server",
    "workingDirectory": "handler",
    "arguments": [ "--port", "%FUNCTIONS_CUSTOMHANDLER_PORT%" ]
  },
  "enableForwardingHttpRequest": false
}
Properti Default Deskripsi
defaultExecutablePath n/a Executable untuk memulai sebagai proses handler kustom. Ini adalah pengaturan yang diperlukan saat menggunakan handler kustom dan nilainya relatif terhadap akar aplikasi fungsi.
workingDirectory akar aplikasi fungsi Direktori kerja untuk memulai proses handler kustom. Ini adalah pengaturan opsional dan nilainya relatif terhadap akar aplikasi fungsi.
arguments n/a Larik argumen baris perintah untuk diteruskan ke proses handler kustom.
enableForwardingHttpRequest salah Jika disetel, semua fungsi yang hanya terdiri dari pemicu HTTP dan output HTTP akan diteruskan sesuai permintaan HTTP asli, alih-alih kustom handler meminta payload.

durableTask

Pengaturan konfigurasi dapat ditemukan dalam pengikatan untuk Fungsi Tahan Lama.

konkurensi

Memungkinkan konkurensi dinamis untuk pengikatan tertentu di aplikasi fungsi Anda. Untuk informasi selengkapnya, lihat Konkurensi dinamis.

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
Properti Default Deskripsi
dynamicConcurrencyEnabled salah Mengaktifkan perilaku konkurensi dinamis untuk semua pemicu yang didukung oleh fitur ini, yang nonaktif secara default.
snapshotPersistenceEnabled benar Nilai konkurensi yang dipelajari secara berkala dipertahankan ke penyimpanan sehingga instans baru dimulai dari nilai-nilai tersebut alih-alih mulai dari 1 dan harus mengulangi pembelajaran.

eventHub

Pengaturan konfigurasi dapat ditemukan di pemicu dan pengikatan Event Hub.

extensions

Properti yang mengembalikan objek yang berisi semua pengaturan khusus pengikatan, seperti http dan eventHub.

extensionBundle

Bundel ekstensi memungkinkan Anda menambahkan sekumpulan ekstensi pengikatan Functions yang kompatibel ke aplikasi fungsi Anda. Untuk mempelajari lebih lanjut, lihat Bundel ekstensi untuk pengembangan lokal.

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

Properti berikut ini tersedia dalam extensionBundle:

Properti Deskripsi
id Namespace untuk bundel ekstensi Microsoft Azure Functions.
version Rentang versi bundel untuk diinstal. Runtime Functions selalu memilih versi maksimum yang diizinkan yang ditentukan oleh rentang versi atau interval. Misalnya, version rentang [4.0.0, 5.0.0) nilai memungkinkan semua versi bundel dari 4.0.0 hingga tetapi tidak termasuk 5.0.0. Untuk informasi selengkapnya, lihat notasi interval untuk menentukan rentang versi.

fungsi

Daftar fungsi yang dijalankan oleh host pekerjaan. Larik kosong berarti menjalankan semua fungsi. Ditujukan untuk digunakan hanya ketika berjalan secara lokal. Di aplikasi fungsi di Azure, Anda harus mengikuti langkah-langkah dalam Cara menonaktifkan fungsi di Azure Functions untuk menonaktifkan fungsi tertentu alih-alih menggunakan pengaturan ini.

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

functionTimeout

Menunjukkan durasi batas waktu untuk semua eksekusi fungsi. Ini mengikuti format rentang waktu string.

Jenis paket Default (mnt) Maksimum (mnt)
Consumption 5 10
Premium1 30 -1 (tidak terikat)2
Khusus (App Service) 30 -1 (tidak terikat)2

1 Eksekusi paket premium hanya dijamin selama 60 menit, tetapi secara teknis tidak terikat.
2 Nilai -1 menunjukkan eksekusi tidak terikat, tetapi mempertahankan batas atas tetap disarankan.

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

healthMonitor

Pengaturan konfigurasi untuk monitor kesehatan Host.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Properti Default Deskripsi
diaktifkan benar Menentukan apakah fitur diaktifkan.
healthCheckInterval 10 detik Interval waktu antara pemeriksaan kesehatan latar belakang berkala.
healthCheckWindow 2 menit Jendela waktu geser yang digunakan bersamaan dengan pengaturan healthCheckThreshold.
healthCheckThreshold 6 Frekuensi maksimum kegagalan pemeriksaan kesehatan sebelum daur ulang host dimulai.
counterThreshold 0,80 Ambang batas kinerja yang dianggap tidak sehat oleh penghitung perfoma.

http

Pengaturan konfigurasi dapat diemukan di pemicu dan pengikatan http.

pencatatan

Mengontrol perilaku pencatatan aplikasi fungsi, termasuk Application Insights.

"logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "Function.MyFunction": "Information",
      "default": "None"
    },
    "console": {
        ...
    },
    "applicationInsights": {
        ...
    }
}
Properti Default Deskripsi
fileLoggingMode debugOnly Menentukan perilaku pengelogan file saat berjalan di Azure. Opsinya adalah never, always, dan debugOnly. Pengaturan ini tidak digunakan saat berjalan secara lokal. Jika memungkinkan, Anda harus menggunakan Application Insights saat men-debug fungsi Anda di Azure. Menggunakan always berdampak negatif pada perilaku cold start dan throughput data aplikasi Anda. Pengaturan default debugOnly menghasilkan file log saat Anda menelusuri kesalahan menggunakan portal Azure.
logLevel n/a Objek yang menentukan pemfilteran kategori log untuk fungsi di aplikasi. Pengaturan ini memungkinkan Anda memfilter pencatatan untuk fungsi tertentu. Untuk informasi selengkapnya, lihat Mengonfigurasi tingkat log.
konsol n/a Setelan pencatatan konsol.
applicationInsights n/a Pengaturan applicationInsights.

managedDependency

Dependensi terkelola adalah fitur yang saat ini hanya didukung dengan fungsi berbasis PowerShell. Ini memungkinkan dependensi dikelola secara otomatis oleh layanan. Ketika enabled properti diatur ke true, file requirements.psd1 akan diproses. Dependensi diperbarui ketika versi minor dirilis. Untuk informasi selengkapnya, lihat Dependensi terkelola di artikel PowerShell.

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

antrean

Pengaturan konfigurasi dapat ditemukan di Pemicu dan pengikatan antrean penyimpanan.

sendGrid

Pengaturan konfigurasi dapat ditemukan di pemicu dan pengikatan SendGrid.

serviceBus

Pengaturan konfigurasi dapat ditemukan di pemicu dan pengikatan Bus Layanan.

database tunggal

Pengaturan konfigurasi untuk perilaku kunci Database Tunggal. Untuk informasi selengkapnya, lihat Masalah GitHub tentang dukungan tunggal.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
Properti Default Deskripsi
lockPeriod 00:00:15 Periode pengambilan kunci tingkat fungsi. Kunci diperpanjang otomatis.
listenerLockPeriod 00:01:00 Periode pengambilan kunci pendengar.
listenerLockRecoveryPollingInterval 00:01:00 Interval waktu yang digunakan untuk pemulihan kunci pendengar jika kunci pendengar tidak dapat diperoleh saat memulai.
lockAcquisitionTimeout 00:01:00 Jumlah maksimum waktu runtime akan mencoba untuk mendapatkan kunci.
lockAcquisitionPollingInterval n/a Interval antara upaya akuisisi kunci.

versi

Nilai ini menunjukkan versi skema host.json. String versi "version": "2.0" diperlukan untuk aplikasi fungsi yang menargetkan runtime v2, atau versi yang lebih baru. Tidak ada perubahan skema host.json antara v2 dan v3.

watchDirectories

Sekumpulan direktori kode bersama yang harus dipantau perubahannya. Memastikan bahwa ketika kode dalam direktori ini diubah, perubahan diambil oleh fungsi Anda.

{
    "watchDirectories": [ "Shared" ]
}

watchFiles

Larik berisi satu atau beberapa nama file yang dipantau untuk perubahan yang mengharuskan aplikasi Anda memulai ulang. Ini menjamin bahwa ketika kode dalam file-file ini diubah, pembaruan diambil oleh fungsi Anda.

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

Mengambil alih nilai host.json

Mungkin ada contoh di mana Anda ingin mengonfigurasi atau mengubah pengaturan tertentu dalam file host.json untuk lingkungan tertentu, tanpa mengubah file host.json itu sendiri. Anda dapat mengganti nilai host.json tertentu dengan membuat nilai yang setara sebagai setelan aplikasi. Ketika runtime menemukan pengaturan aplikasi dalam format AzureFunctionsJobHost__path__to__setting, runtime akan menimpa pengaturan host.json setara yang berada pada path.to.setting di dalam JSON. Ketika dinyatakan sebagai pengaturan aplikasi, titik (.) yang digunakan untuk menunjukkan hierarki JSON digantikan oleh garis bawah ganda (__).

Misalnya, Anda ingin menonaktifkan pengambilan sampel Application Insight saat menjalankan secara lokal. Jika Anda mengubah file host.json lokal untuk menonaktifkan Application Insights, perubahan ini mungkin didorong ke aplikasi produksi Anda selama penerapan. Cara yang lebih aman untuk melakukan ini adalah dengan membuat pengaturan aplikasi seperti "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false" dalam file local.settings.json. Anda dapat melihat ini di file local.settings.json berikut, yang tidak dipublikasikan:

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

Mengesampingkan pengaturan host.json menggunakan variabel lingkungan mengikuti konvensi penamaan ASP.NET Core. Ketika struktur elemen menyertakan array, indeks array numerik harus diperlakukan sebagai nama elemen tambahan di jalur ini. Untuk informasi selengkapnya, lihat Penamaan variabel lingkungan.

Langkah berikutnya