Mengembangkan Azure NetApp Files dengan REST API

REST API untuk layanan Azure NetApp Files menentukan operasi HTTP terhadap sumber daya seperti akun NetApp, kumpulan kapasitas, volume, dan rekam jepret. Artikel ini membantu Anda mulai menggunakan Azure NetApp Files REST API.

Spesifikasi Azure NetApp Files REST API

Spesifikasi REST API untuk Azure NetApp Files diterbitkan melalui GitHub:

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

Pertimbangan

  • Ketika batas API telah terlampaui, kode respons HTTP adalah 429. Contohnya:

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

    Kode respons ini bisa berasal dari pelambatan atau kondisi sementara. Lihat kode respons Azure Resource Manager HTTP 429 untuk informasi selengkapnya.

Mengakses REST API Azure NetApp Files

  1. Instal Azure CLI jika Anda belum melakukannya.

  2. Buat perwakilan layanan di ID Microsoft Entra Anda:

    1. Pastikan Anda memiliki izin yang memadai.

    2. Masukkan perintah berikut ini di Azure CLI:

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

      Output perintah mirip dengan contoh berikut:

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

      Simpan output perintah. Anda akan membutuhkan nilai-nilai appId, password, dan tenant.

  3. Meminta token akses OAuth:

    Contoh dalam artikel ini menggunakan cURL. Anda juga dapat menggunakan berbagai alat API seperti Postman, Insomnia, dan Paw.

    Ganti variabel dalam contoh berikut dengan output perintah dari Langkah 2 di atas.

    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
    

    Output menyediakan token akses yang mirip dengan contoh berikut:

    eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9

    Token yang ditampilkan berlaku selama 3600 detik. Setelah itu, Anda perlu meminta token baru. Simpan token ke editor teks. Anda akan membutuhkannya untuk langkah berikutnya.

  4. Kirim panggilan uji dan sertakan token untuk memvalidasi akses Anda ke REST API:

    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
    

Contoh menggunakan API

Artikel ini menggunakan URL berikut untuk garis besar permintaan. URL ini menunjuk ke akar namespace Azure NetApp Files.

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

Anda harus mengganti nilai SUBIDGOESHERE dan RESOURCEGROUPGOESHERE dalam contoh berikut dengan nilai Anda sendiri.

Contoh permintaan GET

Anda menggunakan permintaan GET untuk mengkueri objek Azure NetApp Files dalam langganan, seperti yang ditunjukkan contoh berikut:

#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

Contoh permintaan PUT

Anda menggunakan permintaan PUT untuk membuat objek baru di Azure NetApp Files, seperti yang ditunjukkan contoh berikut. Isi permintaan PUT dapat menyertakan data yang diformat JSON untuk perubahan tersebut. Ini harus dimasukkan dalam perintah curl sebagai teks atau referensi sebagai file. Untuk mereferensikan isi sebagai file, simpan contoh json ke file dan tambahkan -d @<filename> ke perintah 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

Contoh JSON

Contoh berikut menunjukkan cara membuat akun NetApp:

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

Contoh berikut menunjukkan cara membuat kumpulan kapasitas:

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

Contoh berikut menunjukkan cara membuat volume baru. (Protokol default untuk volume adalah 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"
         }
}

Contoh berikut menunjukkan cara membuat rekam jepret volume:

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

Catatan

Anda perlu menentukan fileSystemId untuk membuat rekam jepret. Anda dapat memperoleh nilai fileSystemId dengan permintaan GET ke volume.

Langkah berikutnya

Lihat referensi REST API Azure NetApp Files