Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med Indatabindningen för Dapr-tillstånd kan du läsa Dapr-tillstånd under en funktionskörning.
Information om installation och konfiguration av Dapr-tillägget finns i översikten över Dapr-tillägget.
Example
En C#-funktion kan skapas med något av följande C#-lägen:
| Execution model | Description | 
|---|---|
| Isolerad arbetsmodell | Funktionskoden körs i en separat .NET-arbetsprocess. Använd med versioner av .NET och .NET Framework som stöds. Mer information finns i Guide för att köra C# Azure Functions i den isolerade arbetsmodellen. | 
| In-process model | Funktionskoden körs i samma process som Functions-värdprocessen. Stöder endast LTS-versioner (Long Term Support) av .NET. Mer information finns i Utveckla C#-klassbiblioteksfunktioner med Hjälp av Azure Functions. | 
[FunctionName("StateInputBinding")]
public static IActionResult Run(
    [HttpTrigger(AuthorizationLevel.Function, "get", Route = "state/{key}")] HttpRequest req,
    [DaprState("statestore", Key = "{key}")] string state,
    ILogger log)
{
    log.LogInformation("C# HTTP trigger function processed a request.");
    return new OkObjectResult(state);
}
I följande exempel skapas en "RetrieveOrder" funktion med bindningen DaprStateInput med DaprServiceInvocationTrigger:
@FunctionName("RetrieveOrder")
public String run(
        @DaprServiceInvocationTrigger(
            methodName = "RetrieveOrder") 
        String payload,
        @DaprStateInput(
            stateStore = "%StateStoreName%",
            key = "order")
        String product,
        final ExecutionContext context)
I följande exempel läggs Dapr-indatabindningen till som en extraInput och paras ihop med en HTTP-utlösare, som registreras av app objektet:
const { app, trigger } = require('@azure/functions');
app.generic('StateInputBinding', {
    trigger: trigger.generic({
        type: 'httpTrigger',
        authLevel: 'anonymous',
        methods: ['GET'],
        route: "state/{key}",
        name: "req"
    }),
    extraInputs: [daprStateInput],
    handler: async (request, context) => {
        context.log("Node HTTP trigger function processed a request.");
        const daprStateInputValue = context.extraInputs.get(daprStateInput);
        // print the fetched state value
        context.log(daprStateInputValue);
        return daprStateInputValue;
    }
});
The following examples show Dapr triggers in a function.json file and PowerShell code that uses those bindings.
Here's the function.json file for daprState:
{
  "bindings": 
    {
      "type": "daprState",
      "direction": "in",
      "key": "order",
      "stateStore": "%StateStoreName%",
      "name": "order"
    }
}
For more information about function.json file properties, see the Configuration section.
In code:
using namespace System
using namespace Microsoft.Azure.WebJobs
using namespace Microsoft.Extensions.Logging
using namespace Microsoft.Azure.WebJobs.Extensions.Dapr
using namespace Newtonsoft.Json.Linq
param (
    $payload, $order
)
# C# function processed a CreateNewOrder request from the Dapr Runtime.
Write-Host "PowerShell function processed a RetrieveOrder request from the Dapr Runtime."
# Convert the object to a JSON-formatted string with ConvertTo-Json
$jsonString = $order | ConvertTo-Json
Write-Host "$jsonString"
I följande exempel visas en Dapr State-indatabindning som använder programmeringsmodellen v2 Python. Så här använder du bindningen daprState tillsammans med daprServiceInvocationTrigger i python-funktionsappkoden:
import logging
import json
import azure.functions as func
app = func.FunctionApp()
@app.function_name(name="RetrieveOrder")
@app.dapr_service_invocation_trigger(arg_name="payload", method_name="RetrieveOrder")
@app.dapr_state_input(arg_name="data", state_store="statestore", key="order")
def main(payload, data: str) :
    # Function should be invoked with this command: dapr invoke --app-id functionapp --method RetrieveOrder  --data '{}'
    logging.info('Python function processed a RetrieveOrder request from the Dapr Runtime.')
    logging.info(data)
Attributes
In the in-process model, use the DaprState to read Dapr state into your function, which supports these parameters:
| Parameter | Description | 
|---|---|
| StateStore | Namnet på tillståndsarkivet som ska hämta tillstånd. | 
| Key | Namnet på nyckeln som ska hämtas från det angivna tillståndsarkivet. | 
Annotations
Med anteckningen DaprStateInput kan du läsa Dapr-tillstånd i din funktion.
| Element | Description | 
|---|---|
| stateStore | Namnet på Dapr-tillståndsarkivet. | 
| key | Nyckelvärdet för tillståndsarkivet. | 
Configuration
I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i koden.
| Property | Description | 
|---|---|
| stateStore | Namnet på tillståndsarkivet. | 
| key | Namnet på nyckeln som ska hämtas från det angivna tillståndsarkivet. | 
I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i function.json-filen.
| function.json property | Description | 
|---|---|
| key | Namnet på nyckeln som ska hämtas från det angivna tillståndsarkivet. | 
| stateStore | Namnet på tillståndsarkivet. | 
I följande tabell beskrivs bindningskonfigurationsegenskaperna för @dapp.dapr_state_input som du anger i Python-koden.
| Property | Description | 
|---|---|
| state_store | Namnet på tillståndsarkivet. | 
| key | Värdet för den hemliga nyckeln. Namnet på nyckeln som ska hämtas från det angivna tillståndsarkivet. | 
See the Example section for complete examples.
Usage
Om du vill använda Indatabindningen för Dapr-tillstånd börjar du med att konfigurera en Dapr-tillståndslagerkomponent. Du kan lära dig mer om vilken komponent som ska användas och hur du konfigurerar den i den officiella Dapr-dokumentationen.
Om du vill använda daprState i Python v2 konfigurerar du projektet med rätt beroenden.
- requirements.textLägg till följande rad i filen:- azure-functions==1.18.0b3
- Installera Python-biblioteket i terminalen. - pip install -r .\requirements.txt
- local.setting.jsonÄndra filen med följande konfiguration:- "PYTHON_ISOLATE_WORKER_DEPENDENCIES":1