تطوير ملفات Azure NetApp باستخدام واجهة برمجة تطبيقات REST
تحدد واجهة برمجة تطبيقات REST لخدمة Azure NetApp Files عمليات HTTP مقابل الموارد مثل حساب NetApp وتجمع السعة ووحدات التخزين واللقطات. تساعدك هذه المقالة على البدء في استخدام واجهة برمجة تطبيقات REST لملفات Azure NetApp.
مواصفات واجهة برمجة تطبيقات REST لملفات Azure NetApp
يتم نشر مواصفات واجهة برمجة تطبيقات REST لملفات Azure NetApp من خلال GitHub:
https://github.com/Azure/azure-rest-api-specs/tree/main/specification/netapp/resource-manager
الاعتبارات
عند تجاوز حد واجهة برمجة التطبيقات، يكون رمز استجابة HTTP هو 429. على سبيل المثال:
"Microsoft.Azure.ResourceProvider.Common.Exceptions.ResourceProviderException: Error getting Pool. Rate limit exceeded for this endpoint - try again later ---> CloudVolumes.Service.Client.Client.ApiException: Error calling V2DescribePool: {\"code\":429,\"message\":\"Rate limit exceeded for this endpoint - try again later\"}
يمكن أن يأتي رمز الاستجابة هذا من التقييد أو شرط مؤقت. راجع رمز استجابة AZURE Resource Manager HTTP 429 للحصول على مزيد من المعلومات.
الوصول إلى واجهة برمجة تطبيقات REST لملفات Azure NetApp
قم بتثبيت Azure CLI إذا لم تكن قد فعلت ذلك بالفعل.
إنشاء كيان خدمة في معرف Microsoft Entra الخاص بك:
تحقق من أن لديك أذونات كافية.
أدخل الأمر التالي في Azure CLI:
az ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role Contributor --scopes /subscriptions/{subscription-id}
إخراج الأمر مشابه للمثال التالي:
{ "appId": "appIDgoeshere", "displayName": "APPNAME", "name": "http://APPNAME", "password": "supersecretpassword", "tenant": "tenantIDgoeshere" }
احتفظ إخراج الأمر. ستحتاج إلى
appId
password
القيم و وtenant
.
طلب رمز وصول OAuth:
تستخدم الأمثلة في هذه المقالة cURL. يمكنك أيضا استخدام أدوات واجهة برمجة التطبيقات المختلفة مثل Postman و Insomnia و Paw.
استبدل المتغيرات في المثال التالي بإخراج الأمر من الخطوة 2 أعلاه.
curl -X POST -d 'grant_type=client_credentials&client_id=[APP_ID]&client_secret=[PASSWORD]&resource=https%3A%2F%2Fmanagement.azure.com%2F' https://login.microsoftonline.com/[TENANT_ID]/oauth2/token
يوفر الإخراج رمزا مميزا للوصول مشابها للمثال التالي:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9
الرمز المميز المعروض صالح لمدة 3600 ثانية. بعد ذلك، تحتاج إلى طلب رمز مميز جديد. احفظ الرمز المميز إلى محرر نص. ستحتاج إليه للخطوة التالية.
أرسل مكالمة اختبار وقم بتضمين الرمز المميز للتحقق من صحة وصولك إلى واجهة برمجة تطبيقات REST:
curl -X GET -H "Authorization: Bearer [TOKEN]" -H "Content-Type: application/json" https://management.azure.com/subscriptions/[SUBSCRIPTION_ID]/providers/Microsoft.Web/sites?api-version=2022-05-01
أمثلة باستخدام واجهة برمجة التطبيقات
تستخدم هذه المقالة عنوان URL التالي للأساس للطلبات. يشير عنوان URL هذا إلى جذر مساحة اسم Azure NetApp Files.
https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2022-05-01
يجب استبدال القيمتين SUBIDGOESHERE
و RESOURCEGROUPGOESHERE
في الأمثلة التالية بقيمك الخاصة.
أمثلة طلب GET
يمكنك استخدام طلب GET للاستعلام عن كائنات Azure NetApp Files في اشتراك، كما تظهر الأمثلة التالية:
#get NetApp accounts
curl -X GET -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2022-05-01
#get capacity pools for NetApp account
curl -X GET -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools?api-version=2022-05-01
#get volumes in NetApp account & capacity pool
curl -X GET -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes?api-version=2022-05-01
#get snapshots for a volume
curl -X GET -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes/VOLUMEGOESHERE/snapshots?api-version=2022-05-01
أمثلة على طلب PUT
يمكنك استخدام طلب PUT لإنشاء كائنات جديدة في Azure NetApp Files، كما تظهر الأمثلة التالية. يمكن أن يتضمن نص طلب PUT البيانات المنسقة JSON للتغييرات. يجب تضمينه في الأمر curl كنص أو مراجع كملف. للإشارة إلى النص الأساسي كملف، احفظ مثال json إلى ملف وأضف -d @<filename>
إلى الأمر curl.
#create a NetApp account
curl -d @<filename> -X PUT -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE?api-version=2022-05-01
#create a capacity pool
curl -d @<filename> -X PUT -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE?api-version=2022-05-01
#create a volume
curl -d @<filename> -X PUT -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes/MYNEWVOLUME?api-version=2022-05-01
#create a volume snapshot
curl -d @<filename> -X PUT -H "Authorization: Bearer TOKENGOESHERE" -H "Content-Type: application/json" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes/MYNEWVOLUME/Snapshots/SNAPNAME?api-version=2022-05-01
أمثلة JSON
يوضح المثال التالي كيفية إنشاء حساب NetApp:
{
"name": "MYNETAPPACCOUNT",
"type": "Microsoft.NetApp/netAppAccounts",
"location": "westus2",
"properties": {
"name": "MYNETAPPACCOUNT"
}
}
يوضح المثال التالي كيفية إنشاء تجمع سعة:
{
"name": "MYNETAPPACCOUNT/POOLNAME",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools",
"location": "westus2",
"properties": {
"name": "POOLNAME",
"size": "4398046511104",
"serviceLevel": "Premium"
}
}
يوضح المثال التالي كيفية إنشاء وحدة تخزين جديدة. (البروتوكول الافتراضي لوحدات التخزين هو NFSV3.)
{
"name": "MYNEWVOLUME",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
"location": "westus2",
"properties": {
"serviceLevel": "Premium",
"usageThreshold": "322122547200",
"creationToken": "MY-FILEPATH",
"snapshotId": "",
"subnetId": "/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.Network/virtualNetworks/VNETGOESHERE/subnets/MYDELEGATEDSUBNET.sn"
}
}
يوضح المثال التالي كيفية إنشاء لقطة وحدة تخزين:
{
"name": "apitest2/apiPool01/apiVol01/snap02",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools/Volumes/Snapshots",
"location": "westus2",
"properties": {
"name": "snap02",
"fileSystemId": "0168704a-bbec-da81-2c29-503825fe7420"
}
}
إشعار
تحتاج إلى تحديد fileSystemId
لإنشاء لقطة. يمكنك الحصول على fileSystemId
القيمة مع طلب GET إلى وحدة تخزين.