دعم Azure App Configuration لملفات التكوين

الملفات هي واحدة من الطرق الأكثر شيوعًا لتخزين بيانات التكوين. لمساعدتك على البدء بسرعة، يحتوي App Configuration على أدوات لمساعدتك في استيراد ملفات التكوين الخاصة بك، لذلك لا يتعين عليك كتابة بياناتك يدويًا. هذه العملية هي ترحيل بيانات لمرة واحدة إذا كنت تخطط لإدارة بياناتك في App Configuration بعد استيرادها. في بعض الحالات الأخرى، على سبيل المثال، حيث يمكنك اعتماد التكوين كتعلم برمجي، يمكنك الاستمرار في إدارة بيانات التكوين في الملفات واستيرادها كجزء من عملية CI/CD بشكل متكرر. قد تجد أن أحد هذين السيناريوهين ينطبق عليك:

  • يمكنك الاحتفاظ بملف التكوين بالتنسيق الذي كان لديك من قبل. هذا التنسيق مفيد إذا كنت تريد استخدام الملف كتكوين احتياطي للتطبيق الخاص بك أو التكوين المحلي في أثناء التطوير. عند استيراد ملف التكوين، حدد كيف تريد تحويل البيانات إلى قيم مفتاح تكوين التطبيق. هذا الخيار هو ملف تعريف محتوى الملف الافتراضي في أدوات استيراد تكوين التطبيق مثل المدخل وAzure CLI ومهمة دفع البنية الأساسية لبرنامج ربط العمليات التجارية Azure وإجراءات GitHub وما إلى ذلك.
  • يمكنك الاحتفاظ بملف التكوين بالتنسيق الذي يحتوي على كافة خصائص قيمة مفتاح تكوين التطبيق. عند استيراد الملف، لا تحتاج إلى تحديد أي قواعد تحويل لأن جميع خصائص قيمة المفتاح موجودة بالفعل في الملف. يسمى هذا الخيار ملف تعريف محتوى ملف KVSet في أدوات استيراد تكوين التطبيق. من المفيد إذا كنت تريد إدارة جميع بيانات تكوين التطبيق، بما في ذلك قيم المفاتيح العادية والمراجع Key Vault وعلامات الميزات، في ملف واحد واستيرادها في لقطة واحدة.

سيناقش باقي هذا المستند كلًا من ملفات تعريف محتوى الملف بالتفصيل ويستخدم Azure CLI كمثال. ينطبق نفس المفهوم على أدوات استيراد App Configuration الأخرى أيضا.

ملف تعريف محتوى الملف: افتراضي

يشير ملف تعريف محتوى الملف الافتراضي في أدوات تكوين التطبيق إلى مخطط ملف التكوين التقليدي المعتمد على نطاق واسع من قبل أطر عمل البرمجة أو الأنظمة الموجودة. يدعم App Configuration تنسيقات ملفات JSON أو Yaml أو Properties.

المثال التالي هو ملف تكوين يسمى appsettings.json يحتوي على إعداد تكوين واحد وعلامة ميزة واحدة.

{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "FeatureManagement": {
        "Beta": false
    }
}

قم بتشغيل أمر CLI التالي لاستيراده إلى App Configuration مع التسمية dev واستخدام النقطتين (:) كفاصل لتسوية اسم المفتاح. يمكنك اختياريًا إضافة معلمة "--profile appconfig/default". يتم تخطيها في المثال لأنها القيمة الافتراضية.

az appconfig kv import --label dev --separator : --name <your store name> --source file --path appsettings.json --format json

تتطلب المراجع Key Vault نوع محتوى معينًا في أثناء الاستيراد، لذا يمكنك الاحتفاظ بها في ملف منفصل. المثال التالي هو ملف مسمى keyvault-refs.json.

{
    "Database:ConnectionString": {
        "uri": "https://<your-vault-name>.vault.azure.net/secrets/db-secret"
    }  
}

قم بتشغيل أمر CLI التالي لاستيراده باستخدام التسمية test ونوع المحتوى المرجعي ل Key Vault.

az appconfig kv import --label test --content-type "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8" --name <your store name> --source file --path keyvault-refs.json --format json

يعرض الجدول التالي جميع البيانات المستوردة في متجر App Configuration.

مفتاح القيمة‬ تسمية نوع المحتوى
.appconfig.featureflag/Beta {"id":"Beta","description":"","enabled":false,"conditions":{"client_filters":[]}} dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logging:LogLevel:Default تحذير dev
Database:ConnectionString {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} اختبار application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

ملف تعريف محتوى الملف: KVSet

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

المثال التالي هو ملف يستند إلى ملف تعريف محتوى ملف KVSet، المسمى appconfigdata.json، يحتوي على علامة ميزة ومرجع Key Vault وقيمة مفتاح عادية.

{
  "items": [
    {
      "key": ".appconfig.featureflag/Beta",
      "value": "{\"id\":\"Beta\",\"description\":\"Beta feature\",\"enabled\":true,\"conditions\":{\"client_filters\":[]}}",
      "label": "dev",
      "content_type": "application/vnd.microsoft.appconfig.ff+json;charset=utf-8",
      "tags": {}
    },
    {
      "key": "Database:ConnectionString",
      "value": "{\"uri\":\"https://<your-vault-name>.vault.azure.net/secrets/db-secret\"}",
      "label": "test",
      "content_type": "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8",
      "tags": {}
    },
    {
      "key": "Logging:LogLevel:Default",
      "value": "Debug",
      "label": "dev",
      "content_type": null,
      "tags": {}
    }
  ]
}

تلميح

إذا اتبعت المثال في القسم السابق ولديك البيانات في متجر App Configuration، يمكنك تصديرها إلى ملف باستخدام الأمر CLI:

az appconfig kv export --profile appconfig/kvset --label * --name <your store name> --destination file --path appconfigdata.json --format json 

بعد تصدير الملف، قم بتحديث خاصية enabled لعلامة الميزة Betatrue إلى وقم بتغيير Logging:LogLevel:Default إلى Debug.

قم بتشغيل أمر CLI التالي مع المعلمة "--profile appconfig/kvset" لاستيراد الملف إلى متجر App Configuration. لا تحتاج إلى تحديد أي قواعد لتحويل البيانات مثل الفاصل أو التسمية أو نوع المحتوى كما فعلت في قسم ملف تعريف محتوى الملف الافتراضي لأن جميع المعلومات موجودة بالفعل في الملف.

az appconfig kv import --profile appconfig/kvset --name <your store name> --source file --path appconfigdata.json --format json

إشعار

ملف تعريف محتوى ملف KVSet مدعوم حاليا في

يعرض الجدول التالي جميع البيانات المستوردة في متجر App Configuration.

مفتاح القيمة‬ تسمية نوع المحتوى
.appconfig.featureflag/Beta {"id":"Beta","description":"Beta feature","enabled":true,"conditions":{"client_filters":[]}} dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logging:LogLevel:Default تصحيح dev
Database:ConnectionString {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} اختبار application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

الخطوات التالية