当前位置: 首页 > 知识库问答 >
问题:

如何使用Azure SDK在java中使用容器实例连接专用vnet或子网?

程禄
2023-03-14

创建azure容器实例时连接子网和vnet配置时遇到的难题。

我正在尝试使用AzureSDK-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容器创建--资源组--名称--映像--cpu 1--内存1.5--注册表登录服务器--注册表用户名--注册表密码--azure文件卷共享名称--azure文件卷帐户名称

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

共有1个答案

公羊涛
2023-03-14

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

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

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

 类似资料:
  • 我正在尝试构建一个应用程序的简化示例,它使用用户名和密码身份验证来连接到Cassandra。为此,我修改了<code>docker-compose。yml来自https://hub.docker.com/r/bitnami/cassandra/如下所示: 我的目录结构在哪里 多级是 < code>main.go尝试使用< code>gocql创建Cassandra会话: 用户名和密码都已设置为默认

  • 问题内容: 连接到在Amazon EC2集群中运行的Java应用程序时遇到问题。我们绝对允许“ JMX端口”(通常是RMI注册表端口) 和 服务器端口(完成大部分工作)都进入所讨论实例的安全组。Jconsole连接但似乎挂起并且从不显示任何信息。 我们正在使用以下内容运行我们的java: 我们尝试过: Telnet 连接 到端口,但不显示任何信息。 我们可以在ssh上使用remote-X11在实例

  • 我们在连接到运行在AmazonEC2集群中的Java应用程序时遇到了问题。我们明确地允许“JMX端口”(它通常是RMI注册表端口)和服务器端口(它完成了大部分工作)对所讨论的实例的安全组。Jconsole连接但似乎挂起并且从未显示任何信息。 Telnets连接到端口,但不显示任何信息。 我们可以通过ssh使用remote-X11在实例本身上运行,它可以连接并显示信息。因此JRE将其导出到本地。 打

  • 问题内容: 我这样做是为了连接cassandra。但是我的代码返回了错误。这是我的代码 这是错误日志.. 无法在项目CassandraConnection上执行目标:无法解析项目com.mycompany:CassandraConnection:jar:1.0-SNAPSHOT的依赖项:无法解析以下工件:org.specs2:scalaz- effect_2.11.0-SNAPSHOT:jar:7

  • 有关错误和可能的解决方案的更多信息,请阅读以下文章:[Help 1]http://cwiki.apache.org/confluence/display/maven/dependencyresolutionException

  • 我正在尝试使用guice,我想在JavaPlay2.6中创建一个单例随机webservice客户端 现在我有了WS-client,它作为java播放模块加载。当我运行应用程序时,没有问题,我的客户机能够使用java play配置(),这是注入的。但是如果我尝试在其他任何地方使用我的客户机,我会得到一个错误,说。 这是我的(非常简单的)客户: 实现Guice的AbstractModule的我的模块: