Durable Functions typen en functies (Azure Functions)Durable Functions types and features (Azure Functions)

Durable Functions is een uitbrei ding van Azure functions.Durable Functions is an extension of Azure Functions. U kunt Durable Functions gebruiken om de functie-uitvoering in de stateful te organiseren.You can use Durable Functions for stateful orchestration of function execution. Een duurzame functie-app is een oplossing die bestaat uit verschillende Azure-functies.A durable function app is a solution that's made up of different Azure functions. Functies kunnen verschillende rollen afspelen in een duurzame functie-indeling.Functions can play different roles in a durable function orchestration.

Er zijn momenteel vier duurzame functie typen in Azure Functions: Activity, orchestrator, entity en client.There are currently four durable function types in Azure Functions: activity, orchestrator, entity, and client. In de rest van deze sectie vindt u meer informatie over de typen functies die deel uitmaken van een indeling.The rest of this section goes into more details about the types of functions involved in an orchestration.

Orchestrator-functiesOrchestrator functions

Orchestrator-functies beschrijven hoe acties worden uitgevoerd en de volg orde waarin acties worden uitgevoerd.Orchestrator functions describe how actions are executed and the order in which actions are executed. In de Orchestrator-functies wordt de indeling in codeC# (of Java script) beschreven, zoals weer gegeven in Durable functions toepassings patronen.Orchestrator functions describe the orchestration in code (C# or JavaScript) as shown in Durable Functions application patterns. Een indeling kan een groot aantal verschillende typen acties hebben, waaronder activiteiten functies, Sub-indelingen, wacht op externe gebeurtenissen, httpen timers.An orchestration can have many different types of actions, including activity functions, sub-orchestrations, waiting for external events, HTTP, and timers. Orchestrator-functies kunnen ook communiceren met entiteits functies.Orchestrator functions can also interact with entity functions.

Notitie

Orchestrator-functies worden geschreven met behulp van normale code, maar er zijn strikte vereisten voor het schrijven van de code.Orchestrator functions are written using ordinary code, but there are strict requirements on how to write the code. Met name de functie code van Orchestrator moet deterministischzijn.Specifically, orchestrator function code must be deterministic. Het volgen van deze determinism-vereisten kan ertoe leiden dat Orchestrator-functies niet goed worden uitgevoerd.Failing to follow these determinism requirements can cause orchestrator functions to fail to run correctly. Gedetailleerde informatie over deze vereisten en hoe u deze kunt omzeilen, vindt u in het onderwerp code beperkingen .Detailed information on these requirements and how to work around them can be found in the code constraints topic.

Zie het artikel over duurzame Orchestrations voor meer gedetailleerde informatie over Orchestrator-functies en de bijbehorende functies.For more detailed information on orchestrator functions and their features, see the Durable orchestrations article.

Activiteit functiesActivity functions

Activiteiten functies zijn de basis eenheid van het werk in een duurzame functie indeling.Activity functions are the basic unit of work in a durable function orchestration. Activiteit functies zijn de functies en taken die in het proces zijn georganiseerd.Activity functions are the functions and tasks that are orchestrated in the process. U kunt bijvoorbeeld een Orchestrator-functie maken om een bestelling te verwerken.For example, you might create an orchestrator function to process an order. De taken omvatten het controleren van de inventarisatie, het opladen van de klant en het maken van een verzen ding.The tasks involve checking the inventory, charging the customer, and creating a shipment. Elke taak zou een afzonderlijke activiteit functie zijn.Each task would be a separate activity function. Deze activiteiten functies kunnen opeenvolgend, parallel of een combi natie van beide worden uitgevoerd.These activity functions may be executed serially, in parallel, or some combination of both.

In tegens telling tot Orchestrator-functies zijn de activiteit functies niet beperkt in het type werk dat u kunt uitvoeren.Unlike orchestrator functions, activity functions aren't restricted in the type of work you can do in them. Activiteit functies worden vaak gebruikt om netwerk aanroepen te maken of CPU-intensieve bewerkingen uit te voeren.Activity functions are frequently used to make network calls or run CPU intensive operations. Een functie van een activiteit kan ook gegevens retour neren naar de Orchestrator-functie.An activity function can also return data back to the orchestrator function. Het duurzame taak raamwerk garandeert dat elke aangeroepen activiteit functie ten minste eenmaal wordt uitgevoerd tijdens de uitvoering van een Orchestration.The Durable Task Framework guarantees that each called activity function will be executed at least once during an orchestration's execution.

Notitie

Omdat activiteit functies slechts ten minste eenmaal moeten worden uitgevoerd, raden we u aan om uw activiteit functie Logic idempotent waar mogelijk te maken.Because activity functions only guarantee at least once execution, we recommend you make your activity function logic idempotent whenever possible.

Gebruik een activiteit trigger om een activiteit functie te definiëren.Use an activity trigger to define an activity function. .NET-functies krijgen een DurableActivityContext als para meter..NET functions receive a DurableActivityContext as a parameter. U kunt de trigger ook binden aan een ander JSON-serializeable-object om invoer door te geven aan de functie.You can also bind the trigger to any other JSON-serializeable object to pass in inputs to the function. In Java script kunt u toegang krijgen tot een invoer via de eigenschap <activity trigger binding name> van het context.bindings-object.In JavaScript, you can access an input via the <activity trigger binding name> property on the context.bindings object. Voor activiteit functies kan slechts één waarde worden door gegeven.Activity functions can only have a single value passed to them. Als u meerdere waarden wilt door geven, moet u Tuples, matrices of complexe typen gebruiken.To pass multiple values, you must use tuples, arrays, or complex types.

Notitie

U kunt een activiteit functie alleen activeren vanuit een Orchestrator-functie.You can trigger an activity function only from an orchestrator function.

Entiteit functiesEntity functions

Met entiteits functies worden bewerkingen gedefinieerd voor het lezen en bijwerken van kleine stukjes status.Entity functions define operations for reading and updating small pieces of state. Vaak verwijzen we naar deze stateful-entiteiten als duurzame entiteiten.We often refer to these stateful entities as durable entities. Net als Orchestrator functions zijn entiteits functies functies met een speciaal trigger type, entiteits trigger.Like orchestrator functions, entity functions are functions with a special trigger type, entity trigger. Ze kunnen ook worden aangeroepen vanuit client functies of vanuit Orchestrator-functies.They can also be invoked from client functions or from orchestrator functions. In tegens telling tot Orchestrator-functies hebben entiteits functies geen specifieke code beperkingen.Unlike orchestrator functions, entity functions do not have any specific code constraints. Met entiteits functies wordt ook de status expliciet beheerd in plaats van impliciet de status via de controle stroom te vertegenwoordigen.Entity functions also manage state explicitly rather than implicitly representing state via control flow.

Notitie

Entiteits functies en gerelateerde functionaliteit zijn alleen beschikbaar in Durable Functions 2,0 en hoger.Entity functions and related functionality is only available in Durable Functions 2.0 and above. Entiteits functies zijn momenteel beschikbaar als open bare preview.Entity functions are currently in public preview.

Zie het artikel duurzame entities voor meer informatie over entiteits functies.For more information about entity functions, see the Durable Entities article.

Client functiesClient functions

Orchestrator-functies worden geactiveerd door een binding van een Orchestration-trigger en entiteits functies worden geactiveerd door een binding van een entiteits trigger.Orchestrator functions are triggered by an orchestration trigger binding and entity functions are triggered by an entity trigger binding. Beide triggers werken door te reageren op berichten die in een taak hubin de wachtrij worden geplaatst.Both of these triggers work by reacting to messages that are enqueued into a task hub. De belangrijkste manier om deze berichten te leveren is door gebruik te maken van een Orchestrator-client binding of een entiteit-client binding vanuit een client functie.The primary way to deliver these messages is by using an orchestrator client binding or an entity client binding from within a client function. Een niet-Orchestrator-functie kan een client functiezijn.Any non-orchestrator function can be a client function. U kunt bijvoorbeeld de Orchestrator activeren vanuit een door HTTP geactiveerde functie, een door Azure Event hub geactiveerde functie, enzovoort. Wat een functie vormt een client functie is het gebruik van de duurzame client-uitvoer binding.For example, You can trigger the orchestrator from an HTTP-triggered function, an Azure Event Hub triggered function, etc. What makes a function a client function is its use of the durable client output binding.

Notitie

In tegens telling tot andere functie typen kunnen Orchestrator-en entiteits functies niet rechtstreeks worden geactiveerd met behulp van de knoppen in azure Portal.Unlike other function types, orchestrator and entity functions cannot be triggered directly using the buttons in the Azure Portal. Als u een functie van Orchestrator of entiteit wilt testen in azure Portal, moet u in plaats daarvan een client functie uitvoeren waarmee een Orchestrator-of entiteit functie wordt gestart als onderdeel van de implementatie.If you want to test an orchestrator or entity function in the Azure Portal, you must instead run a client function that starts an orchestrator or entity function as part of its implementation. Voor de eenvoudigste test ervaring wordt een hand matige activerings functie aanbevolen.For the simplest testing experience, a manual trigger function is recommended.

Naast het activeren van Orchestrator-of entiteits functies, kan de duurzame client binding worden gebruikt om te communiceren met het uitvoeren van Orchestrations en entiteiten.In addition to triggering orchestrator or entity functions, the durable client binding can be used to interact with running orchestrations and entities. Zo kunnen indelingen worden opgevraagd, beëindigd en kunnen er gebeurtenissen op worden gegenereerd.For example, orchestrations can be queried, terminated, and can have events raised to them. Zie het artikel instance Management voor meer informatie over het beheren van Orchestrations en entiteiten.For more information on managing orchestrations and entities, see the Instance management article.

Volgende stappenNext steps

Om aan de slag te gaan, maakt u uw C# eerste duurzame functie in of Java script.To get started, create your first durable function in C# or JavaScript.