你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
配置适用于 Azure Data Lake Storage Gen2 的数据流终结点
重要
本页包含使用 Kubernetes 部署清单(目前为预览版)管理 Azure IoT 操作组件的说明。 此功能存在若干限制,不应该用于生产工作负载。
有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款。
若要在 Azure IoT 操作中将数据发送到 Azure Data Lake Storage Gen2,可以配置数据流终结点。 借助此配置,可以指定目标终结点、身份验证方法、表和其他设置。
先决条件
- Azure IoT 操作的实例
- Azure Data Lake Storage Gen2 帐户
- 在存储帐户中预创建的存储容器
为托管标识分配权限
若要为 Azure Data Lake Storage Gen2 配置数据流终结点,建议使用用户分配的托管标识或系统分配的托管标识。 此方法是安全的,并且无需手动管理凭据。
创建 Azure Data Lake Storage Gen2 后,需要为 Azure IoT Operations 托管标识分配一个角色,以授予写入存储帐户的权限。
如果使用系统分配的托管标识,请在 Azure 门户中,转到 Azure IoT 操作实例并选择“概述”。 复制“Azure IoT 操作 Arc 扩展”后列出的扩展的名称。 例如 azure-iot-operations-xxxx7。 可以使用 Azure IoT 操作 Arc 扩展的名称找到系统分配的托管标识。
然后,转到事件中心命名空间 >“访问控制(IAM)” >“添加角色分配”。
- 在“角色”选项卡上,选择相应的角色,如
Storage Blob Data Contributor
。 这将为托管标识提供写入 Azure 存储 blob 容器所需的权限。 要了解详细信息,请参阅使用 Microsoft Entra ID 授予对 blob 的访问权限。 - 在“成员”选项卡上:
- 如果使用系统分配的托管标识,请在“分配访问权限到”中,选择“用户、组或服务主体”选项,然后选择“+ 选择成员”并搜索 Azure IoT 中心 Arc 扩展的名称。
- 如果使用用户分配的托管标识,请在“分配访问权限到”中,选择“托管标识”选项,然后选择“+ 选择成员”选项并搜索“设置用户分配的托管标识以进行云连接”。
为 Azure Data Lake Storage Gen2 创建数据流终结点
在 IoT 操作门户中,选择“数据流终结点”选项卡。
在“创建新的数据流终结点”下,选择“Azure Data Lake Storage (第二代)”>“新建”。
输入以下用于终结点的设置:
设置 说明 Name 数据流终结点的名称。 主机 Azure Data Lake Storage Gen2 终结点的主机名,格式为 <account>.blob.core.windows.net
。 将帐户占位符替换为终结点帐户名称。身份验证方法 用于身份验证的方法。 建议选择“系统分配的托管标识”或“用户分配的托管标识”。 客户端 ID 用户分配的托管标识的客户端 ID。 如果使用的是“用户分配的托管标识”,则为必需。 租户 ID 用户分配的托管标识的租户 ID。 如果使用的是“用户分配的托管标识”,则为必需。 访问令牌机密名称 包含 SAS 令牌的 Kubernetes 机密的名称。 如果使用的是访问令牌,则是必需的。 选择“应用”来预配终结点。
使用访问令牌身份验证
按照“访问令牌”部分中的步骤获取存储帐户的 SAS 令牌,并将其存储在 Kubernetes 机密中。
然后,创建 DataflowEndpoint 资源并指定访问令牌身份验证方法。 在这里,请将 <SAS_SECRET_NAME>
替换为包含 SAS 令牌的机密的名称,以及其他占位符值。
有关在操作体验门户中创建密钥的步骤,请参阅访问令牌部分。
可用身份验证方法
以下身份验证方法适用于 Azure Data Lake Storage Gen2 终结点。
系统分配的托管标识
在配置数据流端点之前,请为 Azure IoT 操作托管身份分配一个角色,以授予写入存储帐户的权限:
- 在 Azure 门户中,转到 Azure IoT 操作实例并选择“概述”。
- 复制“Azure IoT 操作 Arc 扩展”后列出的扩展的名称。 例如 azure-iot-operations-xxxx7。
- 转到需要授予权限的云资源。 例如,转到事件中心命名空间 >“访问控制(IAM)”>“添加角色分配”。
- 在“角色”选项卡上,选择相应的角色。
- 在“成员”选项卡上,对于“分配访问权限到”,选择“用户、组或服务主体”选项,然后选择“+ 选择成员”并搜索 Azure IoT 操作托管标识。 例如 azure-iot-operations-xxxx7。
然后,使用系统分配的托管标识设置配置数据流终结点。
在操作体验数据流终结点设置页中,选择“基本”选项卡,然后选择“身份验证方法”>“系统分配的托管标识”。
大多数情况下,无需指定服务受众。 不指定受众将会创建一个托管标识,其默认受众范围限定为存储帐户。
如果需要替代系统分配的托管标识受众,则可以指定 audience
设置。
大多数情况下,无需指定服务受众。 不指定受众将会创建一个托管标识,其默认受众范围限定为存储帐户。
用户分配的托管标识
若要使用用户分配的托管标识进行身份验证,必须先部署已启用安全设置的 Azure IoT 操作。 然后,需要设置用户分配的托管标识以进行云连接。 若要了解详细信息,请参阅在 Azure IoT 操作部署中启用安全设置。
在配置数据流终结点之前,请为用户分配的托管标识分配一个角色,以授予写入存储帐户的权限:
- 在 Azure 门户中,转到需要授予权限的云资源。 例如,转到事件中心命名空间 >“访问控制(IAM)”>“添加角色分配”。
- 在“角色”选项卡上,选择相应的角色。
- 在“成员”选项卡上,对于“分配访问权限到”,选择“托管标识”选项,然后选择“+ 选择成员”并搜索用户分配的托管标识。
然后,使用用户分配的托管标识设置配置数据流终结点。
在操作体验数据流终结点设置页中,选择“基本”选项卡,然后选择“身份验证方法”>“用户分配的托管标识”。
在相应的字段中输入用户分配的托管标识客户端 ID 和租户 ID。
在这里,范围是可选的,默认为 https://storage.azure.com/.default
。 如果需要替代默认范围,请通过 Bicep 或 Kubernetes 清单指定 scope
设置。
访问令牌
使用访问令牌是替代性身份验证方法。 此方法要求使用 SAS 令牌创建 Kubernetes 机密,并在 DataflowEndpoint 资源中引用该机密。
获取 Azure Data Lake Storage Gen2 (ADLSv2) 帐户的 SAS 令牌。 例如,使用 Azure 门户浏览到存储帐户。 在左侧菜单中,选择“安全性 + 网络”>“共享访问签名”。 使用下表设置所需的权限。
参数 | 启用的设置 |
---|---|
允许的服务 | Blob |
允许的资源类型 | 对象, 容器 |
允许的权限 | 读取, 写入, 删除, 列出, 创建 |
要增强安全性并遵循最低特权原则,可以为特定容器生成 SAS 令牌。 要防止身份验证错误,请确保 SAS 令牌中指定的容器与配置中的数据流目标设置匹配。
重要
若要使用操作体验门户来管理密钥,必须首先通过配置 Azure Key Vault 并启用工作负载标识来使用安全设置启用 Azure IoT 操作。 若要了解详细信息,请参阅在 Azure IoT 操作部署中启用安全设置。
在操作体验数据流终结点设置页中,选择“基本”选项卡,然后选择“身份验证方法”>“访问令牌”。
此时,在“同步的密钥名称”下,输入密钥的名称。 此名称用于在数据流端点设置中引用密钥,是密钥存储在 Kubernetes 集群中的名称。
然后,在“访问令牌密钥名称”下,选择“添加引用”以从 Azure Key Vault 添加密钥。 在下一页上,使用“从 Azure Key Vault 添加”从 Azure Key Vault 选择密钥,或新建密钥。
如果选择“新建”,请输入以下设置:
设置 | 说明 |
---|---|
机密名称 | Azure Key Vault 中密钥的名称。 选择一个易于记住的名称,以便稍后从列表中选择密钥。 |
密码值 | SAS 令牌,格式为 'sv=2022-11-02&ss=b&srt=c&sp=rwdlax&se=2023-07-22T05:47:40Z&st=2023-07-21T21:47:40Z&spr=https&sig=<signature>' 。 |
设置激活日期 | 如果已启用,则为密钥生效的日期。 |
设置过期日期 | 如果已启用,则为密钥过期的日期。 |
有关机密的详细信息,请参阅在 Azure IoT 操作(预览版)中创建和管理机密。
高级设置
可以为 Azure Data Lake Storage Gen2 终结点设置高级设置,例如批处理延迟和消息计数。
使用 batching
设置配置消息的最大数量和消息发送到目标之前的最大延迟。 如果要优化网络带宽并减少对目标的请求数,此设置会非常有用。
字段 | 说明 | 必须 |
---|---|---|
latencySeconds |
将消息发送到目标之前要等待的最大秒数。 默认值为 60 秒。 | 否 |
maxMessages |
要发送到目标的最大消息数。 默认值为 100000 条消息。 | 否 |
例如,要将最大消息数配置为 1000,并将最大延迟配置为 100 秒,请使用以下设置:
在操作体验中,选择数据流终结点的“高级”选项卡。
后续步骤
- 要了解有关数据流的详细信息,请参阅创建数据流。
- 若要查看关于如何使用数据流将数据发送到 Azure Data Lake Storage Gen2 的教程,请参阅教程:将数据发送到 Azure Data Lake Storage Gen2。