Azure 存储不认为我的 iot-hub 是受信任的服务?

Azure storage doesn't consider my iot-hub a trusted service?

我一直在使用 Azure iot-hub 从许多 IoT 设备接收数据,并成功使用 default/built-in 端点读取 data/do 上的工作。我最近想开始保存数据以供将来可能的分析,因此我在同一资源组中创建了一个 Azure 存储帐户。我已经完成了所有关于如何设置路由的演练,并且有一个可以正常运行以将数据发送到 messages/events 内置端点(因为在创建其他路由时它被禁用为默认值)。但是,在我创建到我的存储帐户的路由后,它不会将数据发送到存储,除非我将存储帐户切换为对所有 public 网络开放。

创建存储帐户时,有 3 个网络选项 - "Public, all networks"、"Public, selected networks" 和 "Private"。 Public,所有网络选项是不可接受的,因为我需要数据是私有的。 Private 选项并不是很理想,因为我创建的其他 azure 资源中的 none 当前正在使用虚拟网络,而且似乎需要 vnet 才能与 private 选项一起使用。所以,我选择了 "Public, selected networks" 选项。目前,我没有任何需要授予访问权限的外部 IP,但我只需要 iothub 就可以发送数据。我从一开始就选择了 "Allow trusted Microsoft services access to this storage account" 选项。在我的存储 firewall/virtual 网络设置中,当我将我的存储帐户切换为对所有网络开放时它工作正常,但是当我在选定的网络上设置它并选择受信任的 Microsoft 服务选项时它不起作用。

我想我的问题是: 1. 如果我的 iothub 在同一个资源组中,为什么 azure 不认为它是受信任的服务? 2. 有什么方法可以使我的 iothub 成为可信赖的服务吗? 3. 还有什么我想念的吗?

如有任何想法或建议,我们将不胜感激。

可在此处找到被视为 "Trusted Azure Services" 的服务列表:https://docs.microsoft.com/en-us/azure/storage/common/storage-network-security#trusted-microsoft-services

IoT 中心目前不在列表中。

您可以尝试以下解决方法:

  • 在 IoT 中心创建路由以将流量转发到事件中心
  • 使用事件中心的捕获功能写入存储。根据列表,Event Hub 是受信任的服务。