我正在尝试创建一个具有两个地址空间(10.0.0.0/20 和 10.0.16.0/20)的全新网络,最重要的是,设置useInVmCreationPermission
和usePublicIpAddressPermission
to Allow
。
我已经创建了实验室,并且可以创建网络,但无法将它们相互关联。我不确定是否可以通过 REST API,但如果门户网站可以做到,我很确定它可以实现(即使我必须使用 HttpClient)。它在 Azure 门户中的完成方式如下所述:https ://docs.microsoft.com/en-us/azure/devtest-labs/devtest-lab-configure-vnet 。
这是我的代码:
private async Task Create(IAzure azureClient, DbLab dbLab)
{
var virtualNetworkId = Guid.NewGuid().ToString();
var virtualNetwork = await azureClient
.Networks
.Define(virtualNetworkId)
.WithRegion(dbLab.Region.Value)
.WithExistingResourceGroup(dbLab.ResourceGroupName)
.WithAddressSpace(Consts.IPv4DynamicAddressSpace)
.WithAddressSpace(Consts.IPv4StaticAddressSpace)
.WithSubnet($"{virtualNetworkId}_dynamic", Consts.IPv4DynamicAddressSpace)
.WithSubnet($"{virtualNetworkId}_static", Consts.IPv4StaticAddressSpace)
.CreateAsync();
var fragment = new VirtualNetworkFragment(
subnetOverrides: virtualNetwork.Subnets.Select(s =>
new SubnetOverrideFragment(
resourceId: s.Value.Name,
useInVmCreationPermission: "Allow",
usePublicIpAddressPermission: "Allow")).ToList());
// fails because vnet is not related to that lab
var vnet = await BaseClientFactory.CreateDevTestLabClient(azureClient)
.VirtualNetworks
.UpdateAsync(dbLab.ResourceGroupName, dbLab.LabId.ToString(), virtualNetworkId, fragment);
}
如何在 c# 中以编程方式将实验室附加到 vnet?