public async Task PuttingItAllTogether() { #region Snippet:Readme_PuttingItAllTogether // First we construct our client ArmClient client = new ArmClient(new DefaultAzureCredential()); // Next we get a resource group object // ResourceGroup is a [Resource] object from above Subscription subscription = await client.GetDefaultSubscriptionAsync(); ResourceGroupCollection resourceGroups = subscription.GetResourceGroups(); ResourceGroup resourceGroup = await resourceGroups.GetAsync("myRgName"); // Next we get the collection for the virtual machines // vmCollection is a [Resource]Collection object from above VirtualMachineCollection virtualMachines = resourceGroup.GetVirtualMachines(); // Next we loop over all vms in the collection // Each vm is a [Resource] object from above await foreach (VirtualMachine virtualMachine in virtualMachines) { // We access the [Resource]Data properties from vm.Data if (!virtualMachine.Data.Tags.ContainsKey("owner")) { // We can also access all operations from vm since it is already scoped for us await virtualMachine.AddTagAsync("owner", "tagValue"); } } #endregion Snippet:Readme_PuttingItAllTogether }
public async Task DeleteVirtualMachine() { #region Snippet:Managing_VirtualMachines_DeleteVirtualMachine ArmClient armClient = new ArmClient(new DefaultAzureCredential()); SubscriptionResource subscription = await armClient.GetDefaultSubscriptionAsync(); // first we need to get the resource group string rgName = "myRgName"; ResourceGroupResource resourceGroup = await subscription.GetResourceGroups().GetAsync(rgName); // Now we get the virtual machine collection from the resource group VirtualMachineCollection vmCollection = resourceGroup.GetVirtualMachines(); string vmName = "myVM"; VirtualMachineResource vm = await vmCollection.GetAsync(vmName); await vm.DeleteAsync(WaitUntil.Completed); #endregion Snippet:Managing_VirtualMachines_DeleteVirtualMachine }
public async Task ListAllVirtualMachines() { #region Snippet:Managing_VirtualMachines_ListAllVirtualMachines ArmClient armClient = new ArmClient(new DefaultAzureCredential()); SubscriptionResource subscription = await armClient.GetDefaultSubscriptionAsync(); // first we need to get the resource group string rgName = "myRgName"; ResourceGroupResource resourceGroup = await subscription.GetResourceGroups().GetAsync(rgName); // Now we get the virtual machine collection from the resource group VirtualMachineCollection vmCollection = resourceGroup.GetVirtualMachines(); // With ListAsync(), we can get a list of the virtual machines AsyncPageable <VirtualMachineResource> response = vmCollection.GetAllAsync(); await foreach (VirtualMachineResource vm in response) { Console.WriteLine(vm.Data.Name); } #endregion Snippet:Managing_VirtualMachines_ListAllVirtualMachines }
public async Task CreateVirtualMachine() { #region Snippet:Managing_VirtualMachines_CreateAVirtualMachine ArmClient armClient = new ArmClient(new DefaultAzureCredential()); SubscriptionResource subscription = await armClient.GetDefaultSubscriptionAsync(); // first we need to get the resource group string rgName = "myRgName"; ResourceGroupResource resourceGroup = await subscription.GetResourceGroups().GetAsync(rgName); // Now we get the virtual machine collection from the resource group VirtualMachineCollection vmCollection = resourceGroup.GetVirtualMachines(); // Use the same location as the resource group string vmName = "myVM"; var input = new VirtualMachineData(resourceGroup.Data.Location) { HardwareProfile = new HardwareProfile() { VmSize = VirtualMachineSizeTypes.StandardF2 }, OSProfile = new OSProfile() { AdminUsername = "******", ComputerName = "myVM", LinuxConfiguration = new LinuxConfiguration() { DisablePasswordAuthentication = true, SshPublicKeys = { new SshPublicKeyInfo() { Path = $"/home/adminUser/.ssh/authorized_keys", KeyData = "<value of the public ssh key>", } } } }, NetworkProfile = new NetworkProfile() { NetworkInterfaces = { new NetworkInterfaceReference() { Id = new ResourceIdentifier("/subscriptions/<subscriptionId>/resourceGroups/<rgName>/providers/Microsoft.Network/networkInterfaces/<nicName>"), Primary = true, } } }, StorageProfile = new StorageProfile() { OSDisk = new OSDisk(DiskCreateOptionTypes.FromImage) { OSType = OperatingSystemTypes.Linux, Caching = CachingTypes.ReadWrite, ManagedDisk = new ManagedDiskParameters() { StorageAccountType = StorageAccountTypes.StandardLRS } }, ImageReference = new ImageReference() { Publisher = "Canonical", Offer = "UbuntuServer", Sku = "16.04-LTS", Version = "latest", } } }; ArmOperation <VirtualMachineResource> lro = await vmCollection.CreateOrUpdateAsync(WaitUntil.Completed, vmName, input); VirtualMachineResource vm = lro.Value; #endregion Snippet:Managing_VirtualMachines_CreateAVirtualMachine }
public async Task MigrationExample() { #region Snippet:Construct_Client ArmClient client = new ArmClient(new DefaultAzureCredential()); #endregion #region Snippet:Create_ResourceGroup Subscription subscription = await client.GetDefaultSubscriptionAsync(); ResourceGroupCollection resourceGroups = subscription.GetResourceGroups(); AzureLocation location = AzureLocation.WestUS2; string resourceGroupName = "QuickStartRG"; ResourceGroupData resourceGroupData = new ResourceGroupData(location); ArmOperation <ResourceGroup> resourceGroupOperation = await resourceGroups.CreateOrUpdateAsync(WaitUntil.Completed, resourceGroupName, resourceGroupData); ResourceGroup resourceGroup = resourceGroupOperation.Value; #endregion #region Snippet:Create_AvailabilitySet string virtualMachineName = "quickstartvm"; AvailabilitySetData availabilitySetData = new AvailabilitySetData(location); AvailabilitySetCollection availabilitySets = resourceGroup.GetAvailabilitySets(); ArmOperation <AvailabilitySet> availabilitySetOperation = await availabilitySets.CreateOrUpdateAsync(WaitUntil.Completed, virtualMachineName + "_aSet", availabilitySetData); AvailabilitySet availabilitySet = availabilitySetOperation.Value; #endregion #region Snippet:Create_Vnet_and_Subnet string virtualNetworkName = "MYVM" + "_vnet"; string subnetName = "mySubnet"; VirtualNetworkData virtualNetworkData = new VirtualNetworkData() { Subnets = { new SubnetData() { Name = subnetName, AddressPrefix = "10.0.0.0/24" } } }; VirtualNetworkCollection virtualNetworks = resourceGroup.GetVirtualNetworks(); virtualNetworkData.AddressPrefixes.Add("10.0.0.0/16"); ArmOperation <VirtualNetwork> virtualNetworkOperation = await virtualNetworks.CreateOrUpdateAsync(WaitUntil.Completed, virtualNetworkName, virtualNetworkData); VirtualNetwork virtualNetwork = virtualNetworkOperation.Value; #endregion #region Snippet:Create_NetworkSecurityGroup string networkSecurityGroupName = virtualMachineName + "_nsg"; NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData() { Location = location }; NetworkSecurityGroupCollection networkSecurityGroups = resourceGroup.GetNetworkSecurityGroups(); ArmOperation <NetworkSecurityGroup> networkSecurityGroupOperation = await networkSecurityGroups.CreateOrUpdateAsync(WaitUntil.Completed, networkSecurityGroupName, networkSecurityGroupData); NetworkSecurityGroup networkSecurityGroup = networkSecurityGroupOperation.Value; #endregion #region Snippet:Create_NetworkInterface string networkInterfaceName = virtualMachineName + "_nic"; NetworkInterfaceIPConfigurationData networkInterfaceIPConfiguration = new NetworkInterfaceIPConfigurationData() { Name = "Primary", Primary = true, Subnet = new SubnetData() { Id = virtualNetwork.Data.Subnets.First().Id }, PrivateIPAllocationMethod = IPAllocationMethod.Dynamic, }; NetworkInterfaceData nicData = new NetworkInterfaceData(); nicData.Location = location; nicData.IPConfigurations.Add(networkInterfaceIPConfiguration); NetworkInterfaceCollection networkInterfaces = resourceGroup.GetNetworkInterfaces(); ArmOperation <NetworkInterface> networkInterfaceOperation = await networkInterfaces.CreateOrUpdateAsync(WaitUntil.Completed, networkInterfaceName, nicData); NetworkInterface networkInterface = networkInterfaceOperation.Value; #endregion #region Snippet:Create_VirtualMachine VirtualMachineData virutalMachineData = new VirtualMachineData(location); virutalMachineData.OSProfile.AdminUsername = "******"; virutalMachineData.OSProfile.AdminPassword = "******"; virutalMachineData.OSProfile.ComputerName = "computer-name"; virutalMachineData.AvailabilitySetId = availabilitySet.Id; NetworkInterfaceReference nicReference = new NetworkInterfaceReference(); nicReference.Id = networkInterface.Id; virutalMachineData.NetworkProfile.NetworkInterfaces.Add(nicReference); VirtualMachineCollection virtualMachines = resourceGroup.GetVirtualMachines(); ArmOperation <VirtualMachine> virtualMachineOperation = await virtualMachines.CreateOrUpdateAsync(WaitUntil.Completed, virtualMachineName, virutalMachineData); VirtualMachine virtualMachine = virtualMachineOperation.Value; Console.WriteLine("VM ID: " + virtualMachine.Id); #endregion }