Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
Installieren Sie die Azure CLI , wenn Sie dies noch nicht getan haben.
Erstellen Sie einen Dienstprinzipal in Ihrer Microsoft Entra-ID:
Stellen Sie sicher, dass Sie über ausreichende Berechtigungen verfügen.
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
undtenant
.
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.
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.