Sdílet prostřednictvím


Vývoj pro Azure NetApp Files pomocí rozhraní REST API

Rozhraní REST API pro službu Azure NetApp Files určuje operace HTTP pro prostředky, jako je účet NetApp, fond kapacity, svazky a snímky. Tento článek vám pomůže začít používat rozhraní REST API služby Azure NetApp Files.

Specifikace rozhraní REST API služby Azure NetApp Files

Specifikace rozhraní REST API pro Azure NetApp Files se publikuje prostřednictvím GitHubu:

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

Úvahy

  • Po překročení limitu rozhraní API je kód odpovědi HTTP 429. Například:

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

    Tento kód odpovědi může pocházet z omezování rychlosti nebo dočasného stavu. Další informace najdete v kódu odpovědi HTTP 429 v Azure Resource Manageru .

Přístup k rozhraní REST API služby Azure NetApp Files

  1. Pokud jste to ještě neudělali, nainstalujte Azure CLI .

  2. Ve svém ID Microsoft Entra vytvořte služební účet:

    1. Ověřte, že máte dostatečná oprávnění.

    2. Do Azure CLI zadejte následující příkaz:

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

      Výstup příkazu je podobný následujícímu příkladu:

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

      Ponechte výstup příkazu. Budete potřebovat hodnoty appId, password a tenant.

  3. Vyžádání přístupového tokenu OAuth:

    Příklady v tomto článku používají cURL. Můžete také použít různé nástroje rozhraní API, jako jsou Postman, Insomnia a Paw.

    Nahraďte proměnné v následujícím příkladu výstupem příkazu z kroku 2 výše.

    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
    

    Výstup poskytuje přístupový token podobný následujícímu příkladu:

    eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9

    Zobrazený token je platný po dobu 3600 sekund. Potom musíte požádat o nový token. Uložte token do textového editoru. Budete ho potřebovat pro další krok.

  4. Odešlete testovací volání a zahrňte token, který ověří váš přístup k rozhraní REST API:

    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
    

Příklady použití rozhraní API

Tento článek používá následující adresu URL jako základ pro požadavky. Tato adresa URL odkazuje na kořen oboru názvů služby Azure NetApp Files.

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

Měli byste nahradit hodnoty SUBIDGOESHERE a RESOURCEGROUPGOESHERE ve následujících příkladech vlastními hodnotami.

Příklady požadavků GET

Požadavek GET použijete k dotazování objektů služby Azure NetApp Files v předplatném, jak ukazuje následující příklady:

#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

Příklady požadavků PUT

Požadavek PUT použijete k vytvoření nových objektů ve službě Azure NetApp Files, jak ukazuje následující příklady. Text požadavku PUT může obsahovat data ve formátu JSON pro změny. Musí být zahrnuto v příkazu curl jako text nebo jako odkaz na soubor. Pokud chcete odkazovat na tělo jako soubor, uložte příklad JSON do souboru a přidejte -d @<filename> ho do příkazu 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

Příklady JSON

Následující příklad ukazuje, jak vytvořit účet NetApp:

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

Následující příklad ukazuje, jak vytvořit fond kapacity:

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

Následující příklad ukazuje, jak vytvořit nový svazek. (Výchozím protokolem pro svazek je 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"
         }
}

Následující příklad ukazuje, jak vytvořit snímek svazku:

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

Poznámka:

Je potřeba zadat fileSystemId pro vytvoření snímku. Hodnotu fileSystemId můžete získat pomocí požadavku GET na svazek.

Další kroky