مشاركة عبر


أنشئ معلمات عبر البيئة لإدخالات سير العمل في Azure Logic Apps

ينطبق على: Azure Logic Apps (الاستهلاك + قياسي)

عندما تحتاج إلى تجريد القيم التي قد تتغير في مهام سير العمل عبر بيئات التطوير والاختبار والإنتاج، يمكنك تحديد معلمات سير العمل. عند استخدام هذه المعلمات بدلا من المتغيرات الخاصة بالبيئة، يمكنك التركيز بشكل أكبر على تصميم منطق عمل سير العمل ثم إدراج المتغيرات الخاصة بالبيئة لاحقا.

توضح هذه المقالة كيفية إنشاء المعلمات واستخدامها وتحريرها لمهام سير عمل تطبيق منطق الاستهلاك متعدد المستأجرين ومهام سير عمل تطبيق المنطق القياسي للمستأجر الفردي. يمكنك أيضا تعلم كيفية إدارة متغيرات البيئة.

لمزيد من المعلومات حول Azure Logic Apps متعدد المستأجرين والمستأجر الفردي، راجع المستأجر الفردي مقابل المستأجر المتعدد في Azure Logic Apps.

المتطلبات الأساسية

معلمات الاستهلاك مقابل مهام سير عمل تطبيق المنطق القياسي

لكل من مهام سير عمل تطبيق الاستهلاك والمنطق القياسي، يمكنك تحديد المعلمات باستخدام مصمم سير العمل. بعد تحديد معلمة، يمكنك الرجوع إلى هذه المعلمة من أي سير عمل أو اتصال في نفس مورد تطبيق المنطق.

في مهام سير عمل تطبيق منطق الاستهلاك متعدد المستأجرين، يمكنك إنشاء المعلمات واستخدامها في المصمم. ثم تقوم بتحديد متغيرات البيئة وتعيينها في قالب Azure Resource Manager (قالب ARM) وملفات معلمات القالب. في هذا السيناريو، يجب عليك تحديد المعلمات وتعيينها عند التوزيع. يعني هذا المطلب أنه حتى إذا كان عليك تغيير متغير واحد فقط، فيجب عليك إعادة نشر قالب ARM الخاص بتطبيق المنطق الخاص بك.

في مهام سير عمل تطبيق المنطق القياسي أحادي المستأجر، يمكنك العمل مع متغيرات البيئة في وقت التشغيل والتوزيع من خلال استخدامالمعلماتوإعدادات التطبيق. تحتوي إعدادات التطبيق على خيارات التكوينالعمومية لكافة مهام سير العملفي نفس مورد تطبيق المنطق. لمزيد من المعلومات، راجع تحرير إعدادات المضيف والتطبيق للتطبيقات المنطقية المستندة إلى مستأجر واحد.

هام

عند استخدام معلومات حساسة، مثل سلاسل الاتصال التي تتضمن أسماء المستخدمين وكلمات المرور، تأكد من استخدام تدفق المصادقة الأكثر أمانا المتاح. على سبيل المثال، في مهام سير عمل تطبيق المنطق القياسي، أنواع البيانات الآمنة، مثل securestring و secureobject، غير مدعومة. توصي Microsoft بمصادقة الوصول إلى موارد Azure بهوية مدارة عندما يكون ذلك ممكنا، وتعيين دور له أقل امتياز ضروري.

إذا كانت هذه الإمكانية غير متوفرة، فتأكد من تأمين سلاسل الاتصال من خلال وسائل أخرى، مثل Azure Key Vault، والتي يمكنك استخدامها مع إعدادات التطبيق. يمكنك بعد ذلكالعودة مباشرة إلى سلاسل آمنة، مثل سلاسل الاتصال والمفاتيح. على غرار قوالب ARM، حيث يمكنك تحديد متغيرات البيئة في وقت التوزيع، يمكنك تحديد إعدادات التطبيق ضمن تعريف سير عمل التطبيق المنطقي. يمكنك بعد ذلك التقاط قيم البنية الأساسية التي تم إنشاؤها ديناميكيا، مثل نقاط نهاية الاتصال وسلاسل التخزين. لمزيد من المعلومات، راجع أنواع التطبيقات النظام الأساسي للهويات في Microsoft.

إعدادات التطبيق لها حدود للحجم. لا يمكنك أيضا الرجوع إليها من مناطق معينة في Azure Logic Apps. تقدم المعلمات نطاقًا أوسع من حالات الاستخدام مقارنة بإعدادات التطبيق، مثل دعم أحجام القيم الكبيرة والكائنات المعقدة.

على سبيل المثال، إذا كنت تستخدم Visual Studio Code كأداة تطوير لتشغيل مهام سير العمل محليا، فيمكنك تحديد المعلمات باستخدام ملف parameters.json . يمكنك بعد ذلك الرجوع إلى أي معلمة في ملف المعلمات هذا من أي سير عمل في ملف workflow.json الخاص بمشروعك أو من أي عنصر اتصال في ملف links.json الخاص بالمشروع. تصف القائمة التالية حالات الاستخدام الشائعة:

  • احصل على ملف معلمات الاختبار الذي يتضمن جميع القيم التي تستخدمها أثناء الاختبار. عند النشر، استبدل ملف معلمات الاختبار بملف معلمات الإنتاج.

  • قم بتحديد المعلمات لأجزاء مختلفة من ملف connections.json الخاص بك. يمكنك بعد ذلك التحقق من ملف connections.json الخاص بك في التحكم في المصدر وإدارة أي اتصالات من خلال ملف parameters.json الخاص بك.

  • وضع المعلمات للعناصر المعقدة authentication، مثل عنصر JSON. على سبيل المثال، يمكنك استبدال authenticationقيمة العنصر بسلسلة تحتوي على تعبير معلمات واحد، مثل@parameters('api-auth').

  • راجع إعدادات التطبيق وعدّلها في ملف local.settings.json الخاص بمشروعك. ثم ارجع إلى إعدادات التطبيق هذه في المعلمات الخاصة بك.

إشعار

ضع في اعتبارك استخدام المعلمات كطريقة افتراضية لتحديد معلمات القيم بدلا من إعدادات التطبيق. بهذه الطريقة، عندما تحتاج إلى تخزين مفاتيح أو سلاسل آمنة، يمكنك اتباع التوصية للإشارة إلى إعدادات التطبيق من معلماتك. يمكنك استخدام كلا الخيارين في الحل الخاص بك باستخدام المعلمات للرجوع إلى إعدادات التطبيق.

تحديد واستخدام وتحرير المعلمات

يصف هذا الإجراء كيفية العمل مع المعلمات إما لمهام سير عمل تطبيق الاستهلاك أو المنطق القياسي في مدخل Microsoft Azure.

  1. في مدخل Microsoft Azure، افتح مورد التطبيق المنطقي.

    • بالنسبة لتطبيقات المنطق القياسية، في قائمة الشريط الجانبي للمورد، ضمن مهام سير العمل، حدد مهام سير العمل.

      في صفحة مهام سير العمل ، حدد سير العمل الفارغ لفتح المصمم.

    • بالنسبة لتطبيقات منطق الاستهلاك، في قائمة الشريط الجانبي للمورد، ضمن أدوات التطوير، حدد المصمم لفتح سير العمل.

  2. في شريط أدوات المصمم، قم بتحديد المعلمات.

    تظهر لقطة الشاشة مدخل Microsoft Azure مع فتح مصمم سير العمل وتمييز المعلمات على شريط أدوات المصمم.

  3. في جزء Parameters، حدد Create parameter.

  4. قدم المعلومات التالية حول المعلمة المراد إنشاؤها:

    الخاصية المطلوب ‏‏الوصف‬
    الاسم ‏‏نعم‬ اسم المعلمة المراد إنشاؤها.
    النوع ‏‏نعم‬ نوع البيانات للمعلمة، مثلArrayوBoolوFloatوIntوObjectوString.

    ملاحظة: في مهام سير عمل لتطبيق المنطق القياسي، أنواع البيانات الآمنة، مثل securestringوsecureobject، غير مدعومة.
    القيمة (قياسية) ‏‏نعم‬ قيمة المعلمة.

    في مهام سير عمل تطبيق المنطق القياسي، حدد قيمة المعلمة. لا يوجد منطق سير العمل ومعلومات الاتصال وقيم المعلمات في موقع واحد. يجب أن يكون المصمم قادرا على حل قيم المعلمات قبل تحميل سير العمل.
    القيمة الافتراضية (الاستهلاك) ‏‏نعم‬ القيمة الافتراضية الخاصة بالمعلمة. يجب عليك تحديد قيمة المعلمة الافتراضية. لا يوجد منطق سير العمل ومعلومات الاتصال وقيم المعلمات في موقع واحد. يجب أن يكون المصمم قادرا على حل قيم المعلمات قبل تحميل سير العمل.

    مهم: بالنسبة لأنواع بياناتالعنصر الآمنوالسلسلة الآمنة، تجنب تعيين قيمة افتراضية لأن القيمة مخزنة كنص عادي.
    القيمة الفعلية (الاستهلاك) لا القيمة الفعلية المتعلقة بالمعلمة.

    يوضح المثال التالي تعريفًا لمعلمة السلسلة:

    تظهر لقطة الشاشة مدخل Microsoft Azure مع مصمم سير العمل وجزء المعلمات مع مثال على تعريف المعلمة.

  5. عند الانتهاء، أغلق جزء المعلمات . تأكد من حفظ سير العمل الخاص بك بحيث تقوم بحفظ تعريف المعلمة الجديد.

للإشارة إلى المعلمة من مشغل أو إجراء في أي سير عمل لنفس تطبيق المنطق، اتبع الخطوات التالية:

  1. في المصمم، افتح سير العمل الذي تريده، وحدد المشغل أو الإجراء.

  2. في جزء المعلومات، على علامة التبويب المعلمات ، في الخاصية التي تريد استخدام المعلمة فيها، حدد داخل مربع تحرير هذه الخاصية. حدد رمز البرق لفتح قائمة المحتوى الديناميكي.

  3. من هذه القائمة، ضمن المعلمات، حدد المعلمة التي تم إنشاؤها مسبقا.

    تعرض لقطة الشاشة المعلمة التي تم إنشاؤها في قائمة المحتوى الديناميكي.

لعرض المعلمات أو تحريرها في تطبيق المنطق نفسه:

  1. افتح سير عمل في مصمم سير العمل. على تطبيقات منطق الاستهلاك، حددمصمم تطبيق منطق> التطوير. بالنسبة للتطبيقات المنطقية القياسية، حددمهام سير عمل> العمل، ثم حدد سير عمل لفتح المصمم.

  2. في شريط أدوات المصمم، قم بتحديد المعلمات.

    يفتح جزء المعلمات ويعرض جميع المعلمات التي قمت بتعريفها في تطبيق المنطق هذا.

  • مهام سير العمل القياسية فقط: لعرض JSON مجمع أو تحريره، في قائمة الشريط الجانبي للمورد، حدد المعلمات. في جزء المعلمات ، حدد تحرير في JSON.

    يفتح جزء JSONParameters ويعرض كافة المعلمات التي قمت بتعريفها من سير العمل في تطبيق المنطق ذلك.

تعليمة Visual Studio برمجية

يصف هذا الإجراء كيفية العمل مع المعلمات لمهام سير عمل تطبيق المنطق القياسية باستخدام Visual Studio Code.

  1. في ملف JSON على مستوى جذر المشروع المسمى parameters.json، حدد all المعلمات وقيمها. يحتوي هذا الملف على كائن يشمل أزواج قيم المفاتيح. كل مفتاح هو اسم كل معلمة. كل قيمة هي بنية المعلمة. يجب أن تشمل كل بنية إعلان بالربط type وvalue.

    هام

    يجب أن يحدد ملف parameters.json جميع المعلمات وقيمها التي تشير إليها أو تستخدمها في مكان آخر في مشروعك ويتضمن ذلك. يتضمن هذا المطلب تعريفات سير العمل والاتصالات.

    يوضح المثال التالي ملف معلمات أساسي:

    {
        "responseString": { 
            "type": "string", 
            "value": "hello" 
        },
        "functionAuth": { 
            "type": "object", 
            "value": { 
                "type": "QueryString", 
                "name": "Code", 
                "value": "@appsetting('<AzureFunctionsOperation-FunctionAppKey>')" 
            }
        }
     }
    

    إشعار

    في ملف parameters.json ، @appsetting هو نوع التعبير الصالح الوحيد.

  2. للإشارة إلى المعلمات في المشغل أو مدخلات الإجراء، استخدم التعبير @parameters('<parameter-name>').

معلمة ملف الاتصالات

لوضع معلمات لملف links.json، استبدل القيم الحرفية، مثل ConnectionRuntimeUrl، بتعبير parameters() واحد، على سبيل المثال، @parameters('api-runtimeUrl'). في ملف connections.json، أنواع التعبير الصالحة الوحيدة هي @parameters@appsetting.

هام

إذا وضعت معلمات لملف connections.json أثناء التطوير، تصبح تجربة المصمم مقيدة، محليًا وفي مدخل Microsoft Azure. إذا كنت بحاجة إلى استخدام المصمم للتطوير، فاستخدم ملف connections.json غير محدد المعلمات بدلا من ذلك. بعد ذلك، في مسارات تدفق التوزيع الخاصة بك، استبدل الملف ذا المعلمات. وقت التشغيل لا يزال يعمل مع المعلمات. تحسينات المصمم قيد التطوير.

يقوم المثال التالي بتوضيح ملف connections.json معلمات يستخدم كل من إعدادات التطبيق والمعلمات. يستخدم هذا الملف النموذجي معلمة لعنصر المصادقة المعقد blob_auth وإعدادات التطبيق للقيم الأخرى.

تريد استخدام المعلمات حيثما أمكن ذلك. نظرا لأنه يتم إنشاء إعدادات التطبيق أثناء النشر ويسهل تعبئتها ديناميكيا في مسار التطوير، يجب عليك استخدام إعدادات التطبيق على المعلمات في هذا السيناريو. في هذه الحالة، يمكنك استخدام معلمة لكائن المصادقة لأنه من غير المحتمل أن تشير إلى المعلمة في سير العمل:

{
   "serviceProviderConnections": {
      "serviceBus": {
         "parameterValues": {
            "connectionString": "@appsetting('serviceBus_connectionString')"
        },
        "serviceProvider": {
           "id": "/serviceProviders/serviceBus"
        },
        "displayName": "servicebus"
     }
   },
   "managedApiConnections": {
      "azureblob": {
         "api": {
            "id": "/subscriptions/@{appsetting('WORKFLOWS_SUBSCRIPTION_ID')}/providers/Microsoft.Web/locations/@{appsetting('WORKFLOWS_LOCATION_NAME')}/managedApis/azureblob"
         },
         "connection": {
            "id": "/subscriptions/@{appsetting('WORKFLOWS_SUBSCRIPTION_ID')}/resourceGroups/@{appsetting('WORKFLOWS_RESOURCE_GROUP_NAME')}/providers/Microsoft.Web/connections/azureblob"
         },
         "connectionRuntimeUrl": "@appsetting('BLOB_CONNECTION_RUNTIMEURL')",
         "authentication": "@parameters('blob_auth')"
      }
   }
}

إشعار

عندما يكون لديك تعبير مضمن مع نص عادي، تأكد من استخدام التنسيق المقحم لهذا التعبير عن طريق إحاطة هذا التعبير بأقواس ({}). يساعد هذا التنسيق في تجنب مشاكل التحليل.

على سبيل المثال، إذا كنت تمتلك "<text>/@<function-name>('<parameter-name>')/<text>"، فاستخدم الإصدار التالي بدلا من ذلك:"<text>/@{<function-name>('<parameter-name>')}/<text>".

لمزيد من المعلومات، راجع اعتبارات استخدام الوظائف.

إدارة ملفات المعلمات

عادة، تحتاج إلى إدارة إصدارات متعددة من ملفات المعلمات. يمكنك استخدام القيم المستهدفة لبيئات النشر المختلفة، مثل التطوير والاختبار والإنتاج. غالباً ما تعمل إدارة ملفات المعلمات هذه مثل إدارة ملفات معلمات قالب ARM. عندما تقوم بالتوزيع في بيئة معينة، فإنك تقوم بترقية ملف المعلمات المطابقة، بشكل عام من خلال تدفق لـ DevOps.

لاستبدال ملفات المعلمات ديناميكيًا باستخدام Azure CLI، قم بتشغيل الأمر الأتي:

az functionapp deploy --resource-group MyResourceGroup --name MyLogicApp --src-path C:\parameters.json --type static --target-path parameters.json

إذا كان لديك مشروع تطبيق منطقي يستند إلى NuGet ، فيجب عليك تحديث ملف المشروع الخاص بك (<logic-app-name.csproj>) لتضمين ملف المعلمات في إخراج الإنشاء ، على سبيل المثال:

<ItemGroup>
  <None Update="parameters.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup>

إشعار

حاليا، لا تتوفر القدرة على استبدال ملفات المعلمات ديناميكيا في مدخل Microsoft Azure أو مصمم سير العمل.

لمزيد من المعلومات حول إعداد تطبيقات المنطق الخاصة بك لعمليات نشر DevOps، راجع المقالات التالية:

إدارة إعدادات التطبيق

في تطبيقات المنطق القياسية، تحتوي إعدادات التطبيق على خيارات تكوين عمومية لجميع مهام سير العمل في نفس تطبيق المنطق. عند تشغيل مهام سير العمل محلياً في Visual Studio Code، يمكنك الوصول إلى إعدادات التطبيق هذه كمتغيرات البيئة المحلية في ملف local.settings.json. يمكنك بعد ذلك الرجوع إلى إعدادات التطبيق هذه في معلماتك.

توضح الأقسام التالية كيفية إضافة إعدادات التطبيق أو تحديثها أو حذفها ل Visual Studio Code ومدخل Microsoft Azure وAzure CLI وقالب ARM (Bicep).

مراجعة إعدادات التطبيق باستخدام مدخل Microsoft Azure

لمراجعة إعدادات التطبيق لمورد تطبيق المنطق في مدخل Microsoft Azure، اتبع الخطوات الآتية:

  1. في مدخل Microsoft Azure، افتح مورد التطبيق المنطقي.

  2. في قائمة الشريط الجانبي للمورد، ضمن الإعدادات، حدد متغيرات البيئة.

  3. في صفحة متغيرات البيئة ، في علامة التبويب إعدادات التطبيق ، راجع إعدادات التطبيق لتطبيق المنطق الخاص بك.

  4. لعرض جميع القيم، حدد Show Values. أو، لعرض قيمة واحدة، حدد تلك القيمة.

لإضافة إعداد جديد، اتبع الخطوات الآتية:

  1. ضمن إعدادات التطبيق، حدد + إضافة.

  2. بالنسبة إلى الاسم، أدخل المفتاح أو اسم الإعداد الجديد.

  3. بالنسبة إلى القيمة، أدخل قيمة الإعداد الجديد.

  4. إذا لزم الأمر، حدد إعداد فتحة النشر.

  5. عندما تكون جاهزا لإنشاء زوج المفاتيح والقيمة الجديد، حدد تطبيق.

مراجعة إعدادات التطبيق باستخدام Azure CLI

لمراجعة إعدادات التطبيق الجارية باستخدام Azure CLI، قم بتشغيل الأمر az logicapp config appsettings list. تأكد من أن الأمر الخاص بك يتضمن المعلمات --name -n و--resource-group -g، على سبيل المثال:

az logicapp config appsettings list --name MyLogicApp --resource-group MyResourceGroup

لإضافة أو تحديث إعداد تطبيق باستخدام واجهة مستوى الاستدعاء (Azure CLI)، قم بتشغيل الأمر az logicapp config appsettings set. تأكد من أن الأمر يشمل المعلمتين --name nو--resource-group -g. على سبيل المثال، يقوم الأمر التالي بإنشاء إعداد بمفتاح يسمى CUSTOM_LOGIC_APP_SETTING بقيمة 12345:

az logicapp config appsettings set --name MyLogicApp --resource-group MyResourceGroup --settings CUSTOM_LOGIC_APP_SETTING=12345 

مراجعة إعدادات التطبيق وتعريفها في ملف Resource Manager أو Bicep

لمراجعة إعدادات التطبيق وتحديدها في قالب ARM أو ملف Bicep، ابحث عن تعريف مورد تطبيق المنطق الخاص بك، وقم بتحديث appSettings كائن JSON. للحصول على تعريف المورد الكامل، راجع مرجع قالب ARM.

يوضح هذا المثال إعدادات الملفات لقوالب ARM أو ملفات Bicep:

"appSettings": [
    {
        "name": "string",
        "value": "string"
    },
    {
        "name": "string",
        "value": "string"
    },
    <...>
],