Durable Functions fakturering
Durable Functions faktureras på samma sätt som Azure Functions. Mer information finns i prissättning för Azure Functions.
När du kör orchestrator-funktioner i Azure Functions förbrukningsplan måste du vara medveten om vissa faktureringsbeteenden. I följande avsnitt beskrivs dessa beteenden och deras effekt i detalj.
Orkestreringsfunktionens omspelsfakturering
Orchestrator-funktioner kan spelas upp flera gånger under en orkestrerings livstid. Varje repris visas av Azure Functions körning som en distinkt funktionsanrop. Därför debiteras du för varje repris av en orchestrator-funktion i den Azure Functions förbrukningsplanen. Andra plantyper debiteras inte för orchestrator-funktionsrepris.
Väntar på och ger i orchestrator-funktioner
När en orchestrator-funktion väntar på att en asynkron aktivitet ska slutföras, anser körningen att den specifika funktionsanropet är slutfört. Faktureringen för orchestrator-funktionen stoppas vid den tidpunkten. Den återupptas inte förrän nästa orchestrator-funktion spelas upp. Du debiteras inte för någon tid som spenderas på att vänta eller ge efter i en orchestrator-funktion.
Anteckning
Funktioner som anropar andra funktioner anses av vissa vara ett serverlöst antimönster. Detta beror på ett problem som kallas dubbel fakturering. När en funktion anropar en annan funktion direkt körs båda samtidigt. Den anropade funktionen kör aktivt kod medan den anropande funktionen väntar på ett svar. I det här fallet måste du betala för den tid som den anropande funktionen ägnar åt att vänta på att den anropade funktionen ska köras.
Det finns ingen dubbel fakturering i orchestrator-funktioner. Faktureringen för en orchestrator-funktion stoppas medan den väntar på resultatet av en aktivitetsfunktion eller underorkestrering.
Varaktig HTTP-avsökning
Orchestrator-funktioner kan göra långvariga HTTP-anrop till externa slutpunkter enligt beskrivningen i artikeln HTTP-funktioner. API:erna "anropa HTTP" kan internt avsöka en HTTP-slutpunkt samtidigt som mönstret asynkront 202 följs.
Det finns för närvarande ingen direkt fakturering för interna HTTP-avsökningsåtgärder. Intern avsökning kan dock orsaka att orchestrator-funktionen regelbundet spelas upp. Du debiteras standardavgifter för dessa interna funktionsrepriser.
Azure Storage-transaktioner
Durable Functions använder Azure Storage som standard för att hålla tillståndet beständigt, bearbeta meddelanden och hantera partitioner via bloblån. Eftersom du äger det här lagringskontot debiteras eventuella transaktionskostnader till din Azure-prenumeration. Mer information om Azure Storage-artefakter som används av Durable Functions finns i artikeln Aktivitetshubbar.
Flera faktorer bidrar till de faktiska Azure Storage-kostnader som din Durable Functions app medför:
- En enskild funktionsapp är associerad med en enda aktivitetshubb som delar en uppsättning Azure Storage-resurser. Dessa resurser används av alla varaktiga funktioner i en funktionsapp. Det faktiska antalet funktioner i funktionsappen påverkar inte transaktionskostnaderna för Azure Storage.
- Varje funktionsappinstans avsöker internt flera köer i lagringskontot med hjälp av en exponentiell avsökningsalgoritm. En inaktiv appinstans avsöker köerna mindre ofta än en aktiv app, vilket resulterar i färre transaktionskostnader. Mer information om Durable Functions kösökningsbeteende när du använder Azure Storage-providern finns i avsnittet om kösökning i Azure Storage-providerns dokumentation.
- När du kör i Azure Functions Consumption eller Premium-abonnemangen avsöker Azure Functions skalningskontrollant regelbundet alla aktivitetshubbköer i bakgrunden. Om en funktionsapp är under ljus till måttlig skala avsöks endast en instans av en enda skalningskontrollant av dessa köer. Om funktionsappen skalas ut till ett stort antal instanser kan fler instanser av skalningskontrollanter läggas till. Dessa ytterligare skalningskontrollantinstanser kan öka de totala kostnaderna för kötransaktion.
- Varje funktionsappinstans konkurrerar om en uppsättning bloblån. Dessa instanser gör regelbundet anrop till Azure Blob-tjänsten antingen för att förnya undantagna lån eller för att försöka skaffa nya lån. Aktivitetshubbens konfigurerade partitionsantal avgör antalet bloblån. Utskalning till ett större antal funktionsappinstanser ökar sannolikt de Azure Storage-transaktionskostnader som är associerade med dessa låneåtgärder.
Mer information om Priser för Azure Storage finns i prisdokumentationen för Azure Storage .