AzureBlobStorageOnIoTEdge:未指定错误目标容器连接,上传已关闭

问题描述

我的本​​地 blob 存储没有将 blob 上传到我的云存储帐户。它报告回来

        "configurationValidation": {
            "deviceAutoDeleteProperties": {
                "deleteOn": {
                    "Status": "Success"
                },"deleteAfterMinutes": {
                    "Status": "Warning","Message": "Auto Delete after minutes value not specified,auto deletion turned off."
                },"retainWhileUploading": {
                    "Status": "Success"
                }
            },"devicetoCloudUploadProperties": {
                "uploadOn": {
                    "Status": "Success"
                },"cloudStorageAccountName": {
                    "Status": "Error","Message": "Target container connection not specified,upload turned off."
                },"cloudStorageAccountKey": {
                    "Status": "Error","uploadOrder": {
                    "Status": "Success"
                },"deleteAfterUpload": {
                    "Status": "Success"
                }
            }
        },

我很确定它应该可以工作。我想要的属性

            "devicetoCloudUploadProperties": {
                "uploadOn": true,"uploadOrder": "OldestFirst","cloudStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=*****;AccountKey=******;EndpointSuffix=core.windows.net","storageContainersForUpload": {
                    "***": {
                        "target": "***"
                    }
                },"deleteAfterUpload": true
            }

容器存在于本地和云站点上。我将主连接字符串从本地存储帐户复制到配置中。本地存储正在工作,我可以看到我的容器已创建并包含数据,但它不想与云同步。为什么说“未指定目标容器连接,上传关闭。”?好像缺少这部分

                "storageContainersForUpload": {
                    "***": {
                        "target": "***"
                    }
                },

但显然不是。

我正在使用此服务的最新 docker 映像。有没有机会使用旧版本?几个月前,我已经可以让它工作了。我尝试使用不同的版本,例如 mcr.microsoft.com/azure-blob-storage:1.4.0,但它不接受除最新版本之外的任何其他标签

谢谢!

解决方法

我的本​​地 blob 存储模块的工作版本和我的非工作版本之间的区别在于,非工作版本是由部署计划部署的。在部署计划中,您不能像 https://docs.microsoft.com/en-us/azure/iot-edge/how-to-deploy-blob?view=iotedge-2020-11

那样在 IoT 边缘粘贴 blob 存储文档的模块孪生设置

你需要把配置分成两部分,第一部分看起来像这样 enter image description here

第二部分看起来像这样 enter image description here

这完全有道理。如果您想更新您的模块,您可能希望保留您的配置,因为可能已经进行了一些更改,例如由客户。这使您可以稍后将一些属性添加到初始配置中,而无需更改已配置的任何内容。事实上,每台设备都可以随时保持其各自的配置。

我错误配置的报告属性隐藏在建议的默认路径“properties.desired.settings”中,因此边缘运行时无法找到它。