Memecahkan masalah kesalahan: “Runtime Azure Functions tidak dapat dijangkau”

Artikel ini membantu Anda memecahkan masalah untai (karakter) kesalahan berikut yang muncul di portal Microsoft Azure:

"Kesalahan: Runtime Azure Functions tidak dapat dijangkau. Klik di sini untuk detail tentang konfigurasi penyimpanan."

Masalah ini terjadi ketika runtime Functions tidak dapat dimulai. Alasan paling umum untuk ini adalah bahwa aplikasi fungsi telah kehilangan akses ke akun penyimpanannya. Untuk informasi selengkapnya, lihat Persyaratan akun Storage.

Artikel lainnya membantu Anda memecahkan masalah spesifik penyebab kesalahan ini, termasuk cara mengidentifikasi dan menyelesaikan setiap kasus.

Akun penyimpanan telah dihapus

Setiap aplikasi fungsi memerlukan akun penyimpanan untuk beroperasi. Jika akun tersebut dihapus, fungsi Anda tidak akan berfungsi.

Mulailah dengan mencari nama akun penyimpanan Anda di pengaturan aplikasi Anda. Baik AzureWebJobsStorage atau WEBSITE_CONTENTAZUREFILECONNECTIONSTRING berisi nama akun penyimpanan Anda sebagai bagian dari string koneksi. Untuk informasi selengkapnya, lihat Referensi pengaturan aplikasi untuk Azure Functions.

Cari akun penyimpanan Anda di portal Microsoft Azure untuk melihat apakah masih ada. Jika telah dihapus, buat ulang akun penyimpanan dan ganti string koneksi penyimpanan Anda. Kode fungsi Anda hilang, dan Anda perlu menyebarkan ulang.

Pengaturan aplikasi akun penyimpanan dihapus

Pada langkah sebelumnya, jika Anda tidak dapat menemukan string koneksi akun penyimpanan, kemungkinan itu dihapus atau ditimpa. Menghapus pengaturan aplikasi paling sering terjadi saat Anda menggunakan slot penyebaran atau skrip Azure Resource Manager untuk mengatur pengaturan aplikasi.

Pengaturan aplikasi yang diperlukan

Untuk informasi selengkapnya, lihat Referensi pengaturan aplikasi untuk Azure Functions.

Panduan

  • Jangan periksa pengaturan slot untuk salah satu pengaturan ini. Jika Anda menukar slot penyebaran, aplikasi fungsi akan rusak.
  • Jangan ubah pengaturan ini sebagai bagian dari penyebaran otomatis.
  • Pengaturan ini harus disediakan dan valid pada waktu pembuatan. Penyebaran otomatis yang tidak berisi pengaturan ini menghasilkan aplikasi fungsi yang tidak akan berjalan, meskipun pengaturan ditambahkan nanti.

Kredensial akun penyimpanan tidak valid

String koneksi akun penyimpanan yang dibahas sebelumnya harus diperbarui jika Anda meregenerasi kunci penyimpanan. Untuk informasi selengkapnya tentang manajemen kunci penyimpanan, lihat Membuat akun Azure Storage.

Akun penyimpanan tidak dapat diakses

Aplikasi fungsi Anda harus dapat mengakses akun penyimpanan. Masalah umum yang memblokir akses aplikasi fungsi ke akun penyimpanan adalah:

Kuota eksekusi harian penuh

Jika Anda memiliki kuota eksekusi harian yang dikonfigurasi, aplikasi fungsi Anda dinonaktifkan sementara, yang menyebabkan banyak kontrol portal menjadi tidak tersedia.

Untuk memverifikasi kuota di portal Microsoft Azure, pilih Fitur Platform>Pengaturan Aplikasi Fungsi di aplikasi fungsi Anda. Jika Anda melebihi Kuota Penggunaan Harian yang telah Anda tetapkan, pesan berikut ditampilkan:

"Aplikasi Fungsi telah mencapai kuota penggunaan harian dan telah dihentikan hingga jangka waktu 24 jam ke depan."

Untuk mengatasi masalah ini, hapus atau tingkatkan kuota harian, lalu mulai ulang aplikasi Anda. Jika tidak, eksekusi aplikasi Anda diblokir hingga hari berikutnya.

Aplikasi berada di belakang firewall

Aplikasi fungsi Anda mungkin tidak dapat dijangkau karena salah satu alasan berikut:

Portal Microsoft Azure melakukan panggilan langsung ke aplikasi yang sedang berjalan untuk mengambil daftar fungsi, dan melakukan panggilan HTTP ke titik akhir Kudu. Pengaturan tingkat platform di bawah tab Fitur Platform masih tersedia.

Untuk memverifikasi konfigurasi ASE Anda:

  1. Buka kelompok keamanan jaringan (NSG) subnet tempat ASE berada.
  2. Validasi aturan masuk untuk memungkinkan lalu lintas yang berasal dari IP publik komputer tempat Anda mengakses aplikasi.

Anda juga dapat menggunakan portal dari komputer yang terhubung ke jaringan virtual yang menjalankan aplikasi Anda atau ke komputer virtual yang berjalan di jaringan virtual Anda.

Untuk informasi selengkapnya tentang konfigurasi aturan masuk, lihat bagian "Kelompok Keamanan Jaringan" dari pertimbangan Jaringan untuk Lingkungan App Service.

Kesalahan kontainer di Linux

Untuk aplikasi fungsi yang berjalan di Linux dalam kontainer, kesalahan Azure Functions runtime is unreachable dapat terjadi sebagai akibat dari masalah kontainer. Gunakan prosedur berikut guna meninjau log kontainer untuk kesalahan:

  1. Navigasi ke titik akhir Kudu untuk aplikasi fungsi, yang terletak di https://<FUNCTION_APP>.scm.azurewebsites.net, di mana <FUNCTION_APP> adalah nama aplikasi Anda.

  2. Unduh file .zip log Docker dan tinjau konten di komputer lokal Anda.

  3. Periksa catatan kesalahan yang menunjukkan bahwa kontainer tidak berhasil dimulai.

Gambar kontainer tidak tersedia

Kesalahan dapat terjadi saat gambar kontainer yang direferensikan tidak tersedia atau gagal dimulai dengan benar. Periksa catatan kesalahan yang menunjukkan bahwa kontainer tidak berhasil dimulai.

Anda perlu memperbaiki kesalahan apa pun yang mencegah mulainya kontainer, agar aplikasi fungsi berjalan dengan benar.

Saat gambar kontainer tidak dapat ditemukan, Anda akan melihat kesalahan manifest unknown di log Docker. Dalam hal ini, Anda dapat menggunakan perintah Azure CLI yang didokumentasikan di Cara menargetkan versi runtime Azure Functions untuk mengubah gambar kontainer yang direferensikan. Jika Anda telah menyebarkan gambar kontainer kustom, Anda harus memperbaiki gambar dan menyebarkan kembali versi yang diperbarui ke registri yang direferensikan.

Kontainer aplikasi memiliki port yang bertentangan

Aplikasi fungsi Anda mungkin dalam keadaan tidak responsif karena penugasan port yang bertentangan saat startup. Hal ini dapat terjadi dalam situasi berikut:

  • Kontainer Anda memiliki layanan terpisah yang berjalan di mana satu atau beberapa layanan mengikat ke port yang sama dengan aplikasi fungsi.
  • Anda telah menambahkan Koneksi Azure Hybrid yang membagikan nilai port yang sama dengan aplikasi fungsi.

Secara default, kontainer tempat aplikasi fungsi Anda berjalan menggunakan port :80. Ketika layanan lain dalam kontainer yang sama juga mencoba menggunakan port :80, aplikasi fungsi dapat gagal dimulai. Jika log Anda menunjukkan konflik port, ubah port default.

Tabrakan ID Host

Dimulai dengan runtime Fungsi versi 3.x, tabrakan ID host terdeteksi dan dicatat sebagai peringatan. Di versi 4.x, kesalahan dicatat dan host dihentikan. Jika runtime tidak dapat dimulai untuk aplikasi fungsi Anda, tinjau log. Jika ada peringatan atau kesalahan tentang tabrakan ID host, ikuti langkah-langkah mitigasi dalam pertimbangan ID Host.

Pengaturan aplikasi baca-saja

Mengubah pengaturan aplikasi App Service baca-sajadapat menempatkan aplikasi fungsi Anda ke dalam status tidak dapat dijangkau.

penimpaan autentikasi ASP.NET

Hanya berlaku untuk aplikasi C# yang berjalan dalam proses dengan host Functions.

Mengonfigurasi autentikasi ASP.NET di kelas startup Functions dapat menimpa layanan yang diperlukan agar portal Azure dapat berkomunikasi dengan host. Ini termasuk, tetapi tidak terbatas pada, panggilan apa pun ke AddAuthentication(). Jika layanan autentikasi host ditimpa dan portal tidak dapat berkomunikasi dengan host, itu menganggap aplikasi tidak dapat dijangkau. Masalah ini dapat mengakibatkan kesalahan seperti: No authentication handler is registered for the scheme 'ArmToken'..

Langkah berikutnya

Pelajari tentang memantau aplikasi fungsi Anda: