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

  1. Zainstaluj interfejs wiersza polecenia platformy Azure, jeśli jeszcze tego nie zrobiono.

  2. Utwórz jednostkę usługi w identyfikatorze Entra firmy Microsoft:

    1. Sprawdź, czy masz wystarczające uprawnienia.

    2. 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 appIdwartości , passwordi tenant .

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

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

Następne kroki

Zobacz dokumentację interfejsu API REST usługi Azure NetApp Files