Vývoj pro službu Azure NetApp Files s využitím rozhraní REST API
Účet REST API služby Azure NetApp Files definuje operace HTTP s prostředky, jako je účet NetApp, fond kapacity, svazky a snímky. Tento článek vám pomůže začít s používáním Azure NetApp Files REST API.
Azure NetApp Files REST API specifikace
Specifikace REST API pro Azure NetApp Files se publikuje prostřednictvím GitHub:
https://github.com/Azure/azure-rest-api-specs/tree/master/specification/netapp/resource-manager
Požadavky
Při 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 počítá s omezením nebo dočasným stavem. Další Azure Resource Manager v tématu Kód odpovědi HTTP 429.
Přístup k Azure NetApp Files REST API
Pokud jste to ještě neudělali, nainstalujte Azure CLI.
Vytvořte instanční objekt v Azure Active Directory (Azure AD):
Ověřte, že máte dostatečná oprávnění.
V Azure CLI zadejte následující příkaz:
az ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role ContributorVýstup příkazu je podobný následujícímu příkladu:
{ "appId": "appIDgoeshere", "displayName": "APPNAME", "name": "http://APPNAME", "password": "supersecretpassword", "tenant": "tenantIDgoeshere" }Zachov si výstup příkazu. Budete potřebovat hodnoty
appIdpassword, atenant.
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 je Postman, Režimu spánkua Paw.
Proměnné v následujícím příkladu nahraďte 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/tokenVýstup poskytuje přístupový token podobný následujícímu příkladu:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9Zobrazený token je platný po dobu 3 600 sekund. Potom budete muset požádat o nový token. Uložte token do textového editoru. Budete ho potřebovat v dalším kroku.
Odešlete testovací volání a zahrnovat token pro ověření přístupu k 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=2019-11-01
Příklady použití rozhraní API
Tento článek používá pro směrný plán požadavků následující adresu URL. Tato adresa URL odkazuje na kořen oboru Azure NetApp Files názvů.
https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2019-11-01
Hodnoty a v následujících příkladech byste měli nahradit SUBIDGOESHERE RESOURCEGROUPGOESHERE vlastními hodnotami.
Příklady požadavků GET
Požadavek GET použijete k dotazování objektů Azure NetApp Files v předplatném, jak ukazují 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=2019-11-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=2019-11-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=2019-11-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=2019-11-01
Příklady požadavků PUT
Požadavek PUT použijete k vytvoření nových objektů v Azure NetApp Files, jak ukazují následující příklady. Text požadavku PUT může obsahovat data ve formátu JSON pro změny. Musí být součástí příkazu curl jako text nebo odkazy jako soubor. Pokud chcete na text odkazovat jako na 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=2019-11-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=2019-11-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=2019-11-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=2019-11-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í protokol svazku 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 fileSystemId zadat pro vytvoření snímku. Hodnotu můžete získat fileSystemId pomocí požadavku GET na svazek.