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 dapr-bindningen för hemliga indata kan du läsa hemligheter som indata under funktionskörningen.
Information om installation och konfiguration av Dapr-tillägget finns i översikten över Dapr-tillägget.
Exempel
En C#-funktion kan skapas med något av följande C#-lägen:
| Körningsmodell | beskrivning | 
|---|---|
| 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. | 
| Processmodell | 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("RetrieveSecret")]
public static void Run(
    [DaprServiceInvocationTrigger] object args,
    [DaprSecret("kubernetes", "my-secret", Metadata = "metadata.namespace=default")] IDictionary<string, string> secret,
    ILogger log)
{
    log.LogInformation("C# function processed a RetrieveSecret request from the Dapr Runtime.");
}
I följande exempel skapas en "RetrieveSecret" funktion med bindningen DaprSecretInput med DaprServiceInvocationTrigger:
@FunctionName("RetrieveSecret")
public void run(
    @DaprServiceInvocationTrigger(
        methodName = "RetrieveSecret") Object args,
    @DaprSecretInput(
        secretStoreName = "kubernetes", 
        key = "my-secret", 
        metadata = "metadata.namespace=default") 
        Map<String, String> secret,
    final ExecutionContext context)
I följande exempel parkopplas dapr-hemlighetens indatabindning med en Dapr-utlösare som registreras av app objektet:
const { app, trigger } = require('@azure/functions');
app.generic('RetrieveSecret', {
    trigger: trigger.generic({
        type: 'daprServiceInvocationTrigger',
        name: "payload"
    }),
    extraInputs: [daprSecretInput],
    handler: async (request, context) => {
        context.log("Node function processed a RetrieveSecret request from the Dapr Runtime.");
        const daprSecretInputValue = context.extraInputs.get(daprSecretInput);
        // print the fetched secret value
        for (var key in daprSecretInputValue) {
            context.log(`Stored secret: Key=${key}, Value=${daprSecretInputValue[key]}`);
        }
    }
});
I följande exempel visas Dapr-utlösare i en function.json-fil och PowerShell-kod som använder dessa bindningar.
Här är filen function.json för daprServiceInvocationTrigger:
{
  "bindings": 
    {
      "type": "daprSecret",
      "direction": "in",
      "name": "secret",
      "key": "my-secret",
      "secretStoreName": "localsecretstore",
      "metadata": "metadata.namespace=default"
    }
}
Mer information om function.json filegenskaper finns i avsnittet Konfiguration .
I kod:
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, $secret
)
# PowerShell function processed a CreateNewOrder request from the Dapr Runtime.
Write-Host "PowerShell function processed a RetrieveSecretLocal request from the Dapr Runtime."
# Convert the object to a JSON-formatted string with ConvertTo-Json
$jsonString = $secret | ConvertTo-Json
Write-Host "$jsonString"
I följande exempel visas en Dapr Secret-indatabindning som använder programmeringsmodellen v2 Python. Så här använder du bindningen daprSecret tillsammans med daprServiceInvocationTrigger i python-funktionsappkoden:
import logging
import json
import azure.functions as func
app = func.FunctionApp()
@app.function_name(name="RetrieveSecret")
@app.dapr_service_invocation_trigger(arg_name="payload", method_name="RetrieveSecret")
@app.dapr_secret_input(arg_name="secret", secret_store_name="localsecretstore", key="my-secret", metadata="metadata.namespace=default")
def main(payload, secret: str) :
    # Function should be invoked with this command: dapr invoke --app-id functionapp --method RetrieveSecret  --data '{}'
    logging.info('Python function processed a RetrieveSecret request from the Dapr Runtime.')
    secret_dict = json.loads(secret)
    for key in secret_dict:
        logging.info("Stored secret: Key = " + key +
                     ', Value = ' + secret_dict[key])
Attribut
I den processbaserade modellen använder du DaprSecret för att definiera en Dapr-hemlig indatabindning, som stöder följande parametrar:
| Parameter | beskrivning | 
|---|---|
| SecretStoreName | Namnet på den hemliga butiken för att hämta hemligheten. | 
| Tangent | Nyckeln som identifierar namnet på hemligheten som ska hämtas. | 
| Metadata | Valfritt. En matris med metadataegenskaper i formuläret "key1=value1&key2=value2". | 
Kommentarer
Med anteckningen DaprSecretInput kan du få din funktion åtkomst till en hemlighet.
| Komponent | beskrivning | 
|---|---|
| secretStoreName | Namnet på dapr-hemlighetsarkivet. | 
| nyckel | Värdet för den hemliga nyckeln. | 
| metadata | Valfritt. Metadatavärdena. | 
Konfiguration
I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i koden.
| Fastighet | beskrivning | 
|---|---|
| nyckel | Värdet för den hemliga nyckeln. | 
| secretStoreName | Namnet på det hemliga arkivet enligt definitionen i komponentfilen local-secret-store.yaml . | 
| metadata | Metadatanamnområdet. | 
I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i function.json-filen.
| function.json egenskap | beskrivning | 
|---|---|
| nyckel | Värdet för den hemliga nyckeln. | 
| secretStoreName | Namnet på det hemliga arkivet enligt definitionen i komponentfilen local-secret-store.yaml . | 
| metadata | Metadatanamnområdet. | 
Se avsnittet Exempel för fullständiga exempel.
Förbrukning
Om du vill använda dapr-bindningen för hemliga indata börjar du med att konfigurera en Dapr-komponent för hemligt arkiv. 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 daprSecret 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