首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >亚马逊EC2 PublicDnsName

亚马逊EC2 PublicDnsName
EN

Stack Overflow用户
提问于 2012-07-20 15:19:14
回答 1查看 166关注 0票数 1

如何在amazonEC2中获取PublicDnsName?我们可以使用ins.getPublicDnsName()从实例中获取它,但它是在特定时间之后创建的,有没有其他方法可以获取它?或者一些如何在生成后立即获取它?为了让它等待,我做到了

代码语言:javascript
运行
复制
while(flag) {
              time = System.currentTimeMillis() - start;
              for (Reservation res : ec2.describeInstances().getReservations()) {
                 for (Instance ins : res.getInstances()) {
                     if(ins.getState().getName().equalsIgnoreCase("running") || time == MAX_TIME_FOR_THREAD){                        
                         System.out.println(ins.getPublicDnsName()+"#########"+ins.getInstanceId());
                         flag = false;
                         break;
                     }
                 }

                }                        
          }

但是在线程的运行中,当我创建多个ec2资源时,它会多次返回first up机器的dns,而我觉得它应该返回不同的dns地址。

EN

回答 1

Stack Overflow用户

发布于 2012-07-20 15:36:17

在实例转换到“Running”状态和正在分配的公共IP地址(以及公共DNS名称)之间总是会有轻微的延迟-如果您还在自动分配弹性IP,则会有更长的延迟。在繁忙的集群上,它可以从一两秒到5-10秒不等。

你别无选择,只能在查询应用程序接口之前检测到'Running‘状态后引入一个短暂的延迟--尽管在你的代码中,你实际上并没有等待足够长的时间让实例进入'Running’状态,只是点击了MAX_TIME_FOR_THREAD,有趣的是,它会返回检索到的最后一个DNS名称。这实际上可能是您正在使用的API中的一个小故障。

在我的启动器(针对.NET应用程序接口编写的)中,我有一个多线程的分段循环,它启动实例,然后休眠等待每个实例注册为“运行”,然后再休眠等待IP地址填充。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11574670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档