Skip to content

Commit 4718733

Browse files
authored
Merge pull request #284247 from paulth1/processing-and-routing-data-batch1
[AQ] edit pass: processing-and-routing-data-batch1
2 parents 655c547 + db43f72 commit 4718733

File tree

3 files changed

+98
-93
lines changed

3 files changed

+98
-93
lines changed

articles/iot-operations/connect-to-cloud/howto-configure-dataflow-endpoint.md

Lines changed: 43 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ ms.date: 08/03/2024
1414

1515
[!INCLUDE [public-preview-note](../includes/public-preview-note.md)]
1616

17-
To get started with dataflows, you need to configure endpoints. An endpoint is the connection point for the dataflow. You can use an endpoint as a source or destination for the dataflow. Some endpoint types can be used as [both sources and destinations](#endpoint-types-for-use-as-sources-and-destinations), while others are for [destinations only](#endpoint-types-for-destinations-only). A dataflow needs at least one source endpoint and one destination endpoint.
17+
To get started with dataflows, you need to configure endpoints. An endpoint is the connection point for the dataflow. You can use an endpoint as a source or destination for the dataflow. Some endpoint types can be used as [both sources and destinations](#endpoint-types-for-use-as-sources-and-destinations), while others are for [destinations only](#endpoint-type-for-destinations-only). A dataflow needs at least one source endpoint and one destination endpoint.
18+
19+
The following example shows a custom resource definition with all of the configuration options. The required fields are dependent on the endpoint type. Review the sections for each endpoint type for configuration guidance.
1820

19-
The following example shows a custom resource definition with all of the configuration options. The required fields are dependent on the endpoint type. Review the sections for each endpoint type for configuration guidance.
2021
```yaml
2122
apiVersion: connectivity.iotoperations.azure.com/v1beta1
2223
kind: DataflowEndpoint
@@ -57,33 +58,35 @@ spec:
5758
5859
| Name | Description |
5960
|-------------------------------------------------|-----------------------------------------------------------------------------|
60-
| endpointType | Type of the endpoint. Values: mqtt, kafka, dataExplorer, dataLakeStorage, fabricOneLake, or localStorage. |
61-
| authentication.method | Method of authentication. Values: *systemAssignedManagedIdentity*, *x509Credentials*, *userAssignedManagedIdentity*, or *serviceAccountToken*. |
62-
| authentication.systemAssignedManagedIdentitySettings.audience | Audience of the service to authenticate against. Defaults to `https://eventgrid.azure.net`. |
63-
| authentication.x509CredentialsSettings.certificateSecretName | Secret name of the X.509 certificate. |
64-
| authentication.userAssignedManagedIdentitySettings.clientId | Client ID for the user-assigned managed identity. |
65-
| authentication.userAssignedManagedIdentitySettings.tenantId | Tenant ID. |
66-
| authentication.userAssignedManagedIdentitySettings.audience | Audience of the service to authenticate against. Defaults to `https://eventgrid.azure.net`. |
67-
| authentication.serviceAccountTokenSettings.audience | Audience of the service account. Optional, defaults to the broker internal service account audience. |
68-
| mqttSettings.host | Host of the MQTT broker in the form of \<hostname\>:\<port\>. connects to MQTT broker if omitted.|
69-
| mqttSettings.tls | TLS configuration. Omit for no TLS or MQTT broker. |
70-
| mqttSettings.tls.mode | Enable or disable TLS. Values: *enabled* or *disabled*. Defaults to *disabled*. |
71-
| mqttSettings.tls.trustedCaCertificateConfigMap | Trusted CA certificate config map. No CA certificate if omitted. No CA certificate works for public endpoints like Azure Event Grid.|
72-
| mqttSettings.sharedSubscription | Shared subscription settings. No shared subscription if omitted. |
73-
| mqttSettings.sharedSubscription.groupMinimumShareNumber | Number of clients to use for shared subscription. |
74-
| mqttSettings.sharedSubscription.groupName | Shared subscription group name. |
75-
| mqttSettings.clientIdPrefix | Client ID prefix. Client ID generated by the dataflow is \<prefix\>-id. No prefix if omitted.|
76-
| mqttSettings.retain | Whether or not to keep the retain setting. Values: *keep* or *never*. Defaults to *keep*. |
77-
| mqttSettings.sessionExpirySeconds | Session expiry in seconds. Defaults to *3600*.|
78-
| mqttSettings.qos | Quality of service. Values: *0* or *1*. Defaults to 1.|
79-
| mqttSettings.protocol | Use MQTT or websockets. Values: *mqtt* or *websockets*. Defaults to mqtt.|
80-
| mqttSettings.maxInflightMessages | The max number of messages to keep in flight. For subscribe, it's the receive maximum. For publish, it's the maximum number of messages to send before waiting for an acknowledgment. Default is *100*. |
61+
| `endpointType` | Type of the endpoint. Values: `mqtt`, `kafka`, `dataExplorer`, `dataLakeStorage`, `fabricOneLake`, or `localStorage`. |
62+
| `authentication.method` | Method of authentication. Values: `systemAssignedManagedIdentity`, `x509Credentials`, `userAssignedManagedIdentity`, or `serviceAccountToken`. |
63+
| `authentication.systemAssignedManagedIdentitySettings.audience` | Audience of the service to authenticate against. Defaults to `https://eventgrid.azure.net`. |
64+
| `authentication.x509CredentialsSettings.certificateSecretName` | Secret name of the X.509 certificate. |
65+
| `authentication.userAssignedManagedIdentitySettings.clientId` | Client ID for the user-assigned managed identity. |
66+
| `authentication.userAssignedManagedIdentitySettings.tenantId` | Tenant ID. |
67+
| `authentication.userAssignedManagedIdentitySettings.audience` | Audience of the service to authenticate against. Defaults to `https://eventgrid.azure.net`. |
68+
| `authentication.serviceAccountTokenSettings.audience` | Audience of the service account. Optional, defaults to the broker internal service account audience. |
69+
| `mqttSettings.host` | Host of the MQTT broker in the form of \<hostname\>:\<port\>. Connects to MQTT broker if omitted.|
70+
| `mqttSettings.tls` | TLS configuration. Omit for no TLS or MQTT broker. |
71+
| `mqttSettings.tls.mode` | Enable or disable TLS. Values: `enabled` or `disabled`. Defaults to `disabled`. |
72+
| `mqttSettings.tls.trustedCaCertificateConfigMap` | Trusted certificate authority (CA) certificate config map. No CA certificate if omitted. No CA certificate works for public endpoints like Azure Event Grid.|
73+
| `mqttSettings.sharedSubscription` | Shared subscription settings. No shared subscription if omitted. |
74+
| `mqttSettings.sharedSubscription.groupMinimumShareNumber` | Number of clients to use for shared subscription. |
75+
| `mqttSettings.sharedSubscription.groupName` | Shared subscription group name. |
76+
| `mqttSettings.clientIdPrefix` | Client ID prefix. Client ID generated by the dataflow is \<prefix\>-id. No prefix if omitted.|
77+
| `mqttSettings.retain` | Whether or not to keep the retain setting. Values: `keep` or `never`. Defaults to `keep`. |
78+
| `mqttSettings.sessionExpirySeconds` | Session expiry in seconds. Defaults to `3600`.|
79+
| `mqttSettings.qos` | Quality of service. Values: `0` or `1`. Defaults to `1`.|
80+
| `mqttSettings.protocol` | Use MQTT or web sockets. Values: `mqtt` or `websockets`. Defaults to `mqtt`.|
81+
| `mqttSettings.maxInflightMessages` | The maximum number of messages to keep in flight. For subscribe, it's the receive maximum. For publish, it's the maximum number of messages to send before waiting for an acknowledgment. Default is `100`. |
8182

8283
## Endpoint types for use as sources and destinations
8384

85+
The following endpoint types are used as sources and destinations.
86+
8487
### MQTT
8588

86-
MQTT endpoints are used for MQTT sources and destinations. You can configure the endpoint, TLS, authentication, and other settings.
89+
MQTT endpoints are used for MQTT sources and destinations. You can configure the endpoint, Transport Layer Security (TLS), authentication, and other settings.
8790

8891
#### MQTT broker
8992

@@ -106,7 +109,7 @@ spec:
106109

107110
#### Event Grid
108111

109-
To configure an Event Grid MQTT broker endpoint, use managed identity for authentication.
112+
To configure an Azure Event Grid MQTT broker endpoint, use managed identity for authentication.
110113

111114
```yaml
112115
apiVersion: connectivity.iotoperations.azure.com/v1beta1
@@ -141,7 +144,7 @@ spec:
141144
trustedCaCertificateConfigMap: <your CA certificate config map>
142145
```
143146

144-
Under `authentication` , you can configure the authentication method for the MQTT broker. Supported methods include X.509:
147+
Under `authentication`, you can configure the authentication method for the MQTT broker. Supported methods include X.509:
145148

146149
```yaml
147150
authentication:
@@ -151,14 +154,14 @@ authentication:
151154
```
152155

153156
> [!IMPORTANT]
154-
> When using X.509 authentication with Event Grid MQTT broker, go to the Event Grid namespace > **Configuration** and check these settings:
157+
> When you use X.509 authentication with an Event Grid MQTT broker, go to the Event Grid namespace > **Configuration** and check these settings:
155158
>
156-
> - **Enable MQTT** checked
157-
> - **Enable alternative client authentication name sources** checked
158-
> - Select **Certificate Subject Name** the dropdown.
159-
> - Set **Maximum client sessions per authentication name** to **3** or more
159+
> - **Enable MQTT**: Select the checkbox.
160+
> - **Enable alternative client authentication name sources**: Select the checkbox.
161+
> - **Certificate Subject Name**: Select this option in the dropdown list.
162+
> - **Maximum client sessions per authentication name**: Set to **3** or more.
160163
>
161-
> The alternative client authentication and max client sessions options allows dataflows to use client certificate subject name for authentication instead of MQTT CONNECT Username. This is important so that dataflows can spawn multiple instances and still be able to connect. To learn more, see [Event Grid MQTT client certificate authentication](../../event-grid/mqtt-client-certificate-authentication.md) [multi-session support](../../event-grid/mqtt-establishing-multiple-sessions-per-client.md).
164+
> The alternative client authentication and maximum client sessions options allow dataflows to use client certificate subject name for authentication instead of `MQTT CONNECT Username`. This capability is important so that dataflows can spawn multiple instances and still be able to connect. To learn more, see [Event Grid MQTT client certificate authentication](../../event-grid/mqtt-client-certificate-authentication.md) and [Multi-session support](../../event-grid/mqtt-establishing-multiple-sessions-per-client.md).
162165

163166
System-assigned managed identity:
164167

@@ -211,7 +214,7 @@ Kafka endpoints are used for Kafka sources and destinations. You can configure t
211214

212215
#### Azure Event Hubs
213216

214-
To configure an Azure Event Hubs Kafka, the recommended way is to use managed identity for authentication.
217+
To configure an Azure Event Hubs Kafka, we recommend that you use managed identity for authentication.
215218

216219
```yaml
217220
apiVersion: connectivity.iotoperations.azure.com/v1beta1
@@ -232,7 +235,7 @@ spec:
232235

233236
#### Other Kafka brokers
234237

235-
For example, to configure a Kafka endpoint set the host, TLS, authentication, and other settings as needed.
238+
For example, to configure a Kafka endpoint, set the host, TLS, authentication, and other settings as needed.
236239

237240
```yaml
238241
apiVersion: connectivity.iotoperations.azure.com/v1beta1
@@ -250,7 +253,7 @@ spec:
250253
consumerGroupId: mqConnector
251254
```
252255

253-
Under `authentication` , you can configure the authentication method for the Kafka broker. Supported methods include SASL, X.509, system-assigned managed identity, and user-assigned managed identity.
256+
Under `authentication`, you can configure the authentication method for the Kafka broker. Supported methods include SASL, X.509, system-assigned managed identity, and user-assigned managed identity.
254257

255258
```yaml
256259
authentication:
@@ -303,13 +306,15 @@ spec:
303306
```
304307

305308
> [!IMPORTANT]
306-
> By default, data flows don't send MQTT message user properties to Kafka destinations. These user properties include values such as `subject` that stores the name of the asset sending the message. To include user properties in the Kafka message, you must update the `DataflowEndpoint` configuration to include: `copyMqttProperties: enabled`.
309+
> By default, data flows don't send MQTT message user properties to Kafka destinations. These user properties include values such as `subject` that stores the name of the asset sending the message. To include user properties in the Kafka message, you must update the `DataflowEndpoint` configuration to include `copyMqttProperties: enabled`.
310+
311+
## Endpoint type for destinations only
307312

308-
## Endpoint types for destinations only
313+
The following endpoint type is used for destinations only.
309314

310315
### Local storage and Edge Storage Accelerator
311316

312-
Use the local storage option to send data to a locally available persistent volume, through which you can upload data via Edge Storage Accelerator (ESA) edge volumes. In this case, the format must be parquet.
317+
Use the local storage option to send data to a locally available persistent volume, through which you can upload data via Edge Storage Accelerator edge volumes. In this case, the format must be Parquet.
313318

314319
```yaml
315320
apiVersion: connectivity.iotoperations.azure.com/v1beta1

0 commit comments

Comments
 (0)