Tüketim planı maliyetlerini tahmin etmek

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

Planlama Açıklama
Tüketim Yalnızca işlev uygulamanız çalıştırıldık süre için ücret ödemeniz gerekir. Bu plan, abonelik [başına bir][ücretsiz] izin fiyatlandırma sayfası 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ına göredir. Daha fazla bilgi edinmek için bkz. Azure İşlevleri Premium plan.
Ayrılmış (App Service)
(temel katman veya daha yüksek)
Ayrılmış VM'lerde veya yalıtken çalıştırmanız gereken özel görüntüleri kullanın ya da fazlalık görüntülerinizi App Service plan kapasitesi kullanın. Faturalamayı App Service kullanır. Maliyet, seçtiğiniz fiyatlandırma katmanına göredir.

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

Bu makale yalnızca Tüketim planıyla ilgilidir çünkü bu plan değişken maliyetlerle sonuçlanmıştır. Bu makalede Tüketim planı maliyet faturalaması hakkında SSS makalesi yer almaktadır.

Dayanıklı İşlevler bir Tüketim planında da çalışmasına izin ve olabilir. Uygulama kullanırken maliyetle ilgili dikkat edilmesi gerekenler hakkında daha fazla Dayanıklı İşlevler için bkz. Dayanıklı İşlevler..

Tüketim planı maliyetleri

Tek bir işlev yürütmenin yürütme maliyeti GB-saniye olarak ölçülür. Yürütme maliyeti, bellek kullanımını yürütme süresiyle birleştirerek hesaplanır. Daha uzun maliyetler için çalışan bir işlev, daha fazla bellek tüketen bir işlev gibi.

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

Bellek kullanımı zaman içinde değiştiklerden, hesaplama temelde zaman içinde bellek kullanımının ayrılmaz bir parçasıdır. Sistem bu hesaplamayı düzenli aralıklarla sürecin bellek kullanımını (alt işlemlerle birlikte) örneklemek için yapar. Fiyatlandırma sayfasında belirtildiği [gibi bellek]kullanımı en yakın 128 MB'lık demete yuvarlanacaktır. İşlem 160 MB kullanıyorsa 256 MB ücrete tabidir. Hesaplama eşzamanlılığı hesaba katarak aynı işlemde birden çok eşzamanlı işlev yürütmesi sağlar.

Not

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

HTTP ile tetiklenen bir işlev için, işlev kodunuz yürütülmeden önce bir hata oluştuğunda yürütme için ücret ödemezsiniz. Bu, API anahtarı doğrulaması veya App Service Kimlik Doğrulaması / Yetkilendirme özelliği nedeniyle platformdan gelen 401 yanıtını yürütme maliyetinize göre saymayılacağı anlamına gelir. Benzer şekilde, 5xx durum kodu yanıtları, isteği işlemeden önce platformda oluştuğunda sayılmaz. İşlev kodunuz yürütülmaya 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ı faturalandırılır diğer birkaç Azure hizmeti kullandığını unutmayın. İşlev uygulamalarının fiyatlandırması hesaplanırken, diğer Azure hizmetleriyle tümleştirilen tetikleyiciler ve bağlamalar için bu ek hizmetleri oluşturmanız ve ödemeniz gerekir.

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

İşlev uygulama ve ilgili hizmetlerin genel maliyetlerini tahmin etmek için Azure fiyatlandırma hesaplayıcısını kullanın.

İlgili maliyet Açıklama
Depolama hesabı Her işlev uygulaması, ayrı olarak faturalandır Genel Amaçlı Azure Depolamahesabıyla ilişkilendirilmiş bir hesap gerektirir. Bu hesap İşlevler çalışma zamanı tarafından dahili olarak kullanılır, ancak tetikleyicileri ve bağlamaları Depolama için de kullanabilirsiniz. Depolama hesabınız yoksa işlev uygulaması oluşturulduğunda sizin için bir tane oluşturulur. Daha fazla bilgi için bkz. Depolama gereksinimleri.
Uygulama Bilgileri İşlevler, işlev Analizler yüksek performanslı izleme deneyimi sağlamak için Application Analizler kullanır. Gerekli değildir ancak Application Analizler etkinleştirmeniz gerekir. Telemetri verilerine her ay ücretsiz erişim izni ve dahildir. Daha fazla bilgi edinmek için Azure İzleyici sayfasına bakın.
Ağ bant genişliği Aynı bölgedeki Azure hizmetleri arasında veri aktarımı için ödemezsiniz. Ancak, Azure'ın başka bir bölgeye veya dışına giden veri aktarımları için ücrete tabi tutulabilirsiniz. Daha fazla bilgi için bkz. Bant genişliği fiyatlandırma ayrıntıları.

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

İşlevlerinizin aşağıdaki davranışları yürütme sürenizi etkileyene kadar devam eder:

  • Tetikleyiciler ve bağlamalar: İşlev bağlamalarınıza gelen girişi okumak ve çıkış yazmak için gereken süre yürütme zamanı olarak sayılır. Örneğin, işleviniz bir Azure depolama kuyruğuna ileti yazmak için çıkış bağlaması kullandığında yürütme süreniz, iletiyi kuyruğa yazmak için gereken ve işlev maliyetinin hesaplanmasına dahil edilen zamanı içerir.

  • Zaman uyumsuz yürütme: İşlevin zaman uyumsuz bir isteğin sonuçlarını bekleme süresi await (C# ile) yürütme zamanı olarak sayılır. GB saniyelik hesaplama, işlevin başlangıç ve bitiş saatlerine ve bu süre boyunca bellek kullanımına göre yapılır. Bu süre içinde CPU etkinliği açısından neler olduğu hesaplamaya dahil değildir. zaman uyumsuz işlemler sırasında maliyetleri azaltmak için Dayanıklı İşlevler. Orchestrator işlevlerinde bekleyenler için harcanan süre için faturalandırlanmaz.

Faturanıza ,Toplam Yürütmeler - İşlevler ve Yürütme Süresi - İşlevler' ile maliyetle ilgili verileri ve faturalandırılan gerçek maliyetleri görüntüebilirsiniz. Ancak bu fatura verileri, geçmiş bir fatura dönemine göre aylık olarak toplanır.

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

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

Tüketim planı işlev uygulamalarınızın maliyet ile ilgili verilerini grafik biçiminde görüntülemek için Azure izleyici ölçümleri Gezginini kullanın.

  1. [Azure Portal], işlev uygulamanıza gidin.

  2. Sol bölmede, izleme ' ye kaydırın ve ölçümler' i seçin.

  3. Ölçüm'Den, toplama için işlev yürütme sayısı ve toplamı ' nı seçin. Bu, seçilen dönemdeki yürütme sayılarının toplamını grafiğe ekler.

    Grafiğe eklemek için bir işlevler uygulama ölçümü tanımlayın

  4. Grafiğe Işlev yürütme birimleri eklemek Için ölçüm Ekle ve 2-4 adımlarını tekrarlayın ' i seçin.

Elde edilen grafik, seçilen zaman aralığındaki her iki yürütme ölçümlerinin toplamını içerir. Bu durumda iki saattir.

işlev yürütme sayısı ve yürütme birimlerinin Graph

Yürütme birimlerinin sayısı, yürütme sayısından çok daha fazla olduğu için grafik yalnızca yürütme birimlerini gösterir.

Bu grafik Function Execution Units , MB cinsinden ölçülen, iki saatlik bir dönemde tüketilen toplam 1.110.000.000 sayısını gösterir. GB saniyeye dönüştürmek için 1024000 ile bölün. Bu örnekte, işlev uygulaması 1110000000 / 1024000 = 1083.98 GB-saniye tüketilebilir. Bu değeri alabilir ve işlevler fiyatlandırma sayfasındakigeçerli yürütme süresi fiyatına göre çarpıp, bu iki saatin ücretini, ancak herhangi bir ücretsiz yürütme süresi belirlediğiniz varsayıldığında, bu iki saatin maliyetini sağlar.

İşlev düzeyi ölçümleri

İşlev yürütme birimleri, yürütme süresi ile bellek kullanımınızı bir arada kullanarak bellek kullanımını anlamanızı zorlaştıracaktır. Bellek verileri şu anda veri kaynağı üzerinden kullanılabilen bir Azure İzleyici. Ancak, uygulamanın bellek kullanımını iyileştirmek için Application Analizler tarafından toplanan performans sayacı verilerini kullanabilirsiniz.

Henüz bunu yapmadıysanız, işlev uygulamanıza Uygulama Analizler'yi etkinleştirin. Bu tümleştirme etkinleştirildiğinde, portalda bu telemetri verilerini sorgu edebilirsiniz.

İzleme Ölçümleri verilerini Azure İzleyici için Azure portal veya [] REST API'leri kullanarak ölçüm gezginini kullanabilirsiniz.

Bellek kullanımını belirleme

İzleme altında Günlükler (Analiz) öğesini seçin, ardından aşağıdaki telemetri sorgusunu kopyalayın ve sorgu penceresine yapıştırın ve Çalıştır' ı seçin. Bu sorgu, her örneklenmiş zamanda 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 şekilde görünür:

zaman damgası [ UTC] name değer
9/12/2019, 1:05:14 . 947 Özel baytlar 209.932.288
9/12/2019, 1:06:14 . 994 Özel baytlar 212.189.184
9/12/2019, 1:06:30 . 010 Özel baytlar 231.714.816
9/12/2019, 1:07:15 . 040 Özel baytlar 210.591.744
9/12/2019, 1:12:16 . 285 Özel baytlar 216.285.184
9/12/2019, 1:12:31 . 376 Özel baytlar 235.806.720

Süreyi belirleme

Azure Izleyici, kaynak düzeyindeki ölçümleri izler, bu Işlevler işlev uygulamadır. Application Insights tümleştirme ölçümleri işlev başına temelinde yayar. 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