Ontwikkelen voor Azure NetApp Files met REST API
De REST API voor de Azure NetApp Files-service definieert HTTP-bewerkingen voor resources zoals het NetApp-account, de capaciteitspool, de volumes en momentopnamen. Dit artikel helpt u aan de slag te gaan met de Azure NetApp Files REST API.
Azure NetApp Files REST API specificatie
De REST API specificatie voor Azure NetApp Files wordt gepubliceerd via GitHub:
https://github.com/Azure/azure-rest-api-specs/tree/master/specification/netapp/resource-manager
Overwegingen
Wanneer de API-limiet is overschreden, is de HTTP-antwoordcode 429. Bijvoorbeeld:
"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\"}Deze antwoordcode kan afkomstig zijn van beperking of een tijdelijke voorwaarde. Zie Azure Resource Manager HTTP 429-responscode voor meer informatie.
Toegang tot de Azure NetApp Files REST API
Installeer de Azure CLI als u dit nog niet hebt gedaan.
Maak een service-principal in uw Azure Active Directory (Azure AD):
Controleer of u voldoende machtigingen hebt.
Voer de volgende opdracht in Azure CLI in:
az ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role ContributorDe uitvoer van de opdracht is vergelijkbaar met het volgende voorbeeld:
{ "appId": "appIDgoeshere", "displayName": "APPNAME", "name": "http://APPNAME", "password": "supersecretpassword", "tenant": "tenantIDgoeshere" }Laat de uitvoer van de opdracht staan. U hebt de
appIdwaarden ,passwordentenantnodig.
Een OAuth-toegangsteken aanvragen:
In de voorbeelden in dit artikel wordt cURL gebruikt. U kunt ook verschillende API-hulpprogramma's gebruiken, zoals Postman, Slapeloosheiden Paw.
Vervang de variabelen in het volgende voorbeeld door de opdrachtuitvoer uit stap 2 hierboven.
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/tokenDe uitvoer biedt een toegangs token dat vergelijkbaar is met het volgende voorbeeld:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9Het weergegeven token is 3600 seconden geldig. Daarna moet u een nieuw token aanvragen. Sla het token op in een teksteditor. U hebt deze nodig voor de volgende stap.
Verzend een testoproep en voeg het token toe om uw toegang tot de 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=2019-11-01
Voorbeelden van het gebruik van de API
In dit artikel wordt de volgende URL gebruikt voor de basislijn van aanvragen. Deze URL wijst naar de hoofdmap van Azure NetApp Files naamruimte.
https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2019-11-01
Vervang de waarden SUBIDGOESHERE en in de volgende voorbeelden door uw eigen RESOURCEGROUPGOESHERE waarden.
Voorbeelden van GET-aanvragen
U gebruikt een GET-aanvraag om query's uit te voeren op objecten Azure NetApp Files in een abonnement, zoals de volgende voorbeelden laten zien:
#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=2019-11-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=2019-11-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=2019-11-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=2019-11-01
Voorbeelden van PUT-aanvragen
U gebruikt een PUT-aanvraag om nieuwe objecten te maken in Azure NetApp Files, zoals de volgende voorbeelden laten zien. De body van de PUT-aanvraag kan de in JSON opgemaakte gegevens voor de wijzigingen bevatten. Deze moet worden opgenomen in de curl-opdracht als tekst of verwijzingen als een bestand. Als u wilt verwijzen naar de body als een bestand, moet u het JSON-voorbeeld opslaan in een bestand en toevoegen -d @<filename> aan de curl-opdracht.
#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=2019-11-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=2019-11-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=2019-11-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=2019-11-01
JSON-voorbeelden
In het volgende voorbeeld ziet u hoe u een NetApp-account maakt:
{
"name": "MYNETAPPACCOUNT",
"type": "Microsoft.NetApp/netAppAccounts",
"location": "westus2",
"properties": {
"name": "MYNETAPPACCOUNT"
}
}
In het volgende voorbeeld ziet u hoe u een capaciteitspool maakt:
{
"name": "MYNETAPPACCOUNT/POOLNAME",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools",
"location": "westus2",
"properties": {
"name": "POOLNAME",
"size": "4398046511104",
"serviceLevel": "Premium"
}
}
In het volgende voorbeeld ziet u hoe u een nieuw volume maakt. (Het standaardprotocol voor het volume is 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"
}
}
In het volgende voorbeeld ziet u hoe u een momentopname van een volume maakt:
{
"name": "apitest2/apiPool01/apiVol01/snap02",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools/Volumes/Snapshots",
"location": "westus2",
"properties": {
"name": "snap02",
"fileSystemId": "0168704a-bbec-da81-2c29-503825fe7420"
}
}
Notitie
U moet opgeven voor fileSystemId het maken van een momentopname. U kunt de waarde fileSystemId verkrijgen met een GET-aanvraag naar een volume.