Programowanie dla usługi Azure NetApp Files za pomocą interfejsu API REST
Interfejs API REST dla usługi Azure NetApp Files definiuje operacje HTTP dla zasobów, takich jak konto usługi NetApp, pula pojemności, woluminy i migawki. Ten artykuł ułatwia rozpoczęcie korzystania z interfejsu API REST usługi Azure NetApp Files.
Specyfikacja interfejsu API REST usługi Azure NetApp Files
Specyfikacja interfejsu API REST dla usługi Azure NetApp Files jest publikowana za pośrednictwem usługi GitHub:
https://github.com/Azure/azure-rest-api-specs/tree/main/specification/netapp/resource-manager
Kwestie wymagające rozważenia
Po przekroczeniu limitu interfejsu API kod odpowiedzi HTTP wynosi 429. Na przykład:
"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\"}
Ten kod odpowiedzi może pochodzić z ograniczania przepustowości lub warunku tymczasowego. Aby uzyskać więcej informacji, zobacz Kod odpowiedzi HTTP 429 usługi Azure Resource Manager.
Uzyskiwanie dostępu do interfejsu API REST usługi Azure NetApp Files
Zainstaluj interfejs wiersza polecenia platformy Azure, jeśli jeszcze tego nie zrobiono.
Utwórz jednostkę usługi w identyfikatorze Entra firmy Microsoft:
Sprawdź, czy masz wystarczające uprawnienia.
Wprowadź następujące polecenie w interfejsie wiersza polecenia platformy Azure:
az ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role Contributor --scopes /subscriptions/{subscription-id}
Dane wyjściowe polecenia są podobne do następującego przykładu:
{ "appId": "appIDgoeshere", "displayName": "APPNAME", "name": "http://APPNAME", "password": "supersecretpassword", "tenant": "tenantIDgoeshere" }
Zachowaj dane wyjściowe polecenia. Będą potrzebne
appId
wartości ,password
itenant
.
Zażądaj tokenu dostępu OAuth:
Przykłady w tym artykule używają biblioteki cURL. Można również użyć różnych narzędzi interfejsu API, takich jak Postman, Bezsenność i Paw.
Zastąp zmienne w poniższym przykładzie danymi wyjściowymi polecenia z kroku 2 powyżej.
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
Dane wyjściowe zawierają token dostępu podobny do następującego przykładu:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9
Wyświetlany token jest ważny przez 3600 sekund. Następnie należy zażądać nowego tokenu. Zapisz token w edytorze tekstów. Będzie potrzebny do następnego kroku.
Wyślij wywołanie testowe i dołącz token, aby zweryfikować dostęp do interfejsu API REST:
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
Przykłady przy użyciu interfejsu API
W tym artykule użyto następującego adresu URL dla punktu odniesienia żądań. Ten adres URL wskazuje katalog główny przestrzeni nazw usługi Azure NetApp Files.
https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2022-05-01
W poniższych przykładach należy zastąpić SUBIDGOESHERE
wartości i RESOURCEGROUPGOESHERE
własnymi wartościami.
Przykłady żądań GET
Żądanie GET służy do wykonywania zapytań dotyczących obiektów usługi Azure NetApp Files w ramach subskrypcji, jak pokazano w poniższych przykładach:
#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
Przykłady żądań PUT
Użyjesz żądania PUT, aby utworzyć nowe obiekty w usłudze Azure NetApp Files, jak pokazano w poniższych przykładach. Treść żądania PUT może zawierać dane sformatowane w formacie JSON dla zmian. Musi zostać uwzględniony w poleceniu curl jako tekst lub odwołania jako plik. Aby odwołać się do treści jako pliku, zapisz przykład json w pliku i dodaj -d @<filename>
go do polecenia curl.
#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
Przykłady JSON
W poniższym przykładzie pokazano, jak utworzyć konto usługi NetApp:
{
"name": "MYNETAPPACCOUNT",
"type": "Microsoft.NetApp/netAppAccounts",
"location": "westus2",
"properties": {
"name": "MYNETAPPACCOUNT"
}
}
W poniższym przykładzie pokazano, jak utworzyć pulę pojemności:
{
"name": "MYNETAPPACCOUNT/POOLNAME",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools",
"location": "westus2",
"properties": {
"name": "POOLNAME",
"size": "4398046511104",
"serviceLevel": "Premium"
}
}
W poniższym przykładzie pokazano, jak utworzyć nowy wolumin. (Domyślnym protokołem woluminu jest 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"
}
}
W poniższym przykładzie pokazano, jak utworzyć migawkę woluminu:
{
"name": "apitest2/apiPool01/apiVol01/snap02",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools/Volumes/Snapshots",
"location": "westus2",
"properties": {
"name": "snap02",
"fileSystemId": "0168704a-bbec-da81-2c29-503825fe7420"
}
}
Uwaga
Musisz określić fileSystemId
, czy chcesz utworzyć migawkę. Wartość można uzyskać fileSystemId
za pomocą żądania GET do woluminu.