public async Task CreateOrUpdate() { #region Snippet:Managing_Sql_CreateAManagedInstance //1. create NetworkSecurityGroup NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData() { Location = AzureLocation.WestUS2, }; string networkSecurityGroupName = "myNetworkSecurityGroup"; var networkSecurityGroup = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(true, networkSecurityGroupName, networkSecurityGroupData); //2. create Route table RouteTableData routeTableData = new RouteTableData() { Location = AzureLocation.WestUS2, }; string routeTableName = "myRouteTable"; var routeTable = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(true, routeTableName, routeTableData); //3. create vnet(subnet binding NetworkSecurityGroup and RouteTable) var vnetData = new VirtualNetworkData() { Location = AzureLocation.WestUS2, AddressSpace = new AddressSpace() { AddressPrefixes = { "10.10.0.0/16", } }, Subnets = { new SubnetData() { Name = "ManagedInstance", AddressPrefix = "10.10.2.0/24", Delegations = { new Delegation() { ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", Type = "Microsoft.Sql" } }, RouteTable = new RouteTableData() { Id = routeTable.Value.Data.Id.ToString() }, NetworkSecurityGroup = new NetworkSecurityGroupData() { Id = networkSecurityGroup.Value.Data.Id.ToString() }, } }, }; string vnetName = "myVnet"; var vnet = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(true, vnetName, vnetData); string subnetId = $"{vnet.Value.Data.Id}/subnets/ManagedInstance"; //4. create ManagedInstance ManagedInstanceData data = new ManagedInstanceData(AzureLocation.WestUS2) { AdministratorLogin = "******", AdministratorLoginPassword = "******", SubnetId = subnetId, PublicDataEndpointEnabled = false, MaintenanceConfigurationId = "/subscriptions/0000-0000-0000-0000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default", ProxyOverride = new ManagedInstanceProxyOverride("Proxy") { }, TimezoneId = "UTC", StorageAccountType = new StorageAccountType("GRS"), ZoneRedundant = false, }; string managedInstanceName = "myManagedInstance"; var managedInstanceLro = await resourceGroup.GetManagedInstances().CreateOrUpdateAsync(true, managedInstanceName, data); ManagedInstance managedInstance = managedInstanceLro.Value; #endregion }
/// <summary> /// create a defaut managed instance. /// defaut vnet AddressPrefixes = 10.10.0.0/16 /// </summary> /// <param name="managedInstanceName"></param> /// <param name="location"></param> /// <param name="resourceGroup"></param> /// <returns></returns> protected async Task <ManagedInstance> CreateDefaultManagedInstance(string managedInstanceName, string networkSecurityGroupName, string routeTableName, string vnetName, AzureLocation location, ResourceGroup resourceGroup) { //1. create NetworkSecurityGroup NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData() { Location = location, }; var networkSecurityGroup = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(true, networkSecurityGroupName, networkSecurityGroupData); //2. create Route table RouteTableData routeTableData = new RouteTableData() { Location = location, }; var routeTable = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(true, routeTableName, routeTableData); //3. create vnet(subnet bind NetworkSecurityGroup and RouteTable) var vnetData = new VirtualNetworkData() { Location = location, AddressSpace = new AddressSpace() { AddressPrefixes = { "10.10.0.0/16", } }, Subnets = { new SubnetData() { Name = "subnet01", AddressPrefix = "10.10.1.0/24", }, new SubnetData() { Name = "ManagedInstance", AddressPrefix = "10.10.2.0/24", Delegations = { new Delegation() { ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", Type = "Microsoft.Sql" } }, RouteTable = new RouteTableData() { Id = routeTable.Value.Data.Id.ToString() }, NetworkSecurityGroup = new NetworkSecurityGroupData() { Id = networkSecurityGroup.Value.Data.Id.ToString() }, } }, }; var vnet = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(true, vnetName, vnetData); string subnetId = $"{vnet.Value.Data.Id}/subnets/ManagedInstance"; //4. create ManagedInstance ManagedInstanceData data = new ManagedInstanceData(location) { AdministratorLogin = $"admin-{managedInstanceName}", AdministratorLoginPassword = CreateGeneralPassword(), SubnetId = subnetId, PublicDataEndpointEnabled = false, MaintenanceConfigurationId = "/subscriptions/db1ab6f0-4769-4b27-930e-01e2ef9c123c/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default", ProxyOverride = new ManagedInstanceProxyOverride("Proxy") { }, TimezoneId = "UTC", StorageAccountType = new StorageAccountType("GRS"), ZoneRedundant = false, }; var managedInstanceLro = await resourceGroup.GetManagedInstances().CreateOrUpdateAsync(true, managedInstanceName, data); var managedInstance = managedInstanceLro.Value; return(managedInstance); }
protected async Task initialize() { ArmClient armClient = new ArmClient(new DefaultAzureCredential()); Subscription subscription = await armClient.GetDefaultSubscriptionAsync(); ResourceGroupCollection rgCollection = subscription.GetResourceGroups(); // With the collection, we can create a new resource group with an specific name string rgName = "myRgName"; AzureLocation location = AzureLocation.WestUS2; ResourceGroup resourceGroup = await rgCollection.CreateOrUpdate(WaitUntil.Completed, rgName, new ResourceGroupData(location)).WaitForCompletionAsync(); this.resourceGroup = resourceGroup; //1. create NetworkSecurityGroup NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData() { Location = AzureLocation.WestUS2, }; string networkSecurityGroupName = "myNetworkSecurityGroup"; var networkSecurityGroup = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(WaitUntil.Completed, networkSecurityGroupName, networkSecurityGroupData); //2. create Route table RouteTableData routeTableData = new RouteTableData() { Location = AzureLocation.WestUS2, }; string routeTableName = "myRouteTable"; var routeTable = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(WaitUntil.Completed, routeTableName, routeTableData); //3. create vnet(subnet binding NetworkSecurityGroup and RouteTable) var vnetData = new VirtualNetworkData() { Location = AzureLocation.WestUS2, Subnets = { new SubnetData() { Name = "ManagedInstance", AddressPrefix = "10.10.2.0/24", Delegations = { new Delegation() { ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", ResourceType = "Microsoft.Sql" } }, RouteTable = new RouteTableData() { Id = routeTable.Value.Data.Id.ToString() }, NetworkSecurityGroup = new NetworkSecurityGroupData() { Id = networkSecurityGroup.Value.Data.Id.ToString() }, } }, }; vnetData.AddressPrefixes.Add("10.10.0.0/16"); string vnetName = "myVnet"; var vnet = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(WaitUntil.Completed, vnetName, vnetData); string subnetId = $"{vnet.Value.Data.Id}/subnets/ManagedInstance"; //4. create ManagedInstance ManagedInstanceData data = new ManagedInstanceData(AzureLocation.WestUS2) { AdministratorLogin = "******", AdministratorLoginPassword = "******", SubnetId = subnetId, PublicDataEndpointEnabled = false, MaintenanceConfigurationId = "/subscriptions/0000-0000-0000-0000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default", ProxyOverride = new ManagedInstanceProxyOverride("Proxy") { }, TimezoneId = "UTC", StorageAccountType = new StorageAccountType("GRS"), ZoneRedundant = false, }; string managedInstanceName = "myManagedInstance"; var managedInstanceLro = await resourceGroup.GetManagedInstances().CreateOrUpdateAsync(WaitUntil.Completed, managedInstanceName, data); managedInstance = managedInstanceLro.Value; }