REST API ile Azure NetApp Files için geliştirme

Azure NetApp Files hizmeti için REST API, NetApp hesabı, kapasite havuzu, birimler ve anlık görüntüler gibi kaynaklara karşı HTTP işlemlerini tanımlar. Bu makale, Azure NetApp Files REST API'sini kullanmaya başlamanıza yardımcı olur.

Azure NetApp Files REST API belirtimi

Azure NetApp Files için REST API belirtimi GitHub aracılığıyla yayımlanır:

https://github.com/Azure/azure-rest-api-specs/tree/main/specification/netapp/resource-manager

Dikkat edilmesi gereken noktalar

  • API sınırı aşıldığında HTTP yanıt kodu 429'dur. Örneğin:

    "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\"}

    Bu yanıt kodu azaltma veya geçici bir koşuldan gelebilir. Daha fazla bilgi için bkz . Azure Resource Manager HTTP 429 yanıt kodu .

Azure NetApp Files REST API'sine erişme

  1. Henüz yapmadıysanız Azure CLI'yi yükleyin.

  2. Microsoft Entra Kimliğinizde bir hizmet sorumlusu oluşturun:

    1. Yeterli izinlere sahip olduğunuzu doğrulayın.

    2. Azure CLI'ya aşağıdaki komutu girin:

      az ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role Contributor --scopes /subscriptions/{subscription-id}
      

      Komut çıktısı aşağıdaki örneğe benzer:

      { 
          "appId": "appIDgoeshere", 
          "displayName": "APPNAME", 
          "name": "http://APPNAME", 
          "password": "supersecretpassword", 
          "tenant": "tenantIDgoeshere" 
      } 
      

      Komut çıkışını koruyun. , passwordve tenant değerlerine appIdihtiyacınız olacaktır.

  3. OAuth erişim belirteci isteyin:

    Bu makaledeki örneklerde cURL kullanılır. Postman, Uykusuzluk ve Paw gibi çeşitli API araçlarını da kullanabilirsiniz.

    Aşağıdaki örnekteki değişkenleri yukarıdaki 2. adımdaki komut çıkışıyla değiştirin.

    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
    

    Çıkış, aşağıdaki örneğe benzer bir erişim belirteci sağlar:

    eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9

    Görüntülenen belirteç 3600 saniye boyunca geçerlidir. Bundan sonra yeni bir belirteç istemeniz gerekir. Belirteci bir metin düzenleyicisine kaydedin. Sonraki adım için buna ihtiyacınız olacak.

  4. Rest API'ye erişiminizi doğrulamak için bir test çağrısı gönderin ve belirteci ekleyin:

    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
    

API'yi kullanan örnekler

Bu makalede, isteklerin temeli için aşağıdaki URL kullanılır. Bu URL, Azure NetApp Files ad alanının kökünü gösterir.

https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2022-05-01

Aşağıdaki örneklerde yer alan ve RESOURCEGROUPGOESHERE değerlerini kendi değerlerinizle değiştirmelisinizSUBIDGOESHERE.

GET isteği örnekleri

Aşağıdaki örneklerde gösterildiği gibi, abonelikteki Azure NetApp Files nesnelerini sorgulamak için GET isteği kullanırsınız:

#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 isteği örnekleri

Aşağıdaki örneklerde gösterildiği gibi, Azure NetApp Files'da yeni nesneler oluşturmak için PUT isteği kullanırsınız. PUT isteğinin gövdesi, değişiklikler için JSON biçimli verileri içerebilir. Curl komutuna metin veya başvuru olarak dosya olarak eklenmelidir. Gövdeye dosya olarak başvurmak için json örneğini bir dosyaya kaydedin ve curl komutuna ekleyin -d @<filename> .

#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 örnekleri

Aşağıdaki örnekte NetApp hesabının nasıl oluşturulacağı gösterilmektedir:

{ 
    "name": "MYNETAPPACCOUNT", 
    "type": "Microsoft.NetApp/netAppAccounts", 
    "location": "westus2", 
    "properties": { 
        "name": "MYNETAPPACCOUNT" 
    }
} 

Aşağıdaki örnekte kapasite havuzunun nasıl oluşturulacağı gösterilmektedir:

{
    "name": "MYNETAPPACCOUNT/POOLNAME",
    "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
    "location": "westus2",
    "properties": {
        "name": "POOLNAME",
        "size": "4398046511104",
        "serviceLevel": "Premium"
    }
}

Aşağıdaki örnekte yeni birimin nasıl oluşturulacağı gösterilmektedir. (Birimin varsayılan protokolü NFSV3'tür.)

{
    "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"
         }
}

Aşağıdaki örnekte birimin anlık görüntüsünün nasıl oluşturulacağı gösterilmektedir:

{
    "name": "apitest2/apiPool01/apiVol01/snap02",
    "type": "Microsoft.NetApp/netAppAccounts/capacityPools/Volumes/Snapshots",
    "location": "westus2",
    "properties": {
         "name": "snap02",
        "fileSystemId": "0168704a-bbec-da81-2c29-503825fe7420"
    }
}

Not

Anlık görüntü oluşturmak için belirtmeniz fileSystemId gerekir. Bir birime GET isteğiyle değeri alabilirsiniz fileSystemId .

Sonraki adımlar