Freigeben über


Entwicklung für Azure NetApp Files mit REST-API

Die REST-API für den Azure NetApp Files-Dienst definiert HTTP-Vorgänge für Ressourcen wie das NetApp-Konto, den Kapazitätspool, die Volumes und Momentaufnahmen. Dieser Artikel hilft Ihnen dabei, die ersten Schritte mit der Azure NetApp Files REST-API zu unternehmen.

REST-API-Spezifikation für Azure NetApp Files

Die REST-API-Spezifikation für Azure NetApp Files wird über GitHub veröffentlicht:

https://github.com/Azure/azure-rest-api-specs/tree/main/specification/netapp/resource-manager

Überlegungen

  • Wenn der API-Grenzwert überschritten wurde, lautet der HTTP-Antwortcode 429. Beispiel:

    "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\"}

    Dieser Antwortcode kann durch eine Einschränkung oder temporäre Bedingung ausgelöst werden. Weitere Informationen finden Sie im HTTP 429-Antwortcode des Azure Resource Manager .

Zugreifen auf die REST-API für Azure NetApp-Dateien

  1. Installieren Sie die Azure CLI , wenn Sie dies noch nicht getan haben.

  2. Erstellen Sie einen Dienstprinzipal in Ihrer Microsoft Entra-ID:

    1. Stellen Sie sicher, dass Sie über ausreichende Berechtigungen verfügen.

    2. Geben Sie den folgenden Befehl in die Azure CLI ein:

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

      Die Befehlsausgabe ähnelt dem folgenden Beispiel:

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

      Bewahren Sie die Befehlsausgabe auf. Sie benötigen die Werte für appId, password und tenant.

  3. Anfordern eines OAuth-Zugriffstokens:

    In den Beispielen in diesem Artikel wird cURL verwendet. Sie können auch verschiedene API-Tools wie Postman, Insomnia und Paw verwenden.

    Ersetzen Sie die Variablen im folgenden Beispiel durch die Befehlsausgabe aus Schritt 2 oben.

    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
    

    Die Ausgabe stellt ein Zugriffstoken bereit, das dem folgenden Beispiel ähnelt:

    eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9

    Das angezeigte Token ist 3600 Sekunden gültig. Danach müssen Sie ein neues Token anfordern. Speichern Sie das Token in einem Text-Editor. Sie benötigen ihn für den nächsten Schritt.

  4. Senden Sie einen Testaufruf, und schließen Sie das Token ein, um den Zugriff auf die REST-API zu überprüfen:

    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
    

Beispiele für die Verwendung der API

In diesem Artikel wird die folgende URL für den Basisplan von Anforderungen verwendet. Diese URL verweist auf den Stamm des Azure NetApp Files-Namespace.

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

Sie sollten die Werte SUBIDGOESHERE und RESOURCEGROUPGOESHERE in den folgenden Beispielen durch Ihre eigenen Werte ersetzen.

GET-Anforderungsbeispiele

Sie verwenden eine GET-Anforderung zum Abfragen von Objekten von Azure NetApp Files in einem Abonnement, wie die folgenden Beispiele zeigen:

#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-Anforderungsbeispiele

Sie verwenden eine PUT-Anforderung, um neue Objekte in Azure NetApp Files zu erstellen, wie die folgenden Beispiele zeigen. Der Textkörper der PUT-Anforderung kann die JSON-formatierten Daten für die Änderungen enthalten. Sie muss im curl-Befehl entweder als Text enthalten oder als Datei referenziert werden. Um den Textkörper als Datei zu referenzieren, speichern Sie das JSON-Beispiel in einer Datei und fügen Sie dem curl-Befehl -d @<filename> hinzu.

#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-Beispiele

Das folgende Beispiel zeigt, wie Sie ein NetApp-Konto erstellen:

{ 
    "name": "MYNETAPPACCOUNT", 
    "type": "Microsoft.NetApp/netAppAccounts", 
    "___location": "westus2", 
    "properties": { 
        "name": "MYNETAPPACCOUNT" 
    }
} 

Das folgende Beispiel zeigt, wie Sie einen Kapazitätspool erstellen:

{
    "name": "MYNETAPPACCOUNT/POOLNAME",
    "type": "Microsoft.NetApp/netAppAccounts/capacityPools",
    "___location": "westus2",
    "properties": {
        "name": "POOLNAME",
        "size": "4398046511104",
        "serviceLevel": "Premium"
    }
}

Das folgende Beispiel zeigt, wie Sie ein neues Volume erstellen. (Das Standardprotokoll für das Volume ist 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"
         }
}

Das folgende Beispiel zeigt, wie Sie eine Momentaufnahme eines Volumes erstellen:

{
    "name": "apitest2/apiPool01/apiVol01/snap02",
    "type": "Microsoft.NetApp/netAppAccounts/capacityPools/Volumes/Snapshots",
    "___location": "westus2",
    "properties": {
         "name": "snap02",
        "fileSystemId": "0168704a-bbec-da81-2c29-503825fe7420"
    }
}

Hinweis

Zum Erstellen einer Momentaufnahme müssen Sie angeben fileSystemId . Sie können den fileSystemId Wert mit einer GET-Anforderung an ein Volume abrufen.

Nächste Schritte