Memperkirakan biaya paket Consumption

Saat ini ada tiga jenis paket hosting untuk aplikasi yang berjalan di Azure Functions, dengan setiap paket memiliki model harga sendiri:

Paket Deskripsi
Consumption Anda hanya dikenakan biaya untuk waktu menjalankan aplikasi fungsi Anda. Paket ini mencakup pemberian gratis per langganan.
Premium Memberi Anda fitur dan mekanisme penskalaan yang sama dengan paket Consumption, tetapi dengan performa dan akses VNET yang ditingkatkan. Biaya didasarkan pada tingkat harga yang Anda pilih. Untuk mempelajari selengkapnya, lihat Paket Azure Functions Premium.
(App Service) Khusus
(tingkat dasar atau lebih tinggi)
Saat Anda perlu menjalankan Komputer Virtual khusus atau dalam isolasi, gunakan gambar khusus, atau ingin menggunakan kelebihan kapasitas paket App Service Anda. Menggunakan penagihan paket App Service reguler. Biaya didasarkan pada tingkat harga yang Anda pilih.

Anda memilih paket yang paling mendukung performa fungsi dan persyaratan biaya Anda. Untuk mempelajari selengkapnya, lihat Skala dan hosting Azure Functions.

Artikel ini hanya berhubungan dengan paket Consumption, karena paket ini menghasilkan biaya variabel. Artikel ini menggantikan artikel Tanya Jawab Umum penagihan biaya paket Consumption.

Durable Functions juga dapat berjalan dalam paket Consumption. Untuk mempelajari selengkapnya tentang pertimbangan biaya saat menggunakan Durable Functions, lihat Penagihan Durable Functions.

Biaya paket Consumption

Biaya eksekusi dari satu fungsi eksekusi diukur dalam GB-detik. Biaya eksekusi dihitung dengan menggabungkan penggunaan memorinya dengan waktu eksekusinya. Fungsi yang berjalan lebih lama membutuhkan biaya lebih tinggi, seperti halnya fungsi yang menghabiskan lebih banyak memori.

Pertimbangkan kasus jika jumlah memori yang digunakan oleh fungsi tetap konstan. Dalam hal ini, menghitung biaya adalah perkalian sederhana. Misalnya, anggap fungsi Anda digunakan 0,5 GB selama 3 detik. Maka biaya eksekusinya adalah 0.5GB * 3s = 1.5 GB-seconds.

Karena penggunaan memori berubah dari waktu ke waktu, perhitungan pada dasarnya merupakan bagian integral dari penggunaan memori dari waktu ke waktu. Sistem melakukan perhitungan ini dengan mengambil sampel penggunaan memori proses (bersama dengan proses turunan) secara berkala. Seperti disebutkan pada halaman harga, penggunaan memori dibulatkan ke wadah 128-MB terdekat. Saat proses Anda menggunakan 160 MB, Anda dikenakan biaya untuk 256 MB. Perhitungan memperhitungkan konkurensi, yaitu beberapa eksekusi fungsi bersamaan dalam proses yang sama.

Catatan

Meskipun penggunaan CPU tidak secara langsung dipertimbangkan dalam biaya eksekusi, hal itu dapat berdampak pada biaya saat memengaruhi waktu eksekusi fungsi.

Untuk fungsi yang dipicu HTTP, saat kesalahan terjadi sebelum kode fungsi Anda mulai mengeksekusi, Anda tidak ditagih untuk eksekusi. Ini berarti bahwa 401 respons dari platform karena validasi kunci API atau fitur Autentikasi/Otorisasi App Service tidak dihitung terhadap biaya eksekusi Anda. Demikian pula, respons kode status 5xx tidak dihitung saat terjadi di platform sebelum fungsi memproses permintaan. Respons 5xx yang dihasilkan oleh platform setelah kode fungsi Anda mulai dijalankan masih dihitung sebagai eksekusi, bahkan jika kesalahan tidak dinaikkan oleh kode fungsi Anda.

Saat memperkirakan biaya keseluruhan menjalankan fungsi Anda dalam paket apa pun, ingatlah bahwa runtime Functions menggunakan beberapa layanan Azure lainnya, yang masing-masing ditagih secara terpisah. Saat menghitung harga untuk aplikasi fungsi, pemicu dan pengikatan apa pun yang Anda miliki yang terintegrasi dengan layanan Azure lainnya mengharuskan Anda membuat dan membayar layanan tambahan tersebut.

Untuk fungsi yang berjalan dalam paket Consumption, total biaya adalah biaya eksekusi fungsi Anda, ditambah biaya bandwidth dan layanan tambahan.

Saat memperkirakan biaya keseluruhan aplikasi fungsi dan layanan terkait Anda, gunakan kalkulator harga Azure.

Biaya terkait Deskripsi
Akun penyimpanan Setiap aplikasi fungsi mengharuskan Anda memiliki akun Tujuan Umum Azure Storage terkait, yang ditagih secara terpisah. Akun ini digunakan secara internal oleh runtime Functions, tetapi Anda juga dapat menggunakannya untuk pemicu dan pengikatan Storage. Jika Anda tidak memiliki akun penyimpanan, akun penyimpanan dibuat untuk Anda saat aplikasi fungsi dibuat. Untuk mempelajari selengkapnya, lihat Persyaratan akun Storage.
Application Insights Fungsi bergantung pada Application Insights untuk memberikan pengalaman pemantauan berkinerja tinggi untuk aplikasi fungsi Anda. Meskipun tidak diperlukan, Anda harus mengaktifkan integrasi Application Insights. Pemberian gratis data telemetri disertakan setiap bulan. Untuk mempelajari selengkapnya, lihat halaman harga Azure Monitor.
Bandwidth jaringan Anda tidak membayar transfer data antar layanan Azure di wilayah yang sama. Namun, Anda dapat dikenakan biaya untuk transfer data keluar ke wilayah lain atau di luar Azure. Untuk mempelajari selengkapnya, lihat Detail harga Bandwidth.

Perilaku yang memengaruhi waktu eksekusi

Perilaku fungsi Anda berikut dapat memengaruhi waktu eksekusi:

  • Pemicu dan pengikatan: Waktu yang dibutuhkan untuk membaca input dari dan menulis output ke pengikatan fungsi Anda dihitung sebagai waktu eksekusi. Misalnya, saat fungsi Anda menggunakan pengikatan output untuk menulis pesan ke antrean penyimpanan Azure, waktu eksekusi Anda mencakup waktu yang diperlukan untuk menulis pesan ke antrean, yang disertakan dalam perhitungan biaya fungsi.

  • Eksekusi asinkron: Waktu fungsi Anda menunggu hasil permintaan asinkron (await di C#) dihitung sebagai waktu eksekusi. Perhitungan GB-detik didasarkan pada waktu mulai dan akhir fungsi dan penggunaan memori selama periode tersebut. Apa yang terjadi selama waktu itu dalam hal aktivitas CPU tidak diperhitungkan dalam kalkulasi. Anda mungkin dapat mengurangi biaya selama operasi asinkron dengan menggunakan Durable Functions. Anda tidak akan dikenai biaya atas waktu yang dihabiskan untuk menunggu di fungsi orkestrator.

Dalam faktur Anda, Anda dapat melihat data terkait biaya Total Eksekusi - Functions dan Waktu Eksekusi - Functions, bersama dengan biaya yang ditagih sebenarnya. Namun, data faktur ini adalah agregat bulanan untuk periode faktur sebelumnya.

Metrik tingkat aplikasi fungsi

Untuk lebih memahami dampak biaya fungsi Anda, Anda dapat menggunakan Azure Monitor untuk melihat metrik terkait biaya yang saat ini sedang dibuat oleh aplikasi fungsi Anda.

Gunakan penjelajah metrik Azure Monitor untuk melihat data terkait biaya untuk aplikasi fungsi paket Consumption Anda dalam format grafis.

  1. Di portal Microsoft Azure, navigasikan ke aplikasi fungsi Anda.

  2. Di panel kiri, gulir ke bawah ke Pemantauan dan pilih Metrik.

  3. Dari Metrik, pilih Jumlah Eksekusi Fungsi dan Jumlah untuk Agregasi. Ini menambahkan jumlah hitungan eksekusi selama periode yang dipilih ke bagan.

    Define a functions app metric to add to the chart

  4. Pilih Tambahkan metrik dan ulangi langkah 2-4 untuk menambahkan Unit Eksekusi Fungsi ke bagan.

Bagan yang dihasilkan berisi total untuk kedua metrik eksekusi dalam rentang waktu yang dipilih, yang dalam hal ini adalah dua jam.

Graph of function execution counts and execution units

Karena jumlah unit eksekusi jauh lebih besar dari jumlah eksekusi, bagan hanya menunjukkan unit eksekusi.

Bagan ini menunjukkan total 1,11 miliar Function Execution Units yang dikonsumsi dalam periode dua jam, diukur dalam MB-milidetik. Untuk mengonversi ke GB-detik, bagi dengan 1024000. Dalam contoh ini, aplikasi fungsi mengonsumsi 1110000000 / 1024000 = 1083.98 GB-detik. Anda dapat mengambil nilai ini dan mengalikannya dengan harga waktu eksekusi saat ini di halaman harga fungsi, yang memberi Anda biaya dua jam ini, dengan asumsi Anda telah menggunakan pemberian waktu eksekusi gratis.

Metrik tingkat fungsi

Unit eksekusi fungsi adalah kombinasi waktu eksekusi dan penggunaan memori Anda, yang menjadikannya metrik yang sulit untuk memahami penggunaan memori. Data memori bukan metrik yang saat ini tersedia melalui Azure Monitor. Namun, jika Anda ingin mengoptimalkan penggunaan memori aplikasi Anda, dapat menggunakan data penghitung performa yang dikumpulkan oleh Application Insights.

Jika Anda belum melakukannya, aktifkan Application Insights di aplikasi fungsi Anda. Dengan integrasi ini diaktifkan, Anda dapat meminta data telemetri ini di portal.

Anda dapat menggunakan penjelajah metrik Azure Monitor di portal Microsoft Azure atau REST API untuk mendapatkan data Metrik Azure Monitor.

Menentukan penggunaan memori

Di bawah Pemantauan, pilih Log (Analitik) , lalu salin kueri telemetri berikut dan tempelkan ke jendela kueri dan pilih Jalankan. Kueri ini mengembalikan total penggunaan memori pada setiap waktu yang menjadi sampel.

performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value

Hasilnya terlihat seperti contoh berikut:

stempel waktu [UTC] name value
9/12/2019, 1:05:14.947 AM Byte Privat 209.932.288
9/12/2019, 1:06:14.994 AM Byte Privat 212.189.184
9/12/2019, 1:06:30.010 AM Byte Privat 231.714.816
9/12/2019, 1:07:15.040 AM Byte Privat 210.591.744
9/12/2019, 1:12:16.285 AM Byte Privat 216.285.184
9/12/2019, 1:12:31.376 AM Byte Privat 235.806.720

Menentukan durasi

Azure Monitor melacak metrik di tingkat sumber daya, untuk Fungsi adalah aplikasi fungsi. Integrasi Application Insights memperlihatkan metrik berdasarkan per fungsi. Berikut ini contoh kueri analitik untuk mendapatkan durasi rata-rata fungsi:

customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
name averageDurationMilliseconds
QueueTrigger AvgDurationMs 16.087
QueueTrigger MaxDurationMs 90.249
QueueTrigger MinDurationMs 8.522

Langkah berikutnya