c# - 使用 Azure SDK 向网络子网添加多个地址前缀
问题描述
我有带有子网的现有网络,它指定了其 IPV4 地址前缀。在 C# 中使用 Azure SDK 我需要添加额外的 IPV6 地址前缀而不删除现有的。我设法在门户中使用 Microsoft REST API 做到了这一点,但我的目标是使用他们的 SDK 来实现它。这是我到目前为止写的一段代码:
await networkToUpdate.Update()
.UpdateSubnet(network.SubnetAzureId)
.WithAddressPrefix("10.0.0.0/21")
.WithAddressPrefix("ace:cab:dca:deed::/64")
.Parent()
.ApplyAsync();
不幸的是,它只允许设置一个地址前缀,在这种情况下是 IPV6。有没有办法通过 SDK 添加两个地址前缀?
解决方案
请使用以下代码:
var clientId = "xxx";
var clientSecret = "xxx";
var tenantId = "xxx";
var creds = SdkContext.AzureCredentialsFactory.FromServicePrincipal(clientId, clientSecret, tenantId, AzureEnvironment.AzureGlobalCloud);
var azure = Azure.Configure()
.Authenticate(creds)
.WithDefaultSubscription();
var myvnet = azure.Networks.GetById("/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Network/virtualNetworks/xxx");
//use the code below to update multi address prefixes
IList<string> list = new List<string>() { "172.18.3.0/24", "ace:cab:dca:deed::/64" };
myvnet.Subnets["the_subnet_name"].Inner.AddressPrefix = "";
myvnet.Subnets["the_subnet_name"].Inner.AddressPrefixes = list;
myvnet.Update().Apply();
测试结果:
如果您对此仍有疑问,请告诉我。
推荐阅读
- c# - C# 代码总是从 DateTime.TryParseExact 方法返回 false
- telerik - 在 sitefinity 的内容类型 -> 模块名称中找不到同步的共享点文档以进行编辑
- jmeter - 想要在具有监听器的 JMeter 中执行 TestPlan 并同时生成报告
- javascript - 如何修复“无效的调用对象”
- c# - Swagger codegen 省略空字符串
- json - 如何从 Druid 摄取规范 json 文件中获取模式名称/数据库名称?
- android - Android:无限循环运行图像分类器
- reactjs - 使用 Typescript 时 React.memo 不可用?
- android - 为什么 place.latLng 返回 null?
- phpmailer - phpmailer:如何使用 phpmailer 在网站上给予适当的信任