我有以下 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