REST API를 사용한 Azure NetApp Files용 개발
Azure NetApp Files 서비스용 REST API는 NetApp 계정, 용량 풀, 볼륨 및 스냅샷과 같은 리소스에 대한 HTTP 작업을 정의합니다. 이 문서는 Azure NetApp Files REST API 사용을 시작하는 데 도움이 됩니다.
Azure NetApp Files REST API 사양
Azure NetApp Files용 REST API 사양은 GitHub를 통해 게시됩니다.
https://github.com/Azure/azure-rest-api-specs/tree/main/specification/netapp/resource-manager
고려 사항
API 제한을 초과하는 경우 HTTP 응답 코드는 429입니다. 예시:
"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\"}
이 응답 코드는 제한 또는 임시 상태에서 발생할 수 있습니다. 자세한 내용은 Azure Resource Manager HTTP 429 응답 코드를 참조하세요.
Azure NetApp Files REST API 액세스
아직 설치하지 않은 경우 Azure CLI를 설치합니다.
Microsoft Entra ID에서 서비스 주체를 만듭니다.
충분한 권한이 있는지 확인합니다.
Azure CLI에서 다음 명령을 입력합니다.
az ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role Contributor --scopes /subscriptions/{subscription-id}
명령 출력은 다음 예제와 유사합니다.
{ "appId": "appIDgoeshere", "displayName": "APPNAME", "name": "http://APPNAME", "password": "supersecretpassword", "tenant": "tenantIDgoeshere" }
명령 출력을 보관합니다.
appId
,password
및tenant
값이 필요합니다.
OAuth 액세스 토큰을 요청합니다.
이 문서의 예제에서는 cURL을 사용합니다. Postman, Insomnia 및 Paw와 같은 다양한 API 도구를 사용할 수도 있습니다.
다음 예제의 변수를 위 2단계의 명령 출력으로 바꿉니다.
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
출력에서 다음 예제와 유사한 액세스 토큰을 제공합니다.
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSIsImtpZCI6Im5iQ3dXMTF3M1hrQi14VWFYd0tSU0xqTUhHUSJ9
표시된 토큰은 3600초간 유효합니다. 그 후에는 새 토큰을 요청해야 합니다. 텍스트 편집기에 토큰을 저장합니다. 이 토큰은 다음 단계에서 필요합니다.
테스트 호출을 보내고 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
API 사용 예제
이 문서에서는 요청 기준선으로 다음 URL을 사용합니다. 이 URL은 Azure NetApp Files 네임스페이스의 루트를 가리킵니다.
https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2022-05-01
다음 예제의 SUBIDGOESHERE
및 RESOURCEGROUPGOESHERE
값을 사용자 고유의 값으로 바꾸어야 합니다.
GET 요청 예제
다음 예제와 같이 GET 요청을 사용하여 구독에서 Azure NetApp Files의 개체를 쿼리합니다.
#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 요청 예제
다음 예제와 같이 PUT 요청을 사용하여 Azure NetApp Files에 새 개체를 만듭니다. PUT 요청의 본문에는 변경 내용에 대한 JSON 형식의 데이터가 포함될 수 있습니다. curl 명령에 텍스트로 포함되거나 파일로 참조되어야 합니다. 본문을 파일로 참조하려면 json 예제를 파일에 저장하고 curl 명령에 -d @<filename>
을(를) 추가합니다.
#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 예시
다음 예제에서는 NetApp 계정을 만드는 방법을 보여 줍니다.
{
"name": "MYNETAPPACCOUNT",
"type": "Microsoft.NetApp/netAppAccounts",
"location": "westus2",
"properties": {
"name": "MYNETAPPACCOUNT"
}
}
다음 예제에서는 용량 풀을 만드는 방법을 보여 줍니다.
{
"name": "MYNETAPPACCOUNT/POOLNAME",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools",
"location": "westus2",
"properties": {
"name": "POOLNAME",
"size": "4398046511104",
"serviceLevel": "Premium"
}
}
다음 예제에서는 새 볼륨을 만드는 방법을 보여 줍니다. 볼륨의 기본 프로토콜은 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"
}
}
다음 예제에서는 볼륨의 스냅샷을 만드는 방법을 보여 줍니다.
{
"name": "apitest2/apiPool01/apiVol01/snap02",
"type": "Microsoft.NetApp/netAppAccounts/capacityPools/Volumes/Snapshots",
"location": "westus2",
"properties": {
"name": "snap02",
"fileSystemId": "0168704a-bbec-da81-2c29-503825fe7420"
}
}
참고 항목
스냅샷을 만들려면 fileSystemId
를 지정해야 합니다. 볼륨에 대한 GET 요청을 사용하여 fileSystemId
값을 얻을 수 있습니다.