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

  1. Installeer de Azure CLI als u dit nog niet hebt gedaan.

  2. Maak een service-principal in uw Azure Active Directory (Azure AD):

    1. Controleer of u voldoende machtigingen hebt.

    2. Voer de volgende opdracht in Azure CLI in:

      az ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role Contributor
      

      De 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 appId waarden , password en tenant nodig.

  3. 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/token
    

    De uitvoer biedt een toegangs token dat vergelijkbaar is met het volgende voorbeeld:

    eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9

    Het 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.

  4. 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.

Volgende stappen

Zie de Azure NetApp Files REST API naslag