镜像概述和主要用途
Azure Blob Storage on IoT Edge 提供边缘设备上的块 blob 和追加 blob 存储解决方案。IoT Edge 设备上的 blob 存储模块的行为类似于 Azure blob 服务,但块 blob 或追加 blob 存储在本地 IoT Edge 设备上。您可以使用熟悉的 Azure 存储 SDK 方法或 blob API 调用来访问 blob。
核心功能和特性
在边缘设备上提供本地块 blob 和追加 blob 存储
与 Azure Blob Storage API 兼容,支持现有 SDK 使用
支持数据分层功能,可将本地数据上传到 Azure 云存储
支持自动删除功能,可配置 TTL (Time To Live) 策略
支持追加 blob 的 API、设备到云上传和自动删除功能
可选与 Azure Event Grid on IoT Edge 集成(预览版)
支持 HTTPS_PROXY 和 HTTP_PROXY(Windows 平台)
数据库修复功能,可处理突发电源故障导致的数据库损坏
使用场景和适用范围
IoT Edge 设备上的本地数据存储需求
需要在边缘处理和存储大量非结构化数据的场景
间歇性连接环境下的离线数据缓存和同步
需要边缘-云数据协同的物联网解决方案
边缘设备数据本地留存与自动清理需求
工业物联网(IIoT)设备数据采集与临时存储
详细使用方法和配置说明
拉取镜像
bash
docker pull mcr.microsoft.com/azure-blob-storage
部署方法
部署 Azure Blob Storage on IoT Edge 模块,请参考官方文档:在 IoT Edge 上部署 Azure Blob 存储
配置说明
分层设置 (tieringSettings)
字段 可能值 说明 tieringOn true, false 默认值为 false,设为 true 启用分层功能 backlogPolicy NewestFirst, OldestFirst 选择数据复制到 Azure 的顺序,默认 OldestFirst,按 Blob 的最后修改时间确定顺序 remoteStorageConnectionString 连接字符串 指定要上传数据的 Azure 存储账户连接字符串,格式:"DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>" tieredContainers 容器映射 指定要上传到 Azure 的容器名称,格式:"<源容器名称>": {"target": "<目标容器名称>"}。支持模板字符串: * %h -> IoT 中心名称 (3-50 字符) * %d -> IoT 设备 ID (1-129 字符) * %m -> 模块名称 (1-64 字符) * %c -> 源容器名称 (3-63 字符)
生存时间设置 (ttlSettings)
字段 可能值 说明 ttlOn true, false 默认值为 false,设为 true 启用自动删除功能 timeToLiveInMinutes 分钟数 指定 TTL(以分钟为单位),模块将在 TTL 过期后自动从本地存储中删除 blob
完整标签列表
可在以下地址获取 azure-blob-storage 的所有可用标签列表:
[***]
支持与反馈
支持
如果您在使用此镜像时遇到任何问题或有疑问,请通过 GitHub issue 与我们联系。
反馈
请通过 反馈渠道 提供反馈。
发布说明
Azure Blob Storage on IoT Edge 1.4.4
发布日期 : 2023年6月15日
Azure Blob Storage on IoT Edge 1.4.3
发布日期 : 2023年1月27日
解决安全问题
将托管项目升级到 .Net6
扩展 LinuxArm64 的 GA 支持
此镜像适用于 LinuxArm64
预览功能"Azure Event Grid on IoT Edge 集成"未从此镜像中移除,但由于 Azure Event Grid on IoT Edge 镜像缺乏 Arm64 支持,因此不可用
此版本包含以下错误修复:
修复后端 BlobInterface 中的锁定机制,消除并发 PutBlockList、PutBlob 和 GetBlob 操作之间的竞争条件
Azure Blob Storage on IoT Edge 1.4.2
发布日期 : 2021年12月1日
仅包含安全补丁
目前不提供 LinuxArm64 版本
Azure Blob Storage on IoT Edge 1.4.1
发布日期 : 2021年2月2日
目前不提供 LinuxArm64 版本
此版本包含以下错误修复:
返回 blob 创建时间,避免在最新 .NET SDK (Azure.Storage.Blobs 12.8.0) 上出错
尊重 PutBlob 的"仅创建"前置条件
如果打开数据库返回错误,尝试修复数据库
突发电源故障可能导致数据库损坏。如果模块在启动时遇到打开数据库的错误,将尝试修复数据库。这会导致一些数据丢失,但模块将启动并继续处理新请求。无法恢复的元数据文件放在模块卷内的 Database\lost 目录中。如果模块频繁遇到电源故障,可能需要清理 lost 目录以释放存储空间。如果修复过程不成功,模块将无法启动。请为存储模块创建新卷或从当前卷中删除所有文件以允许模块启动。
Azure Blob Storage on IoT Edge 1.4.0
发布日期 : 2021年1月11日
更新 license.txt 以包含商业用途的许可
在 Windows 上添加对 HTTPS_PROXY 和 HTTP_PROXY 的支持
模块使用当前最新的 Azure Blob Storage 版本 2020-04-08 时不会出错。请查看文档了解支持的操作和版本一致性。
修复支持 Azure Storage Explorer v1.17.0 的问题
无法从 Azure Storage Explorer 删除 blob,但通过 API 调用、SDK 和使用 delete* 所需属性进行的删除操作将正确反映。
目前不提供 LinuxArm64 版本
Azure Blob Storage on IoT Edge 1.3
发布日期 : 2019年12月11日
支持 Azure Storage 追加 blob 的 API、deviceToCloudUpload 和 deviceAutoDelete。支持的追加 blob Azure Storage API 列表:
列出 blob
放置、获取和删除 blob
获取和设置 blob 元数据
获取和设置 blob 属性
追加块
(预览版) 支持通过 HTTPS 与 Azure Event Grid on IoT Edge 通信。如果启用,模块使用 IoT Edge 证书来保护与 EventGrid 的通信。
目前不提供 LinuxArm64 版本
Azure Blob Storage on IoT Edge 1.2.2-preview
发布日期 : 2019年10月21日
包含 Azure Event Grid on IoT Edge 集成(预览版)。如果启用:
模块自动创建 MicrosoftStorage 主题。
模块发布 BlobCreated 和 BlobDeleted 事件,使其他模块能够对本地此类事件做出反应。
目前不提供 LinuxArm64 版本
Azure Blob Storage on IoT Edge 1.2.2-preview
发布日期 : 2019年10月21日
包含 Azure Event Grid on IoT Edge 集成(预览版)。如果启用:
模块自动创建 MicrosoftStorage 主题。
模块发布 BlobCreated 和 BlobDeleted 事件,使其他模块能够对本地此类事件做出反应。
目前不提供 LinuxArm64 版本
Azure Blob Storage on IoT Edge 1.2.1 - GA 版本
发布日期 : 2019年8月6日
Windows 平台的 SMB 映射支持
Linux 容器支持低权限用户
不支持从 1.2.0 升级到 1.2.1。如果为 Linux 容器使用绑定挂载,请确保按照步骤向容器用户授予目录访问权限
包含错误修复
目前不提供 LinuxArm64 版本
Azure Blob Storage on IoT Edge 1.2.0 - 预览版
发布日期 : 2019年6月19日
添加成功上传到 Azure 后自动删除 blob 的功能
添加两个新设置 "retainWhileUploading" 和 "deleteAfterUpload"
所需属性设置名称已更改。此版本不支持旧名称。
deviceToCloudUpload 和 deviceAutoDelete 功能支持 Linux AMD64、Linux ARM32、Linux ARM64 和 Windows AMD64
包含错误修复和性能改进
不支持从 1.1 升级到 1.2。部署新镜像时确保使用新的卷绑定
Azure Blob Storage on IoT Edge 1.1 - 预览版
与 Azure Storage API 的 2017-04-17 版本兼容
现在支持:获取容器 ACL、设置容器 ACL、设置容器元数据
分层:可配置从本地 blob 存储到 Azure 的数据分层功能,并支持间歇性互联网连接
支持块级分层
此设置名称为 tieringSettings
生存时间:可配置从本地 blob 存储自动删除数据的功能
分层和 TTL 支持仅适用于 Linux AMD64 和 Linux ARM32
与 IoT SDK 集成
不支持从 1.0 升级到 1.1。部署新镜像时确保使用新的卷绑定
Azure Blob Storage on IoT Edge 1.0 - 预览版
本地存储数据并使用 Azure Storage SDK 访问本地 blob 存储
在 IoT Edge 设备中部署多个实例
支持任何 Azure IoT Edge 1 级主机操作系统
通过 Azure 门户和 VSCode 部署和配置
支持的 Azure Storage API 列表:
列出容器
创建和删除容器
获取容器属性和元数据
列出 blobs
放置、获取和删除 blob
获取和设置 blob 属性
获取和设置 blob 元数据
放置块
放置和获取块列表
许可证