إضافة موارد مخصصة إلى واجهة برمجة تطبيقات REST من Azure
سوف تعرض هذه المقالة المتطلبات وأفضل الممارسات لإنشاء نقاط نهاية موفر الموارد المخصصة من Azure التي تنفذ موارد المخصصة. إذا لم تكن على دراية بموفري الموارد المخصصة من Azure، فراجع نظرة عامة حول موفري الموارد المخصصة.
كيفية تعريف نقطة نهاية المورد
نقطة النهاية هي عنوان URL الذي يشير إلى خدمة، والتي تنفذ الاتفاق الأساسي بينها وبين Azure. يتم تعريف نقطة النهاية في موفر الموارد المخصصة ويمكن أن يكون أي URL يمكن الوصول إليه بشكل عام. تحتوي العينة أدناه على resourceType يسمى تطبيق myCustomResource
تم تنفيذه بواسطة endpointURL
.
عينة موفر الموارد:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResource",
"routingType": "Proxy, Cache",
"endpoint": "https://{endpointURL}/"
}
]
},
"location": "eastus",
"type": "Microsoft.CustomProviders/resourceProviders",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
"name": "{resourceProviderName}"
}
إنشاء نقطة نهاية مورد
يجب على نقطة النهاية التي تقوم بتنفيذ resourceType معالجة الطلب والاستجابة لواجهة التطبيقات الجديدة في Azure. عند إنشاء موفر مورد مخصص مع resourceType، سيقوم بإنشاء مجموعة جديدة من واجهة برمجة التطبيقات في Azure. في هذه الحالة، سوف يقوم resourceType بإنشاء واجهة برمجة تطبيقات مورد Azure جديد لـ PUT
، وGET
، وDELETE
ولتنفيذ CRUD على مورد واحد، وكذلك GET
لاسترداد جميع الموارد الموجودة:
معالجة مورد واحد (PUT
، وGET
، وDELETE
):
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource/{myCustomResourceName}
استرداد جميع الموارد (GET
):
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource
للموارد المخصصة، يقدم موفري الموارد المخصصة نوعين من routingTypes: "Proxy
" و"Proxy, Cache
".
نوع توجيه الوكيل
يقوم "Proxy
" routingType بإنشاء وكلاء لجميع أساليب الطلب إلى نقطة النهاية المحددة في موفر الموارد المخصصة. متى تستخدم "Proxy
":
- التحكم الكامل بالاستجابة مطلوب.
- تكامل الأنظمة مع الموارد الحالية.
لمعرفة المزيد حول موارد "Proxy
"، راجع مرجع وكيل المورد المخصص
نوع توجيه ذاكرة التخزين المؤقت للوكيل
يقوم "Proxy, Cache
" routingType بإنشاء وكلاء فقط لأساليب طلب PUT
وDELETE
إلى نقطة النهاية المحددة في موفر الموارد المخصص. سيقوم موفر الموارد المخصصة بإرجاع الطلبات GET
تلقائياً استناداً إلى ما قام بتخزينه في ذاكرة التخزين المؤقت الخاصة به. إذا تم وضع علامة مورد مخصص مع ذاكرة التخزين المؤقت، فسيقوم موفر الموارد المخصصة أيضاً بإضافة / الكتابة على الحقول في الاستجابة لجعل واجهات برمجة تطبيقات لـ Azure متوافقة. متى تستخدم "Proxy, Cache
":
- إنشاء نظام جديد لا يحتوي على موارد موجودة.
- العمل مع النظام البيئي لـ Azure الموجود.
لمعرفة المزيد حول موارد "Proxy, Cache
"، راجع مرجع ذاكرة تخزين مؤقت للمورد المخصص
إنشاء مورد مخصص
هناك طريقتان رئيسيتان لإنشاء مورد مخصص من موفر موارد مخصصة:
- Azure CLI
- قوالب Azure Resource Manager
Azure CLI
إنشاء مورد مخصص:
az resource create --is-full-object \
--id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName} \
--properties \
'{
"location": "eastus",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
}
}'
المعلمة | مطلوب | الوصف |
---|---|---|
is-full-object | نعم | يشير إلى ما إذا كان عنصر الخصائص يتضمن خيارات أخرى مثل الموقع و/أو العلامات و/أو وحدة sku و/أو الخطة. |
المعرف | نعم | معرف المورد للمورد المخصص. يجب أن يكون هذا موجوداً خارج ResourceProvider |
خصائص | نعم | نص الطلب الذي سيتم إرساله إلى نقطة النهاية. |
حذف مورد مخصص لـ Azure:
az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
المعلمة | مطلوب | الوصف |
---|---|---|
المعرف | نعم | معرف المورد للمورد المخصص. يجب أن يكون هذا موجوداً خارج ResourceProvider. |
استرداد مورد مخصص لـ Azure:
az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
المعلمة | مطلوب | الوصف |
---|---|---|
المعرف | نعم | معرف المورد للمورد المخصص. يجب أن يكون هذا موجوداً خارج ResourceProvider |
قالب Azure Resource Manager
ملاحظة
تتطلب الموارد أن تحتوي الاستجابة على id
، وname
وtype
، مناسبة من نقطة النهاية.
تتطلب قوالب Azure Resource Manager أن يتم إرجاع id
، وname
، وtype
بشكل صحيح من نقطة النهاية اللاحقة. يجب أن تكون استجابة المورد التي تم إرجاعها في النموذج:
عينة من استجابة نقطة النهاية:
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{customResourceName}",
"name": "{customResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}"
}
عينة قالب Azure Resource Manager:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}",
"name": "{resourceProviderName}/{customResourceName}",
"apiVersion": "2018-09-01-preview",
"location": "eastus",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
}
}
]
}
المعلمة | مطلوب | الوصف |
---|---|---|
resourceTypeName | نعم | اسمresourceType المحدد في موفر الموارد المخصص. |
resourceProviderName | نعم | اسم مثيل موفر الموارد المخصصة. |
customResourceName | نعم | اسم المورد المخصص. |
الخطوات التالية
- نظرة عامة على موفري الموارد المخصصة من Azure
- التشغيل السريع: إنشاء موفر موارد مخصصة من Azure واستخدام الموارد المخصصة
- البرنامج التعليمي: إنشاء إجراءات مخصصة وموارد في Azure
- كيفية القيام بما يلي: إضافة إجراءات مخصصة إلى واجهة برمجة تطبيقات REST من Azure
- المرجع: مرجع وكيل المورد المخصص
- المرجع: مرجع ذاكرة التخزين المؤقت للمورد المخصص