创建Azure容器实例时附加子网和vnet配置的挑战。
我正在尝试使用Azure SDK-Java / .Net创建Azure容器实例。此容器需要与不同VM之间的组件进行通信。我可以使用带有vnet和子网配置的Azure CLI命令来实现此目的。但是无法通过SDK复制相同内容。
Java中的代码段
ContainerGroup containerGroup = azure.containerGroups().define(aciName).withRegion(Region.EUROPE_NORTH)
.withExistingResourceGroup(rgName).withLinux()
.withPrivateImageRegistry(registryServer, registryServerName, registryServerKey)
.defineVolume(volumeMountName).withExistingReadOnlyAzureFileShare(fileShareName)
.withStorageAccountName(storageAccountName).withStorageAccountKey(storageAccountKey).attach()
.defineContainerInstance(aciName).withImage(containerImageName).withExternalTcpPort(80)
.withVolumeMountSetting(volumeMountName, volumeMountPath).withCpuCoreCount(1)
.withMemorySizeInGB(1.5).withEnvironmentVariable("APP_PATH", volumeMountPath)
.withStartingCommandLine(commandLineArgs.toString()).attach().withDnsPrefix(aciName)
.withRestartPolicy(ContainerGroupRestartPolicy.NEVER).create();
Azure CLI
az容器create --resource-group --name --image --cpu 1-内存1.5 --registry-login-server --registry用户名--registry密码--azure文件容量共享名 --azure文件卷帐户名称> --azure文件卷帐户密钥--azure文件卷安装路径--restart-policy从不--e --subnet --subnet-地址前缀--vnet --vnet名称--subscription -命令行“”
在创建Azure容器实例时无法附加vnet和子网配置。
答案 0 :(得分:0)
不幸的是,Java当前似乎不支持在Vnet中部署ACI。您可以在Github中查看issue。
如果您看一下可以实现此功能的CLI命令,那么您会发现该命令实际上是使用Azure REST API来完成的。
在请求中,它使用子网网络配置文件设置了容器组属性networkProfile
。因此,如果您真的想在Vnet中部署ACI,则可以使用Azure REST API for Container Instance在Java代码中实现它。