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
Henüz yapmadıysanız Azure CLI'yi yükleyin.
Microsoft Entra Kimliğinizde bir hizmet sorumlusu oluşturun:
Yeterli izinlere sahip olduğunuzu doğrulayın.
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. ,
password
vetenant
değerlerineappId
ihtiyacınız olacaktır.
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.
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
.