0

在创建 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 container create --resource-group --name --image --cpu 1 --memory 1.5 --registry-login-server --registry-username --registry-password --azure-file-volume-share-name --azure-file-volume-account-name > --azure-file-volume-account-key --azure-file-volume-mount-path --restart-policy 从不 --e --subnet --subnet-地址前缀 --vnet --vnet-name --subscription --command-line ""

创建 azure 容器实例时无法附加 vnet 和子网配置。

4

1 回答 1

0

不幸的是,Java 目前似乎不支持在 Vnet 中部署 ACI。您可以在 Github 中查看问题。

如果您查看可以实现它的 CLI 命令,您会发现该命令实际上使用 Azure REST API 来执行此操作。

在此处输入图像描述

在请求中,它networkProfile使用子网网络配置文件设置容器组属性。因此,如果您真的想在 Vnet 中部署 ACI,您可以使用Azure REST API for Container Instance在 Java 代码中实现它。

于 2019-05-10T09:42:11.897 回答