Tüketim planı maliyetlerini tahmin etme

Şu anda her planın kendi fiyatlandırma modeline sahip Azure İşlevleri çalışan bir uygulama için üç tür barındırma planı vardır:

Planlama Description
Tüketim Yalnızca işlev uygulamanızın çalıştığı süre için ücretlendirilirsiniz. Bu plan, abonelik başına ücretsiz bir izin içerir.
Premium Tüketim planıyla aynı özellikleri ve ölçeklendirme mekanizmasını sağlar, ancak gelişmiş performans ve sanal ağ erişimi sağlar. Maliyet, seçtiğiniz fiyatlandırma katmanını temel alır. Daha fazla bilgi edinmek için bkz. Premium planı Azure İşlevleri.
Ayrılmış (App Service)
(temel katman veya üzeri)
Ayrılmış VM'lerde veya yalıtımlı olarak çalıştırmanız gerektiğinde, özel görüntüler kullanın veya fazla App Service plan kapasitenizi kullanmak istiyorsanız. Normal App Service plan faturalaması kullanır. Maliyet, seçtiğiniz fiyatlandırma katmanını temel alır.

İşlev performansınızı ve maliyet gereksinimlerinizi en iyi destekleyen planı seçtiniz. Daha fazla bilgi edinmek için bkz. Azure İşlevleri ölçeklendirme ve barındırma.

Bu makalede yalnızca Tüketim planı ele alınıyor, çünkü bu plan değişken maliyetlere neden oluyor. Bu makalede Tüketim planı maliyet faturalaması SSS makalesinin yerini alır.

Dayanıklı İşlevler bir Tüketim planında da çalıştırılabilir. Dayanıklı İşlevler kullanırken maliyetle ilgili dikkat edilmesi gerekenler hakkında daha fazla bilgi edinmek için bkz. faturalama Dayanıklı İşlevler.

Tüketim planı maliyetleri

Tek bir işlev yürütmesinin yürütme maliyetiGB saniye cinsinden ölçülür. Yürütme maliyeti, bellek kullanımı yürütme süresiyle birleştirilerek hesaplanır. Daha uzun süre çalışan bir işlev, daha fazla bellek tüketen bir işlev gibi daha fazla maliyetlidir.

İşlev tarafından kullanılan bellek miktarının sabit kaldığı bir durum düşünün. Bu durumda, maliyeti hesaplamak basit çarpma işlemidir. Örneğin işlevinizin 3 saniye boyunca 0,5 GB tüketildiğini varsayalım. Ardından yürütme maliyeti olur 0.5GB * 3s = 1.5 GB-seconds.

Bellek kullanımı zamanla değiştiğinden, hesaplama temelde zaman içindeki bellek kullanımının ayrılmaz bir parçasıdır. Sistem bu hesaplamayı, işlemin bellek kullanımını (alt işlemler ile birlikte) düzenli aralıklarla örnekleme yaparak yapar. Fiyatlandırma sayfasında belirtildiği gibi bellek kullanımı en yakın 128 MB demetine yuvarlanır. İşleminiz 160 MB kullandığında 256 MB ücretlendirilirsiniz. Hesaplama aynı işlemde birden çok eşzamanlı işlev yürütmesi olan eşzamanlılığı dikkate alır.

Not

CPU kullanımı yürütme maliyetinde doğrudan dikkate alınmasa da, işlevin yürütme süresini etkilediğinde maliyet üzerinde bir etkisi olabilir.

HTTP ile tetiklenen bir işlev için, işlev kodunuz yürütülmeye başlamadan önce bir hata oluştuğunda bir yürütme için ücret alınmaz. Bu, API anahtarı doğrulaması veya App Service Kimlik Doğrulaması / Yetkilendirme özelliği nedeniyle platformdan gelen 401 yanıtının yürütme maliyetinize göre hesaplanmadığını gösterir. Benzer şekilde, 5xx durum kodu yanıtları, isteği işleyen bir işlevden önce platformda gerçekleştiğinde sayılmaz. İşlev kodunuz yürütülmeye başladıktan sonra platform tarafından oluşturulan 5xx yanıtı, hata işlev kodunuz tarafından oluşturulmasa bile yürütme olarak sayılır.

İşlevlerinizi herhangi bir planda çalıştırmanın genel maliyetini tahmin ederken İşlevler çalışma zamanının her biri ayrı olarak faturalandırılan birkaç azure hizmeti daha kullandığını unutmayın. İşlev uygulamaları için fiyatlandırmayı hesaplarken, diğer Azure hizmetleriyle tümleştirdiğiniz tüm tetikleyiciler ve bağlamalar, bu ek hizmetleri oluşturmanızı ve ödemenizi gerektirir.

Tüketim planında çalışan işlevler için toplam maliyet, işlevlerinizin yürütme maliyetinin yanı sıra bant genişliği ve ek hizmetlerin maliyetidir.

İşlev uygulamanızın ve ilgili hizmetlerin genel maliyetlerini tahmin ederken Azure fiyatlandırma hesaplayıcısını kullanın.

İlgili maliyet Açıklama
Depolama hesabı Her işlev uygulaması, ayrı olarak faturalandırılan azure depolama hesabı Genel Amaçlı ilişkili bir hesabınız olmasını gerektirir. Bu hesap İşlevler çalışma zamanı tarafından dahili olarak kullanılır, ancak depolama tetikleyicileri ve bağlamaları için de kullanabilirsiniz. Depolama hesabınız yoksa işlev uygulaması oluşturulduğunda sizin için bir hesap oluşturulur. Daha fazla bilgi için bkz . Depolama hesabı gereksinimleri.
Uygulama Bilgileri İşlevler, işlev uygulamalarınız için yüksek performanslı bir izleme deneyimi sağlamak için Application Insights'ı kullanır. Gerekli olmasa da Application Insights tümleştirmesini etkinleştirmeniz gerekir. Her ay ücretsiz telemetri verileri verilmektedir. Daha fazla bilgi edinmek için Bkz. Azure İzleyici fiyatlandırma sayfası.
Ağ bant genişliği Veri taşımanın yönüne ve senaryosuna bağlı olarak veri aktarımı için maliyet oluşturabilirsiniz. Daha fazla bilgi edinmek için bkz . Bant genişliği fiyatlandırma ayrıntıları.

Yürütme süresini etkileyen davranışlar

İşlevlerinizin aşağıdaki davranışları yürütme süresini etkileyebilir:

  • Tetikleyiciler ve bağlamalar: İşlev bağlamalarınızdaki girişi okumak ve çıkış yazmak için geçen süre yürütme süresi olarak sayılır. Örneğin, işleviniz bir Azure depolama kuyruğuna ileti yazmak için bir çıkış bağlaması kullandığında, yürütme süreniz, işlev maliyetinin hesaplanmasında yer alan iletiyi kuyruğa yazmak için geçen süreyi içerir.

  • Zaman uyumsuz yürütme: İşlevinizin zaman uyumsuz isteğin sonuçlarını beklediği süre (await C#'de) yürütme süresi olarak sayılır. GB saniye hesaplaması, işlevin başlangıç ve bitiş saati ile bu süre içindeki bellek kullanımını temel alır. Cpu etkinliği açısından bu süre içinde gerçekleşenler hesaplamaya dahil edilmez. Dayanıklı İşlevler kullanarak zaman uyumsuz işlemler sırasında maliyetleri düşürebilirsiniz. Düzenleyici işlevlerinde awaits'de harcanan süre için faturalandırılmazsınız.

Faturanızda Toplam Yürütmeler - İşlevler ve Yürütme Süresi - İşlevler'in maliyetle ilgili verilerini ve gerçek faturalanan maliyetleri görüntüleyebilirsiniz. Ancak bu fatura verileri, geçmiş bir fatura dönemi için aylık bir toplama işlemidir.

İşlev uygulaması düzeyinde ölçümler

İşlevlerinizin maliyet etkisini daha iyi anlamak için Azure İzleyici'yi kullanarak işlev uygulamalarınız tarafından şu anda oluşturulan maliyetle ilgili ölçümleri görüntüleyebilirsiniz.

Tüketim planı işlev uygulamalarınıza ilişkin maliyetle ilgili verileri grafik biçiminde görüntülemek için Azure İzleyici ölçüm gezginini kullanın.

  1. Azure portal işlev uygulamanıza gidin.

  2. Sol panelde ekranı aşağı kaydırarak İzleme'ye gelin ve Ölçümler'i seçin.

  3. Ölçüm'dentoplama içinİşlev Yürütme Sayısı ve Toplam'ı seçin. Bu, seçilen süre boyunca yürütme sayılarının toplamını grafiğe ekler.

    Grafiğe eklenecek işlev uygulaması ölçümünü tanımlama

  4. Grafiğe İşlev Yürütme Birimleri eklemek için Ölçüm ekle'yi seçin ve 2-4 arası adımları yineleyin.

Sonuçta elde edilen grafik, seçilen zaman aralığındaki her iki yürütme ölçümünü de (bu örnekte iki saat) içerir.

İşlev yürütme sayılarının ve yürütme birimlerinin grafiği

Yürütme birimi sayısı yürütme sayısından çok daha fazla olduğundan grafik yalnızca yürütme birimlerini gösterir.

Bu grafik, mb milisaniye cinsinden ölçülen iki saatlik bir dönemde tüketilen toplam 1,11 milyarı Function Execution Units gösterir. GB saniyeye dönüştürmek için 1024000'e bölün. Bu örnekte işlev uygulaması GB saniye tüketmiş 1110000000 / 1024000 = 1083.98 . Bu değeri alıp İşlevler fiyatlandırma sayfasında geçerli yürütme süresi fiyatıyla çarpabilirsiniz. Bu, ücretsiz yürütme süresi izni kullandığınız varsayılarak bu iki saatin maliyetini verir.

İşlev düzeyi ölçümleri

İşlev yürütme birimleri, yürütme süresi ile bellek kullanımınızın birleşimidir ve bu da bellek kullanımını anlamak için zor bir ölçüm olmasını sağlar. Bellek verileri şu anda Azure İzleyici aracılığıyla kullanılabilen bir ölçüm değildir. Ancak, uygulamanızın bellek kullanımını iyileştirmek istiyorsanız Application Insights tarafından toplanan performans sayacı verilerini kullanabilirsiniz.

Henüz yapmadıysanız işlev uygulamanızda Application Insights'ı etkinleştirin. Bu tümleştirme etkinleştirildiğinde, bu telemetri verilerini portalda sorgulayabilirsiniz.

İzleyici Ölçümleri verilerini almak için Azure portal veya REST API'lerinde Azure İzleyici ölçüm gezginini kullanabilirsiniz.

Bellek kullanımını belirleme

İzleme'nin altında Günlükler (Analiz)'i seçin, ardından aşağıdaki telemetri sorgusunu kopyalayıp sorgu penceresine yapıştırın ve Çalıştır'ı seçin. Bu sorgu, örneklenen her bir zamandaki toplam bellek kullanımını döndürür.

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

Sonuçlar aşağıdaki örneğe benzer:

zaman damgası [UTC] name değer
12.09.2019, 01:05:14.947 Özel Bayt Sayısı 209,932,288
12.09.2019, 01:06:14.994 Özel Bayt Sayısı 212,189,184
12.09.2019, 01:06:30.010 Özel Bayt Sayısı 231,714,816
12.09.2019, 01:07:15.040 Özel Bayt Sayısı 210,591,744
12.09.2019, 01:12:16.285 Özel Bayt Sayısı 216,285,184
12.09.2019, 01:12:31.376 Özel Bayt Sayısı 235,806,720

Süreyi belirleme

Azure İzleyici, ölçümleri kaynak düzeyinde izler ve İşlevler için bu işlev uygulamasıdır. Application Insights tümleştirmesi, ölçümleri işlev başına temel alarak gösterir. Bir işlevin ortalama süresini almak için örnek bir analiz sorgusu aşağıda verilmiştir:

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

Sonraki adımlar