r - 唯一标识 VM 实例(Azure ML - Web 服务)

标签 r web-services azure azure-machine-learning-service

我将其作为“探索”问题发布,并计划扩大讨论,以防出现一些兴趣。其背后的原因是,根据我的经验,azure-ml(及相关)上的 SO 社区仍在发展中,没有太多反馈 - 但我很乐意帮助它变得更强大。

我的情况如下:我在 Azure ML 中进行了一项实验,该实验在 R 模块内完成所有工作。我将其发布为 Web 服务,并将“最大并发调用” slider 设置为 10 - 我相信这可以保证我的 Web 服务最多有 10 个实例随时启动并运行,以服务请求(请纠正我)如果我错了)。

现在,我尝试通过向我的 Web 服务发起 10 个并行调用来进行一些性能测试,但得到了意外的结果...

我正在尝试运行负载测试并记录每个测试实际到达的位置(哪个实例)。我的想法是了解负载均衡器在一定的最大并发调用数 = X 的情况下如何将这些调用实际分发到实例。我通过从内部触发对“bot.whatismyipaddress.com”的调用来实现此目的R 脚本。这是代码的重要片段:

library(rjson)
machine.ip <- readLines("http://bot.whatismyipaddress.com/", warn=F)
result$MachineIP <- machine.ip

此外,我还使用 Web 服务 RRS 帮助页面中的示例 R 代码对我的 Web 服务发起最多 70 个(连续)调用。此示例代码将一些信息返回到控制台:我的 Web 服务的结果以及有关调用所经过的主机名的一些信息。这是一个示例:

* Hostname was NOT found in DNS cache
*   Trying 40.114.242.9...
* Connected to europewest.services.azureml.net (40.114.242.9) port 443 (#0)

我面临的困难是我无法唯一标识我的网络服务的不同实例。从调用输出到控制台的信息(第二个片段)通常显示的 IP 地址与内部 R 代码日志 (result$MachineIP) 中的 IP 地址不同。 .

有人可以指出我做错了什么,以及我如何唯一地识别正在服务调用的不同实例?任何帮助将非常感激。谢谢!

附注我试过this同样,但是从 R 脚本内部调用第一个 Apporach 时它不起作用,并且我正在使用第二个 Apporach 的修改版本(建议的那个 Apporach 不起作用)。 Here也是我的questions在 Azure 论坛上,以防有人感兴趣。

如果有人可以帮助我或向我指出一些信息来源,我将非常感激!

最佳答案

感谢 Azure ML 论坛上的一些人解决了这个问题,因此 我将为所有登陆此处寻找答案的人发布答案...

简短的回答是否定的,这是不可能的。更详细的版本是:
“在 R 脚本中,您无法识别内部 AzureML IP 地址或唯一的 Web 服务实例。当您从 R 脚本向外部 URL 发出外部网络调用时,该 URL 会将 AzureML 公共(public)虚拟 IP 之一视为源 IP。这些是负载均衡器的 IP,而不是物理运行 Web 服务的计算机的 IP。AzureML 在后端动态分配 R 引擎的实例、处理故障,并使用多个节点来运行 Web 服务,以实现高速运行。可用性。给定 Web 服务的确切布局无法通过编程方式发现。”
这也是link到原来的讨论。

关于r - 唯一标识 VM 实例(Azure ML - Web 服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34335483/

相关文章:

r - 对于需要条件检查的东西,有没有比 while 循环更有效的方法?

r - 使用 map2_dfr 将数据 bind_cols 在一起

azure - API 连接 - ARM 模板中的用户名和密码

r - 通过R中的for循环将多个图表保存在1个pdf页面中

r - 与 rpath 的动态链接在 Ubuntu 17.10 下不起作用

php - 有没有更好的方法使用 JSON 或其他方式上传记录集?

c# - 如果我正在使用的 Web 服务超时,会抛出什么异常?

java - Jersey 记录过滤器

Azure数据工厂工作分支困惑

sql-server - 如何查看 Sql Azure 上的关系?