Fejlesztés az Azure NetApp Filesra a REST API-val
Az Azure NetApp Files szolgáltatás REST API-ja HTTP-műveleteket határoz meg olyan erőforrásokon, mint a NetApp-fiók, a kapacitáskészlet, a kötetek és a pillanatképek. Ez a cikk az Azure NetApp Files REST API használatának első lépéseit ismerteti.
Az Azure NetApp Files REST API-specifikációja
Az Azure NetApp Files REST API-specifikációja a GitHubon keresztül érhető el:
https://github.com/Azure/azure-rest-api-specs/tree/main/specification/netapp/resource-manager
Considerations
Az API-korlát túllépésekor a HTTP-válaszkód 429. Például:
"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\"}
Ez a válaszkód szabályozásból vagy átmeneti állapotból származhat. További információ: Azure Resource Manager HTTP 429 válaszkód .
Az Azure NetApp Files REST API elérése
Hozzon létre egy egyszerű szolgáltatást a Microsoft Entra-azonosítójában:
Ellenőrizze, hogy rendelkezik-e megfelelő engedélyekkel.
Adja meg a következő parancsot az Azure CLI-ben:
az ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role Contributor --scopes /subscriptions/{subscription-id}
A parancs kimenete a következő példához hasonló:
{ "appId": "appIDgoeshere", "displayName": "APPNAME", "name": "http://APPNAME", "password": "supersecretpassword", "tenant": "tenantIDgoeshere" }
Tartsa meg a parancs kimenetét. Szüksége lesz a
appId
,password
éstenant
az értékekre.
OAuth hozzáférési jogkivonat kérése:
A cikkben szereplő példák a cURL-t használják. Különböző API-eszközöket is használhat, például a Postmant, az Álmatlanságot és a Mancsot.
Cserélje le a következő példában szereplő változókat a fenti 2. lépés parancskimenetére.
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
A kimenet az alábbi példához hasonló hozzáférési jogkivonatot biztosít:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9
A megjelenített jogkivonat 3600 másodpercig érvényes. Ezután új jogkivonatot kell kérnie. Mentse a jogkivonatot egy szövegszerkesztőbe. A következő lépéshez szüksége lesz rá.
Küldjön egy teszthívást, és adja meg a jogkivonatot a REST API-hoz való hozzáférés ellenőrzéséhez:
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
Példák az API-t használó példákra
Ez a cikk a következő URL-címet használja a kérések alapkonfigurációjára. Ez az URL az Azure NetApp Files névtér gyökerére mutat.
https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2022-05-01
Az alábbi példákban szereplő értékeket cserélje le SUBIDGOESHERE
RESOURCEGROUPGOESHERE
a saját értékeire.
GET-kérelmek – példák
GET kéréssel kérdezheti le az Azure NetApp Files objektumait egy előfizetésben, ahogy az alábbi példák is mutatják:
#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-kérések – példák
Put-kéréssel új objektumokat hozhat létre az Azure NetApp Filesban, ahogy az alábbi példák is mutatják. A PUT-kérelem törzse tartalmazhatja a módosítások JSON formátumú adatait. A curl parancsban szövegként vagy hivatkozásként fájlként kell szerepelnie. Ha fájlként szeretné hivatkozni a törzsre, mentse a json-példát egy fájlba, és adja hozzá -d @<filename>
a curl parancshoz.
#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-példák
Az alábbi példa bemutatja, hogyan hozhat létre NetApp-fiókot:
{
"name": "MYNETAPPACCOUNT",
"type": "Microsoft.NetApp/netAppAccounts",
"location": "westus2",
"properties": {
"name": "MYNETAPPACCOUNT"
}
}
Az alábbi példa bemutatja, hogyan hozhat létre kapacitáskészletet:
{
"name": "MYNETAPPACCOUNT/POOLNAME",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools",
"location": "westus2",
"properties": {
"name": "POOLNAME",
"size": "4398046511104",
"serviceLevel": "Premium"
}
}
Az alábbi példa bemutatja, hogyan hozhat létre új kötetet. (A kötet alapértelmezett protokollja az 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"
}
}
Az alábbi példa bemutatja, hogyan hozhat létre pillanatképet egy kötetről:
{
"name": "apitest2/apiPool01/apiVol01/snap02",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools/Volumes/Snapshots",
"location": "westus2",
"properties": {
"name": "snap02",
"fileSystemId": "0168704a-bbec-da81-2c29-503825fe7420"
}
}
Megjegyzés:
A pillanatkép létrehozásához meg kell adnia fileSystemId
. Az értéket lekérheti fileSystemId
egy kötet get kérésével.