使用 C# 使用 VNet 创建 Azure 容器实例



我有以下 powershell 命令,用于创建具有 1 个容器实例的 Azure 容器组:

az container create 
-g $(ResourceGroup) 
--name $(ContainerName) 
--image $(DockerImage) 
--cpu 2 --memory 8 
--restart-policy OnFailure 
--vnet $(VNet) 
--subnet $(VNetSubnet) 
--registry-username $(RepositoryUserName) 
--registry-password $(RepositoryPassword)

我正在尝试使用基于此示例代码的 .NET 客户端库执行相同的操作:

var containerGroup = _azure.ContainerGroups
.Define(agentName) 
.WithRegion(resourceGroup.Region)
.WithExistingResourceGroup(resourceGroup.Name)
.WithLinux()
.WithPrivateImageRegistry("xxx.azurecr.io", "xxx", "xxx")
.WithoutVolume()
.DefineContainerInstance(agentName)
.WithImage(args.DockerImageName)
.WithExternalTcpPort(80)
.WithCpuCoreCount(args.CpuCoreCount)
.WithMemorySizeInGB(args.MemorySizeInGB)
.Attach()
.WithTags(tags)
.WithRestartPolicy(ContainerGroupRestartPolicy.Always)
.CreateAsync()

但是我找不到设置 vnet 和子网的方法。如何使用 C# 做到这一点?

不确定,但似乎您无法通过 C# 做到这一点。也许是因为它只是 Azure 容器实例的预览版。可以在整个 Azure 容器实例服务容器组定义中查看可以定义的所有内容。

或者,可以通过 Azure REST API 创建它。请参阅容器组 - 创建或更新,可以配置属性 networkProfile 以在 VNet 中创建容器组。

同时支持VNET

添加网络配置文件

var containerGroup = _azure.ContainerGroups
.Define(agentName) 
.WithRegion(resourceGroup.Region)
.WithExistingResourceGroup(resourceGroup.Name)
.WithLinux()
.WithPrivateImageRegistry("xxx.azurecr.io", "xxx", "xxx")
.WithoutVolume()
.DefineContainerInstance(agentName)
.WithImage(args.DockerImageName)
.WithExternalTcpPort(80)
.WithCpuCoreCount(args.CpuCoreCount)
.WithMemorySizeInGB(args.MemorySizeInGB)
.Attach()
.WithTags(tags)
.WithRestartPolicy(ContainerGroupRestartPolicy.Always)
.WithNetworkProfile(subscriptionId,resourceGroup,"aci-network-profile-vnettest-containersubnet")
.CreateAsync()

配置文件可以使用例如 Azure CLI 获取

az network profile list

相关内容

最新更新