ربط الإدخال السري ل Dapr لوظائف Azure
يسمح لك ربط إدخال البيانات السرية Dapr بقراءة بيانات البيانات السرية كإدخال أثناء تنفيذ الدالة.
للحصول على معلومات حول تفاصيل الإعداد والتكوين لملحق Dapr، راجع نظرة عامة على ملحق Dapr.
مثال
يمكن إنشاء وظيفة #C باستخدام أحد أوضاع C# التالية:
نموذج التنفيذ | الوصف |
---|---|
نموذج عامل معزول | تعمل تعليمة دالتك البرمجية في عملية عامل .NET منفصلة. استخدم مع الإصدارات المدعومة من .NET و.NET Framework. لمعرفة المزيد، راجع تطوير وظائف معالجة العامل المعزولة .NET. |
نموذج قيد المعالجة | تعمل تعليمة دالتك البرمجية في نفس العملية مثل عملية مضيف الدالات. يدعم إصدارات الدعم طويل الأجل (LTS) فقط من .NET. لمعرفة المزيد، راجع تطوير وظائف مكتبة فئة .NET. |
[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.");
}
ينشئ المثال التالي دالة "RetreveSecret"
باستخدام DaprSecretInput
الربط مع 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)
في المثال التالي، يتم إقران ربط الإدخال السري ل Dapr بمشغل استدعاء Dapr، والذي تم تسجيله بواسطة 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]}`);
}
}
});
تظهر الأمثلة التالية مشغلات Dapr في ملف function.json ورمز PowerShell الذي يستخدم هذه الروابط.
فيما يلي ملف function.json ل daprServiceInvocationTrigger
:
{
"bindings":
{
"type": "daprSecret",
"direction": "in",
"name": "secret",
"key": "my-secret",
"secretStoreName": "localsecretstore",
"metadata": "metadata.namespace=default"
}
}
لمزيد من المعلومات حول خصائص الملف function.json ، راجع قسم التكوين .
في التعليمات البرمجية:
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"
يظهر المثال التالي ربط إدخال Dapr Secret، والذي يستخدم نموذج برمجة v2 Python. لاستخدام daprSecret
الربط جنبا إلى جنب مع في التعليمات البرمجية daprServiceInvocationTrigger
لتطبيق وظيفة 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])
السمات
في النموذج قيد المعالجة، استخدم DaprSecret
لتعريف ربط إدخال البيانات السرية Dapr، والذي يدعم هذه المعلمات:
المعلمة | الوصف |
---|---|
اسم مخزن البيانات السرية | اسم المخزن السري للحصول على السر. |
المفتاح | المفتاح الذي يحدد اسم السر الذي يجب الحصول عليه. |
بيانات التعريف | اختياري. صفيف من خصائص بيانات التعريف في النموذج "key1=value1&key2=value2" . |
تعليقات توضيحية
DaprSecretInput
يسمح لك التعليق التوضيحي بالوصول إلى البيانات السرية لدالتك.
العنصر | الوصف |
---|---|
اسم مخزن البيانات السرية | اسم مخزن Dapr السري. |
مفتاح | قيمة المفتاح السري. |
بيانات التعريف | اختياري. قيم بيانات التعريف. |
التكوين
يوضح الجدول التالي خصائص تكوين الربط التي قمت بتعيينها في التعليمات البرمجية.
الخاصية | الوصف |
---|---|
مفتاح | قيمة المفتاح السري. |
اسم مخزن البيانات السرية | اسم المخزن السري كما هو محدد في ملف المكون local-secret-store.yaml . |
بيانات التعريف | مساحة اسم بيانات التعريف. |
يشرح الجدول الآتي خصائص تكوين ربط البيانات التي عليك تعيينها في ملف function.json.
خاصية function.json | الوصف |
---|---|
مفتاح | قيمة المفتاح السري. |
اسم مخزن البيانات السرية | اسم المخزن السري كما هو محدد في ملف المكون local-secret-store.yaml . |
بيانات التعريف | مساحة اسم بيانات التعريف. |
راجع قسم Example للحصول على أمثلة كاملة.
الاستخدام
لاستخدام ربط إدخال البيانات السرية ل Dapr، ابدأ بإعداد مكون مخزن البيانات السرية ل Dapr. يمكنك معرفة المزيد حول المكون الذي يجب استخدامه وكيفية إعداده في وثائق Dapr الرسمية.
لاستخدام daprSecret
في Python v2، قم بإعداد مشروعك باستخدام التبعيات الصحيحة.
إنشاء بيئة ظاهرية وتنشيطها.
في الملف،
requirements.text
أضف السطر التالي:azure-functions==1.18.0b3
في المحطة الطرفية، قم بتثبيت مكتبة Python.
pip install -r .\requirements.txt
قم بتعديل الملف الخاص بك
local.setting.json
بالتكوين التالي:"PYTHON_ISOLATE_WORKER_DEPENDENCIES":1
الخطوات التالية
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ