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 het gebruik van de Rest API van Azure NetApp Files.

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/main/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-antwoordcode voor meer informatie.

Toegang tot de REST API van Azure NetApp Files

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

  2. Maak een service-principal in uw Microsoft Entra-id:

    1. Controleer of u over voldoende machtigingen beschikt.

    2. Voer de volgende opdracht in Azure CLI in:

      az ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role Contributor --scopes /subscriptions/{subscription-id}
      

      De uitvoer van de opdracht is vergelijkbaar met het volgende voorbeeld:

      { 
          "appId": "appIDgoeshere", 
          "displayName": "APPNAME", 
          "name": "http://APPNAME", 
          "password": "supersecretpassword", 
          "tenant": "tenantIDgoeshere" 
      } 
      

      Behoud de uitvoer van de opdracht. U hebt de appId, passworden tenant waarden nodig.

  3. Een OAuth-toegangstoken aanvragen:

    In de voorbeelden in dit artikel wordt cURL gebruikt. U kunt ook verschillende API-hulpprogramma's gebruiken, zoals Postman, Slapeloosheid en Paw.

    Vervang de variabelen in het volgende voorbeeld door de uitvoer van de opdracht 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 toegangstoken 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. Een testoproep verzenden en het token opnemen om uw toegang tot de REST API te valideren:

    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
    

Voorbeelden met behulp van de API

In dit artikel wordt de volgende URL gebruikt voor de basislijn van aanvragen. Deze URL verwijst naar de hoofdmap van de Azure NetApp Files-naamruimte.

https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2022-05-01

Vervang de SUBIDGOESHERE en RESOURCEGROUPGOESHERE waarden in de volgende voorbeelden door uw eigen waarden.

VOORBEELDEN VAN GET-aanvragen

U gebruikt een GET-aanvraag om query's uit te voeren op objecten van Azure NetApp Files in een abonnement, zoals in de volgende voorbeelden wordt weergegeven:

#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

Voorbeelden van PUT-aanvragen

U gebruikt een PUT-aanvraag om nieuwe objecten te maken in Azure NetApp Files, zoals in de volgende voorbeelden wordt weergegeven. De hoofdtekst van de PUT-aanvraag kan de JSON-geformatteerde 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 hoofdtekst als een bestand, slaat u het json-voorbeeld op in een bestand en voegt u deze toe -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=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-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 fileSystemId voor het maken van een momentopname. U kunt de fileSystemId waarde verkrijgen met een GET-aanvraag naar een volume.

Volgende stappen

Raadpleeg de Naslaginformatie over de REST API van Azure NetApp Files