要将数据从 Azure IoT 操作发送到 Microsoft Fabric 实时智能,可以配置数据流终结点。 借助此配置,可以指定目标终结点、身份验证方法、主题和其他设置。
先决条件
注意
事件流支持多个输入源,包括 Azure 事件中心。 如有流向 Azure 事件中心的现有数据流,则可以将其引入 Fabric,如快速入门中所示。 本文介绍如何直接将实时数据流入 Microsoft Fabric,而无需在两者之间使用任何其他跃点。
检索自定义终结点连接详细信息
检索 与 Kafka 兼容的自定义终结点连接详细信息。 连接详细信息用于在 Azure IoT作中配置数据流终结点。
此方法使用 Azure IoT 操作实例的托管标识通过事件流进行身份验证。 使用系统分配的托管标识身份验证方法配置数据流终结点。
连接详细信息位于事件流的 “源 ”部分下的 Fabric 门户中。
在自定义终结点的详细信息面板中,选择 Kafka 协议。
选择 Entra ID 身份验证 部分以查看连接详细信息。
复制 Bootstrap 服务器、主题名称和连接字符串主键的值的详细信息。 使用这些值来配置数据流终结点。
| 设置 |
说明 |
| Bootstrap 服务器 |
启动服务器地址将用于数据流终结点中的主机名属性。 |
| 主题名称 |
事件中心名称用作 Kafka 主题,格式 为 es_aaaaaaaa-0000-1111-2222-bbbbbbbbbb。 |
连接详细信息位于事件流的 “源 ”部分下的 Fabric 门户中。
在自定义终结点的详细信息面板中,选择 Kafka 协议。
选择 “SAS 密钥身份验证 ”部分以查看连接详细信息。
复制 Bootstrap 服务器、主题名称和连接字符串主键的值的详细信息。 使用这些值来配置数据流终结点。
| 设置 |
说明 |
| Bootstrap 服务器 |
启动服务器地址将用于数据流终结点中的主机名属性。 |
| 主题名称 |
事件中心名称用作 Kafka 主题,格式 为 es_aaaaaaaa-0000-1111-2222-bbbbbbbbbb。 |
| 连接字符串-主密钥 |
具有主键的连接字符串。 |
创建 Microsoft Fabric 实时智能数据流终结点
Microsoft Fabric Real-Time Intelligence 支持简单身份验证和安全层(SASL)、系统分配的托管标识和用户分配的托管标识身份验证方法。 有关可用身份验证方法的详细信息,请参阅 可用的身份验证方法。
在 IoT 作体验门户中,选择 “数据流终结点” 选项卡。
在“创建新数据流终结点”下,选择“Microsoft Fabric 实时智能”“新建”。>
输入终结点的以下设置。
| 设置 |
说明 |
| 名称 |
数据流终结点的名称。 |
| 主机 |
事件流自定义终结点的主机名,格式为 *.servicebus.windows.net:9093。 使用前面记下的启动服务器地址。 |
| 身份验证方法 |
用于身份验证的方法。 为 Entra ID 选择系统分配的托管标识、用户分配的托管标识或SASL。 |
如果选择 SASL 身份验证方法,还必须输入以下设置:
| 设置 |
说明 |
| SASL 类型 |
选择 “纯文本”。 |
| 同步的机密名称 |
输入已同步机密的名称。 在群集上创建了具有此名称的 Kubernetes 机密。 |
选择 “添加引用 ”以创建新密钥保管库,或为用户名和密码引用选择现有的 Key Vault 引用。
对于令牌机密的用户名引用,机密值必须是精确的文本字符串 $ConnectionString,而不能是环境变量引用。
对于 令牌机密的密码引用,机密值必须是包含来自事件流自定义终结点的主密钥的连接字符串。
选择“应用”以预配终结点。
创建或替换
使用 az iot ops dataflow endpoint create fabric-onelake 命令来创建或替换 Microsoft Fabric Real-Time Intelligence 数据流终结点。
az iot ops dataflow endpoint create fabric-realtime --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --host "<BootstrapServerAddress>"
下面是用于创建或替换名为 fabric-realtime-endpoint 的 Microsoft Fabric Real-Time Intelligence 数据流终结点的示例命令:
az iot ops dataflow endpoint create fabric-realtime --resource-group myResourceGroup --instance myAioInstance --name fabric-realtime-endpoint --host "fabricrealtime.servicebus.windows.net:9093"
创建或更改
使用 az iot ops dataflow endpoint apply 命令创建或更改 Microsoft Fabric 实时智能数据流终结点。
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
参数 --config-file 是包含资源属性的 JSON 配置文件的路径和文件名。
在此示例中,假定一个配置文件 fabric-endpoint.json ,其中包含存储在用户主目录中的以下内容:
{
"endpointType": "FabricRealTimeIntelligence",
"fabricRealTimeIntelligenceSettings": {
"authentication": {
"method": "Sasl",
"saslSettings": {
"saslType": "Plain",
"secretRef": "<SecretName>"
}
},
"host": "<BootstrapServerAddress>",
"topic": "<TopicName>",
"names": {
"workspaceName": "<WorkspaceName>",
"eventStreamName": "<EventStreamName>"
}
}
}
下面是一个示例命令,用于创建新的 Microsoft Fabric Real-Time Intelligence 数据流终结点,名为 fabric-realtime-endpoint:
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name fabric-realtime-endpoint --config-file ~/fabric-realtime-endpoint.json
创建包含以下内容的 Bicep .bicep 文件。
kafkaSettings: {
authentication: {
method: 'Sasl' // Or ScramSha256, ScramSha512
saslSettings: {
saslType: 'Plain' // Or ScramSha256, ScramSha512
secretRef: '<SECRET_NAME>'
}
}
}
然后,通过 Azure CLI 进行部署。
az deployment group create --resource-group <RESOURCE_GROUP> --template-file <FILE>.bicep
kubectl create secret generic sasl-secret -n azure-iot-operations \
--from-literal=token='<YOUR_SASL_TOKEN>'
创建具有以下内容的 Kubernetes 清单 .yaml 文件。
kafkaSettings:
authentication:
method: Sasl
saslSettings:
saslType: Plain # Or ScramSha256, ScramSha512
secretRef: <SECRET_NAME>
然后,将清单文件应用到 Kubernetes 群集。
kubectl apply -f <FILE>.yaml
可用的身份验证方法
以下身份验证方法可用于 Fabric Real-Time Intelligence 数据流终结点。
系统分配的托管标识
在配置数据流终结点之前,请将角色分配给 Azure IoT 操作托管标识,以授予连接到 Kafka 代理的权限:
- 在 Azure 门户中,转到 Azure IoT 操作实例并选择“概述”。
- 复制“Azure IoT 操作 Arc 扩展”后列出的扩展的名称。 例如 azure-iot-operations-xxxx7。
- 转到需要授予权限的云资源。 例如,转到事件中心命名空间“访问控制(IAM)”>“添加角色分配”>。
- 在“ 角色 ”选项卡上,选择适当的角色。
- 在“成员”选项卡上,在“将访问权限分配给”中,选择“用户、组或服务主体”选项,然后选择“+ 选择成员”并搜索 Azure IoT 操作托管标识。 例如 azure-iot-operations-xxxx7。
然后,使用系统分配的托管标识设置配置数据流终结点。
在操作体验数据流终结点设置页中,选择“基本”选项卡,然后选择“身份验证方法”“系统分配的托管标识”。>
创建或替换
使用 az iot ops dataflow endpoint create 命令(将 --auth-type 参数设置为 SystemAssignedManagedIdentity)来进行系统分配的托管标识身份验证。
az iot ops dataflow endpoint create <Command> --auth-type SystemAssignedManagedIdentity --audience <Audience> --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName>
创建或更改
使用带有 参数的 --config-file 命令。
在此示例中,假设配置文件包含以下内容:
{
"endpointType": "Kafka",
"kafkaSettings": {
"host": "fabricrealtime.servicebus.windows.net:9093",
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {}
},
"tls": {
"mode": "Enabled"
}
}
}
kafkaSettings: {
authentication: {
method: 'SystemAssignedManagedIdentity'
systemAssignedManagedIdentitySettings: {}
}
}
kafkaSettings:
authentication:
method: SystemAssignedManagedIdentity
systemAssignedManagedIdentitySettings:
{}
用户分配的管理标识
要使用用户分配的托管标识进行身份验证,必须先部署已启用安全设置的 Azure IoT 操作。 然后,需要 为云连接设置用户分配的托管标识。 若要了解详细信息,请参阅 Azure IoT作部署中的“启用安全设置”。
在配置数据流终结点之前,请将角色分配给用户分配的托管标识,以授予连接到 Kafka 代理的权限:
- 在 Azure 门户中,转到需要授予权限的云资源。 例如,转到事件网格命名空间 >“访问控制 (IAM)”“添加角色分配”>。
- 在“ 角色 ”选项卡上,选择适当的角色。
- 在“成员”选项卡上,在“将访问权限分配给”中,选择“托管标识”选项,然后选择“+ 选择成员”并搜索用户分配的托管标识。
然后,使用用户分配的托管标识设置配置数据流终结点。
在操作体验数据流终结点设置页中,选择“基本”选项卡,然后选择“身份验证方法”“用户分配的托管标识”。>
创建或替换
使用 az iot ops dataflow endpoint create 命令(将 --auth-type 参数设置为 UserAssignedManagedIdentity)来进行用户分配的托管标识身份验证。
az iot ops dataflow endpoint create <Command> --auth-type UserAssignedManagedIdentity --client-id <ClientId> --tenant-id <TenantId> --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName>
创建或更改
使用带有 参数的 --config-file
在此示例中,假设配置文件包含以下内容:
{
"endpointType": "Kafka",
"kafkaSettings": {
"authentication": {
"method": "UserAssignedManagedIdentity",
"userAssignedManagedIdentitySettings": {
"clientId": "<ID>",
"tenantId": "<ID>",
// Optional
"scope": "https://<Scope_Url>"
}
}
}
}
kafkaSettings: {
authentication: {
method: 'UserAssignedManagedIdentity'
UserAssignedManagedIdentitySettings: {
clientId: '<CLIENT_ID>'
tenantId: '<TENANT_ID>'
// Optional
// scope: 'https://<SCOPE_URL>'
}
}
...
}
kafkaSettings:
authentication:
method: UserAssignedManagedIdentity
userAssignedManagedIdentitySettings:
clientId: <CLIENT_ID>
tenantId: <TENANT_ID>
# Optional
# scope: https://<SCOPE_URL>
SASL
要使用 SASL 进行身份验证,请指定 SASL 身份验证方法,并使用包含 SASL 令牌的机密名称配置 SASL 类型和机密引用。
建议使用 Azure 密钥保管库将连接字符串同步到 Kubernetes 群集,以便在数据流中引用它。 必须启用安全设置,才能通过操作体验 Web UI 来配置此终端。
在操作体验数据流终结点设置页中,选择“基本”选项卡,然后选择“身份验证方法”“SASL”。>
输入以下用于终结点的设置:
| 设置 |
说明 |
| SASL 类型 |
要使用的 SASL 身份验证的类型。 支持的类型为 Plain、ScramSha256 和 ScramSha512。 |
| 同步的机密名称 |
包含 SASL 令牌的 Kubernetes 机密的名称。 |
| 用户名引用或令牌机密 |
SASL 身份验证所引用的用户名或令牌密钥。 |
| 令牌机密的密码引用 |
对用于 SASL 身份验证的密码或令牌机密的引用。 |
创建或替换
使用 az iot ops 数据流终结点 create 命令,并将 --auth-type 参数设置为 Sasl SASL 身份验证。
az iot ops dataflow endpoint create <Command> --auth-type Sasl --sasl-type <SaslType> --secret-name <SecretName> --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName>
创建或更改
使用带有 参数的 --config-file
在此示例中,假设配置文件包含以下内容:
{
"endpointType": "Kafka",
"kafkaSettings": {
"authentication": {
"method": "Sasl",
"saslSettings": {
"saslType": "<SaslType>",
"secretRef": "<SecretName>"
}
}
}
}
kafkaSettings: {
authentication: {
method: 'Sasl' // Or ScramSha256, ScramSha512
saslSettings: {
saslType: 'Plain' // Or ScramSha256, ScramSha512
secretRef: '<SECRET_NAME>'
}
}
}
kubectl create secret generic sasl-secret -n azure-iot-operations \
--from-literal=token='<YOUR_SASL_TOKEN>'
kafkaSettings:
authentication:
method: Sasl
saslSettings:
saslType: Plain # Or ScramSha256, ScramSha512
secretRef: <SECRET_NAME>
支持的 SASL 类型如下:
Plain
ScramSha256
ScramSha512
该机密必须与 Kafka 数据流终结点位于同一命名空间中。 机密必须具有 SASL 令牌作为密钥值对。
高级设置
此终结点的高级设置与 Azure 事件中心终结点的高级设置相同。
后续步骤
要了解有关数据流的详细信息,请参阅创建数据流。