Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La liaison d’entrée de secret Dapr vous permet de lire les données de secrets sous forme d’entrée durant l’exécution d’une fonction.
Pour plus d’informations sur l’installation et la configuration de l’extension Dapr, consultez la Vue d’ensemble de l’extension Dapr.
Example
Une fonction C# peut être créée à l’aide de l’un des modes C# suivants :
| Execution model | Description |
|---|---|
| Modèle de worker isolé | Le code de votre fonction s’exécute dans un processus Worker .NET distinct. Utilisez avec les versions prises en charge de .NET et .NET Framework. Pour plus d’informations, consultez Guide d’exécution de C# Azure Functions dans le modèle worker isolé. |
| In-process model | Le code de votre fonction s’exécute dans le même processus que le processus hôte Functions. Prend uniquement en charge les versions LTS (Long Term Support) de .NET. Pour en découvrir plus, consultez Développer des fonctions de bibliothèque de classes C# à l’aide d’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.");
}
L’exemple suivant crée une fonction "RetrieveSecret" à l’aide de la liaison DaprSecretInput avec 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)
Dans l’exemple suivant, la liaison d’entrée de secret Dapr est associée à un déclencheur d’appel Dapr, qui est inscrit par l’objet app :
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]}`);
}
}
});
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 daprServiceInvocationTrigger:
{
"bindings":
{
"type": "daprSecret",
"direction": "in",
"name": "secret",
"key": "my-secret",
"secretStoreName": "localsecretstore",
"metadata": "metadata.namespace=default"
}
}
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, $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"
L’exemple suivant montre une liaison d’entrée de secret Dapr, qui utilise le modèle de programmation Python v2. Pour utiliser la liaison daprSecret avec daprServiceInvocationTrigger dans le code de votre application de fonction Python :
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])
Attributes
In the in-process model, use the DaprSecret to define a Dapr secret input binding, which supports these parameters:
| Parameter | Description |
|---|---|
| SecretStoreName | Nom du magasin des secrets permettant d’obtenir le secret. |
| Key | Clé identifiant le nom du secret à obtenir. |
| Metadata | Optional. Tableau de propriétés de métadonnées au format "key1=value1&key2=value2". |
Annotations
L’annotation DaprSecretInput permet à votre fonction d’accéder à un secret.
| Element | Description |
|---|---|
| secretStoreName | Nom du magasin des secrets Dapr. |
| key | Valeur de clé secrète. |
| metadata | Optional. Valeurs de métadonnées. |
Configuration
Le tableau suivant décrit les propriétés de configuration de liaison que vous définissez dans le code.
| Property | Description |
|---|---|
| key | Valeur de clé secrète. |
| secretStoreName | Name of the secret store as defined in the local-secret-store.yaml component file. |
| metadata | Espace de noms de métadonnées. |
Le tableau suivant décrit les propriétés de configuration de liaison que vous définissez dans le fichier function.json.
| function.json property | Description |
|---|---|
| key | Valeur de clé secrète. |
| secretStoreName | Name of the secret store as defined in the local-secret-store.yaml component file. |
| metadata | Espace de noms de métadonnées. |
See the Example section for complete examples.
Usage
Pour utiliser la liaison d’entrée de secret Dapr, commencez par configurer un composant de magasin des secrets Dapr. Pour en savoir plus sur le composant à utiliser et sa configuration, consultez la documentation officielle de Dapr.
To use the daprSecret in Python v2, set up your project with the correct dependencies.
Dans votre fichier
requirements.text, ajoutez la ligne suivante :azure-functions==1.18.0b3Dans le terminal, installez la bibliothèque Python.
pip install -r .\requirements.txtModifiez votre fichier
local.setting.jsonavec la configuration suivante :"PYTHON_ISOLATE_WORKER_DEPENDENCIES":1