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
Instal Azure CLI jika Anda belum melakukannya.
Buat perwakilan layanan di ID Microsoft Entra Anda:
Pastikan Anda memiliki izin yang memadai.
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
, dantenant
.
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.
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.