重要
此頁面包含使用 Kubernetes 部署指令清單來管理 Azure IoT Operations 元件的指示,其處於預覽狀態。 這項功能隨附 數個限制,不應用於生產工作負載。
請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。
若要開始使用數據流,請先建立數據流端點。 數據流端點是數據流的連接點。 您可以使用端點作為數據流的來源或目的地。 某些端點類型可以同時作為來源和目的地使用,而其他類型則僅作為目的地使用。 數據流至少需要一個來源端點和一個目的地端點。
使用下表來選擇要設定的端點類型:
| 端點類型 |
描述 |
可作為來源 |
可作為目的地 |
資料流程圖支援 |
|
MQTT |
針對使用 MQTT 訊息代理程式的雙向傳訊,包括 Azure IoT 作業和事件方格內建的訊息。 |
是的 |
是的 |
來源和目的地 |
|
卡 夫 卡 |
針對使用 Kafka 訊息代理程式進行雙向傳訊,包括 Azure 事件中樞。 |
是的 |
是的 |
來源和目的地 |
|
OpenTelemetry |
用於將計量和記錄傳送至 OpenTelemetry 收集器和可觀察性平臺,例如 Grafana 和 Azure 監視器。 |
否 |
是的 |
僅限目的地 |
|
資料湖 |
將數據上傳至 Azure Data Lake Gen2 儲存器帳戶。 |
否 |
是的 |
不支援 |
|
Microsoft Fabric OneLake |
將數據上傳至 Microsoft Fabric OneLake Lakehouses。 |
否 |
是的 |
不支援 |
|
Azure 資料總管 |
將數據上傳至 Azure 數據總管資料庫。 |
否 |
是的 |
不支援 |
|
本機記憶體 |
若要將資料傳送至本地可用的永續性磁碟區,可以使用由 Azure Arc 啟用的 Azure 容器儲存進行選擇性設定。 |
否 |
是的 |
不支援 |
重要
資料流程圖表限制: 資料流程圖表 (WASM) 目前僅支援 MQTT、Kafka 和 OpenTelemetry 端點。 OpenTelemetry 端點只能作為資料流程圖中的目的地使用。 資料流程圖不支援其他端點類型。 如需詳細資訊,請參閱已知問題。
數據流必須使用本機 MQTT 訊息代理程式端點
當您建立資料流時,您可以指定來源和目的地端點。 數據流會將數據從來源端點移至目的地端點。 您可以針對多個數據流使用相同的端點,而且可以使用與數據流中來源和目的地相同的端點。
不過,不支援使用自定義端點作為數據流中的來源和目的地。 這項限制表示 Azure IoT 作業中的內建 MQTT 訊息代理程式必須至少有一個端點。 它可以是來源、目的地或兩者。 若要避免數據流部署失敗,請使用 預設 MQTT 數據流端點 作為每個數據流的來源或目的地。
特定需求是每個數據流都必須具有具有主機 aio-broker的 MQTT 端點所設定的來源或目的地。 因此,不需要使用預設端點,而且只要主機為 aio-broker,您就可以建立指向本機 MQTT 訊息代理程式的其他數據流端點。 不過,為了避免混淆和管理性問題,建議使用默認端點。
下表顯示支援的案例:
| 案例 |
支援 |
| 默認端點作為來源 |
是的 |
| 默認端點作為目的地 |
是的 |
| 自訂端點作為來源 |
是,如果目的地是預設端點或具有主機的 MQTT 端點 aio-broker |
| 自訂端點作為目的地 |
是,如果來源是預設端點或具有主機的 MQTT 端點 aio-broker |
| 自訂端點作為來源和目的地 |
否,除非其中一個是具有主機的 MQTT 端點 aio-broker |
重複使用端點
請將每個數據流端點視為組態設定組合,其中包含數據應該來自何處或移至 ( host 值)、如何使用端點進行驗證,以及其他設定,例如TLS組態或批處理喜好設定。 因此,您只需要建立一次,然後就可以在多個數據流中重複使用,這些設定會相同。
為了讓重複使用端點更容易,MQTT 或 Kafka 主題篩選不是端點組態的一部分。 相反地,您會在數據流組態中指定主題篩選。 這表示您可以針對使用不同主題篩選的多個數據流使用相同的端點。
例如,您可以使用預設的 MQTT 訊息代理程式資料流端點。 您可以針對來源和目的地使用,並搭配不同的主題篩選:
使用 az iot ops dataflow apply 命令來建立或變更數據流。
az iot ops dataflow apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --profile <DataflowProfileName> --name <DataflowName> --config-file <ConfigFilePathAndName>
參數 --config-file 是 JSON 組態檔的路徑和檔名,其中包含資源屬性。
在此範例中,假設名為 data-flow.json 的組態檔,其中包含儲存在使用者主目錄中的下列內容:
{
"mode": "Enabled",
"operations": [
{
"operationType": "Source",
"sourceSettings": {
"endpointRef": "default",
"dataSources": [
"example/topic/1"
]
}
},
{
"operationType": "Destination",
"destinationSettings": {
"endpointRef": "default",
"dataDestination": "example/topic/2"
}
}
]
}
resource dataflow 'Microsoft.IoTOperations/instances/dataflowProfiles/dataflows@2024-11-01' = {
parent: <DEFAULT_PROFILE_RESOURCE>
name: 'broker-to-broker'
extendedLocation: {
name: <CUSTOM_LOCATION_RESOURCE>.id
type: 'CustomLocation'
}
properties: {
mode: 'Enabled'
operations: [
{
operationType: 'Source'
sourceSettings: {
endpointRef: 'default'
dataSources: [
'example/topic/1'
]
}
}
{
operationType: 'Destination'
destinationSettings: {
endpointRef: 'default'
dataDestination: 'example/topic/2'
}
}
]
}
}
apiVersion: connectivity.iotoperations.azure.com/v1
kind: Dataflow
metadata:
name: broker-to-broker
namespace: azure-iot-operations
spec:
profileRef: default
operations:
- operationType: Source
sourceSettings:
endpointRef: default
dataSources:
- example/topic/1
- operationType: Destination
destinationSettings:
endpointRef: default
dataDestination: example/topic/2
同樣地,您可以建立多個數據流,針對其他端點和主題使用相同的 MQTT 端點。 例如,您可以針對將數據傳送至事件中樞端點的數據流使用相同的 MQTT 端點。
使用 az iot ops dataflow apply 命令來建立或變更數據流。
az iot ops dataflow apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --profile <DataflowProfileName> --name <DataflowName> --config-file <ConfigFilePathAndName>
參數 --config-file 是 JSON 組態檔的路徑和檔名,其中包含資源屬性。
在此範例中,假設名為 data-flow.json 的組態檔,其中包含儲存在使用者主目錄中的下列內容:
{
"mode": "Enabled",
"operations": [
{
"operationType": "Source",
"sourceSettings": {
"endpointRef": "default",
"dataSources": [
"example/topic/3"
]
}
},
{
"operationType": "Destination",
"destinationSettings": {
// The endpoint needs to be created before you can reference it here
"endpointRef": "example-event-hub-endpoint",
"dataDestination": "example/topic/4"
}
}
]
}
resource dataflow 'Microsoft.IoTOperations/instances/dataflowProfiles/dataflows@2024-11-01' = {
parent: <DEFAULT_PROFILE_RESOURCE>
name: 'broker-to-eh'
extendedLocation: {
name: <CUSTOM_LOCATION_RESOURCE>.id
type: 'CustomLocation'
}
properties: {
mode: 'Enabled'
operations: [
{
operationType: 'Source'
sourceSettings: {
endpointRef: 'default'
dataSources: [
'example/topic/3'
]
}
}
{
operationType: 'Destination'
destinationSettings: {
// The endpoint needs to be created before you can reference it here
endpointRef: 'example-event-hub-endpoint'
dataDestination: 'example/topic/4'
}
}
]
}
}
apiVersion: connectivity.iotoperations.azure.com/v1
kind: Dataflow
metadata:
name: broker-to-eh
namespace: azure-iot-operations
spec:
profileRef: default
operations:
- operationType: Source
sourceSettings:
endpointRef: default
dataSources:
- example/topic/3
- operationType: Destination
destinationSettings:
# The endpoint needs to be created before you can reference it here
endpointRef: example-event-hub-endpoint
dataDestination: example/topic/4
與 MQTT 範例類似,您可以建立多個數據流,針對不同的主題使用相同的 Kafka 端點,或針對不同數據表使用相同的 Data Lake 端點。
下一步
建立資料串流端點: