Szacowanie kosztów planu zużycia

Obecnie istnieją trzy typy planów hostingu dla aplikacji uruchamianej w Azure Functions, przy użyciu których każdy plan ma własny model cenowy:

Planowanie Opis
Zużycie Opłaty są naliczane tylko za czas działania aplikacji funkcji. Ten plan obejmuje stronę [z cennikiem bezpłatnych][grantów] dla każdej subskrypcji.
Premium Zapewnia te same funkcje i mechanizm skalowania co plan Zużycie, ale z większą wydajnością i dostępem do sieci wirtualnej. Koszt jest oparty na wybranej warstwie cenowej. Aby dowiedzieć się więcej, zobacz Azure Functions Premium planie.
Dedykowane (App Service)
(warstwa Podstawowa lub wyższa)
Jeśli musisz działać na dedykowanych maszyn wirtualnych lub w izolacji, użyj obrazów niestandardowych lub chcesz użyć nadmiarowego planu App Service pojemności. Używa regularnych rozliczeń App Service planu. Koszt jest oparty na wybranej warstwie cenowej.

Wybrano plan, który najlepiej spełnia wymagania dotyczące wydajności i kosztów funkcji. Aby dowiedzieć się więcej, zobacz Azure Functions skalowanie i hostowanie.

Ten artykuł dotyczy tylko planu Zużycie, ponieważ powoduje to zmienne koszty. Ten artykuł zawiera często zadawane pytania dotyczące rozliczeń kosztów planu zużycia.

Durable Functions można również uruchomić w planie Zużycie. Aby dowiedzieć się więcej na temat kwestii dotyczących kosztów podczas korzystania z Durable Functions, zobacz Durable Functions rozliczeń.

Koszty planu zużycia

Koszt wykonywania pojedynczej funkcji jest mierzony w GB-sekundach. Koszt wykonywania jest obliczany przez połączenie użycia pamięci z czasem wykonywania. Funkcja, która działa dłużej, kosztuje więcej, podobnie jak funkcja, która zużywa więcej pamięci.

Rozważmy przypadek, w którym ilość pamięci używanej przez funkcję pozostaje stała. W tym przypadku obliczenie kosztu jest prostym mnożeniem. Załóżmy na przykład, że funkcja zużywała 0,5 GB przez 3 sekundy. Następnie koszt wykonania to 0.5GB * 3s = 1.5 GB-seconds .

Ponieważ użycie pamięci zmienia się w czasie, obliczenie jest zasadniczo integralną częścią użycia pamięci w czasie. System robi to obliczenie przez próbkowanie użycia pamięci przez proces (wraz z procesami podrzędnym) w regularnych odstępach czasu. Jak wspomniano na stronie [cennika,]użycie pamięci jest zaokrąglane w górę do najbliższego zasobnika o rozmiarze 128 MB. Jeśli proces używa 160 MB, opłata jest naliczana za 256 MB. Obliczenie uwzględnia współbieżność, czyli wiele współbieżnych wykonań funkcji w tym samym procesie.

Uwaga

Użycie procesora CPU nie jest bezpośrednio rozważane w kosztach wykonywania, ale może mieć wpływ na koszt, gdy wpływa na czas wykonywania funkcji.

W przypadku funkcji wyzwalanych przez protokół HTTP, gdy wystąpi błąd przed rozpoczęciem wykonywania kodu funkcji, nie są naliczane opłaty za wykonanie. Oznacza to, że odpowiedzi 401 z platformy ze względu na weryfikację klucza interfejsu API lub funkcję uwierzytelniania/autoryzacji usługi App Service nie są wliczane do kosztów wykonywania. Podobnie odpowiedzi kodu stanu 5xx nie są zliczane, gdy występują na platformie przed przetworzeniem żądania przez funkcję. Odpowiedź 5xx wygenerowana przez platformę po zakończeniu wykonywania kodu funkcji jest nadal liczona jako wykonanie, nawet jeśli błąd nie został wygenerowany przez kod funkcji.

Podczas szacowania ogólnego kosztu działania funkcji w dowolnym planie należy pamiętać, że środowisko uruchomieniowe usługi Functions używa kilku innych usług platformy Azure, z których każda jest rozliczana osobno. Podczas obliczania cen dla aplikacji funkcji wszystkie posiadane wyzwalacze i powiązania zintegrowane z innymi usługami platformy Azure wymagają utworzenia i zapłacenia za te dodatkowe usługi.

W przypadku funkcji działających w planie Zużycie całkowity koszt to koszt wykonywania funkcji oraz koszt przepustowości i dodatkowych usług.

Podczas szacowania ogólnych kosztów aplikacji funkcji i powiązanych usług użyj kalkulatora cen platformy Azure.

Powiązany koszt Opis
Konto magazynu Każda aplikacja funkcji wymaga skojarzonego konta usługi Azure Ogólnego przeznaczenia Storage,które jest rozliczane oddzielnie. To konto jest używane wewnętrznie przez środowisko uruchomieniowe usługi Functions, ale można go również używać Storage wyzwalaczy i powiązań. Jeśli nie masz konta magazynu, zostanie utworzone podczas tworzenia aplikacji funkcji. Aby dowiedzieć się więcej, zobacz Storage wymagania dotyczące konta.
Application Insights Funkcja Functions korzysta z usługi Application Szczegółowe informacje, aby zapewnić wysokowydajne środowisko monitorowania dla aplikacji funkcji. Chociaż nie jest to wymagane, należy włączyć integrację Szczegółowe informacje application. Bezpłatne przyznawanie danych telemetrycznych jest uwzględniane co miesiąc. Aby dowiedzieć się więcej, zobacz Azure Monitor cennika.
Przepustowość sieci Nie płacisz za transfer danych między usługami platformy Azure w tym samym regionie. Można jednak ponieść koszty transferów danych wychodzących do innego regionu lub poza platformą Azure. Aby dowiedzieć się więcej, zobacz Szczegóły cennika przepustowości.

Zachowania wpływające na czas wykonywania

Następujące zachowania funkcji mogą mieć wpływ na czas wykonywania:

  • Wyzwalacze i powiązania: czas trwania odczytywania danych wejściowych z i zapisu danych wyjściowych w powiązaniach funkcji jest liczony jako czas wykonywania. Jeśli na przykład funkcja używa powiązania wyjściowego do zapisu komunikatu w kolejce usługi Azure Storage, czas wykonywania obejmuje czas, który jest czas do zapisu komunikatu w kolejce, który jest uwzględniany podczas obliczania kosztu funkcji.

  • Wykonywanie asynchroniczne: czas oczekiwania funkcji na wyniki żądania asynchronicznego (w języku await C#) jest liczony jako czas wykonywania. Obliczanie sekundy GB jest oparte na godzinie rozpoczęcia i zakończenia funkcji oraz użyciu pamięci w tym okresie. To, co dzieje się w tym czasie w kontekście aktywności procesora CPU, nie jest uwzględniane w obliczeniach. Możesz zmniejszyć koszty podczas operacji asynchronicznych przy użyciuDurable Functions . Nie są naliczane rachunki za czas spędzony w oczekiwaniu na funkcje orkiestratora.

Na fakturzemożna wyświetlić dane dotyczące kosztów z łącznej liczby wykonań — funkcje i czas wykonywania — funkcje oraz rzeczywiste rozliczane koszty. Jednak te dane faktury są agregowane co miesiąc dla ostatniego okresu faktury.

Metryki na poziomie aplikacji funkcji

Aby lepiej zrozumieć wpływ funkcji na koszty, możesz użyć usługi Azure Monitor do wyświetlania metryk związanych z kosztami, które są obecnie generowane przez aplikacje funkcji.

Użyj Azure Monitor metryk, aby wyświetlić dane związane z kosztami dla aplikacji funkcji planu Zużycie w formacie graficznym.

  1. W [Azure Portal]przejdź do aplikacji funkcji.

  2. W panelu po lewej stronie przewiń w dół do opcji Monitorowanie i wybierz pozycję Metryki.

  3. W metryce wybierz pozycję Liczba wykonań funkcji i Suma dla opcji Agregacja. Powoduje to dodanie do wykresu sumy liczby wykonań w wybranym okresie.

    Definiowanie metryki aplikacji funkcji do dodania do wykresu

  4. Wybierz pozycję Dodaj metrykę i powtórz kroki 2–4, aby dodać jednostki wykonywania funkcji do wykresu.

Wynikowy wykres zawiera sumy dla obu metryk wykonania w wybranym zakresie czasu, czyli w tym przypadku dwie godziny.

Graph liczby wykonań funkcji i jednostek wykonywania

Ponieważ liczba jednostek wykonywania jest znacznie większa niż liczba wykonań, wykres przedstawia tylko jednostki wykonania.

Ten wykres przedstawia łączną ilość zużytych 1,11 mld w okresie dwóch godzin mierzonych w Function Execution Units MB milisekundach. Aby przekonwertować na GB-sekundy, podziel przez 1024000. W tym przykładzie aplikacja funkcji zużywała 1110000000 / 1024000 = 1083.98 GB sekund. Tę wartość można pomnożyć przez bieżącą cenę czasu wykonywania na stronie cennika usługi Functions,która zapewnia koszt tych dwóch godzin przy założeniu, że zostały już użyte bezpłatne granty czasu wykonywania.

Metryki na poziomie funkcji

Jednostki wykonywania funkcji są kombinacją czasu wykonywania i użycia pamięci, co sprawia, że jest to trudna metryka do zrozumienia użycia pamięci. Dane pamięci nie są obecnie metryką dostępną za pośrednictwem Azure Monitor. Jeśli jednak chcesz zoptymalizować użycie pamięci aplikacji, możesz użyć danych licznika wydajności zebranych przez usługę Application Szczegółowe informacje.

Jeśli jeszcze tego nie zrobiono, włącz funkcję Application Szczegółowe informacje w aplikacji funkcji. Po włączeniu tej integracji można w portalu zapytania dotyczące tych danych telemetrycznych.

Możesz użyć eksploratora Azure Monitor metryk w oknie [Azure Portal] api REST lub interfejsów API REST, aby pobrać dane metryk monitora.

Określanie użycia pamięci

W obszarze monitorowanie wybierz pozycję dzienniki (analiza), a następnie skopiuj poniższe zapytanie telemetryczne i wklej je do okna zapytania i wybierz polecenie Uruchom. To zapytanie zwraca całkowite użycie pamięci przy każdym próbkowanym czasie.

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

Wyniki wyglądają podobnie jak w poniższym przykładzie:

Sygnatura czasowa [ UTC] name wartość
9/12/2019, 1:05:14 . 947 am Bajty prywatne 209 932 288
9/12/2019, 1:06:14 . 994 am Bajty prywatne 212 189 184
9/12/2019, 1:06:30 . 010 am Bajty prywatne 231 714 816
9/12/2019, 1:07:15 . 040 am Bajty prywatne 210 591 744
9/12/2019, 1:12:16 . 285 am Bajty prywatne 216 285 184
9/12/2019, 1:12:31 . 376 am Bajty prywatne 235 806 720

Określ czas trwania

Azure Monitor śledzi metryki na poziomie zasobu, który dla funkcji jest aplikacją funkcji. Integracja Application Insights emituje metryki dla poszczególnych funkcji. Oto przykładowe zapytanie analityczne, aby uzyskać średni czas trwania funkcji:

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

Następne kroki