Azure NetAppFiles SDK NFS 4.1 Sample .NETCore
This project demonstrates how to deploy a volume enabled with NFS 4.1 protocol using dotnet-core language and Azure NetApp Files SDK.
In this sample application we perform the following operations:
- NetApp Files Account
- Capacity Pool
- NFS 4.1 enabled Volume
- Clean up created resources
Note: the clean up execution is commented out by default, if you want to run this end to end with the clean up, please uncomment related lines at program.cs.
If you don't already have a Microsoft Azure subscription, you can get a FREE trial account here.
- Azure Subscription
- Subscription needs to be whitelisted for Azure NetApp Files. For more information, please refer to this document.
- Resource Group created
- Virtual Network with a delegated subnet to Microsoft.Netapp/volumes resource. For more information, please refer to Guidelines for Azure NetApp Files network planning
- For this sample console appplication work, we are using service principal based authenticate, follow these steps in order to setup authentication:
Within an Azure Cloud Shell session, make sure you're logged on at the subscription where you want to be associated with the service principal by default:
az account show
If this is not the correct subscription, use
az account set -s <subscription name or id>
Create a service principal using Azure CLI
az ad sp create-for-rbac --sdk-auth
Note: this command will automatically assign RBAC contributor role to the service principal at subscription level, you can narrow down the scope to the specific resource group where your tests will create the resources.
Copy the output content and paste it in a file called azureauth.json and secure it with file system permissions
Set an environment variable pointing to the file path you just created, here is an example with Powershell and bash: Powershell
[Environment]::SetEnvironmentVariable("AZURE_AUTH_LOCATION", "C:\sdksample\azureauth.json", "User")
Note: for more information on service principal authentication with dotnet, please refer to Authenticate with the Azure Libraries for .NET
What is anf-dotnetcore-sdk-nfs4.1-sample.dll doing?
This sample project is dedicated to demonstrate how to deploy a Volume in Azure NetApp Files that uses NFS v4.1 protocol, similar to other examples, the authentication method is based on a service principal, this project will create a single volume with a single capacity pool using standard service level tier and finally an NFS v4.1 Volume, there is a commented out section to remove created resources, if you want to perform the removal right after the creation operations, just remove the comments. For a more advanced example, please see the first item in the references section of this document.
How the project is structured
The following table describes all files within this solution:
|Root||program.cs||Authenticates and executes all operations|
|Root\Common||ResourceUriUtils.cs||Static class that exposes some methods that helps parsing Uris, building a new Uris or getting a resource name from Uri for example|
|Root\Common||ServicePrincipalAuth.cs||Small static class used when working with Service Principal based authentication|
|Root\Common||Utils.cs||Static class that exposes a few methods that helps on various tasks, like writting a log to the console for example.|
|Root\Model||AzureAuthInfo.cs||Class that defines an Azure AD Service Principal authentication file|
How to run the console application
- Clone it locally
git clone https://github.com/Azure-Samples/netappfiles-dotnetcore-nfs4.1-sdk-sample.git
- Make sure you change the variables located at .netappfiles-dotnetcore-nfs4.1-sdk-sample\src\anf-dotnetcore-sdk-nfs4.1-sample\program.cs at RunAsync method.
- Change folder to .netappfiles-dotnetcore-nfs4.1-sdk-sample\src\anf-dotnetcore-sdk-nfs4.1-sample
- Since we're using service principal authentication flow, make sure you have the azureauth.json and its environment variable with the path to it defined (as previously described)
- Build the console application
- Run the console application