تطوير ملفات 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

  1. قم بتثبيت Azure CLI إذا لم تكن قد فعلت ذلك بالفعل.

  2. إنشاء كيان خدمة في معرف Microsoft Entra الخاص بك:

    1. تحقق من أن لديك أذونات كافية.

    2. أدخل الأمر التالي في 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" 
      } 
      

      احتفظ إخراج الأمر. ستحتاج إلى appIdpasswordالقيم و وtenant.

  3. طلب رمز وصول 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 ثانية. بعد ذلك، تحتاج إلى طلب رمز مميز جديد. احفظ الرمز المميز إلى محرر نص. ستحتاج إليه للخطوة التالية.

  4. أرسل مكالمة اختبار وقم بتضمين الرمز المميز للتحقق من صحة وصولك إلى واجهة برمجة تطبيقات 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 إلى وحدة تخزين.

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