Configurare gli endpoint del flusso di dati
Importante
Anteprima delle operazioni di Azure IoT: abilitata da Azure Arc è attualmente in anteprima. Non è consigliabile usare questo software di anteprima negli ambienti di produzione.
Sarà necessario distribuire una nuova installazione di Azure IoT Operations quando viene resa disponibile una versione disponibile a livello generale. Non sarà possibile aggiornare un'installazione di anteprima.
Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.
Per iniziare a usare i flussi di dati, è necessario configurare gli endpoint. Un endpoint è il punto di connessione per il flusso di dati. È possibile usare un endpoint come origine o destinazione per il flusso di dati. Alcuni tipi di endpoint possono essere usati sia come origini che come destinazioni, mentre altri sono solo per destinazioni. Un flusso di dati richiede almeno un endpoint di origine e un endpoint di destinazione.
L'esempio seguente mostra una definizione di risorsa personalizzata con tutte le opzioni di configurazione. I campi obbligatori dipendono dal tipo di endpoint. Esaminare le sezioni per ogni tipo di endpoint per indicazioni sulla configurazione.
apiVersion: connectivity.iotoperations.azure.com/v1beta1
kind: DataflowEndpoint
metadata:
name: <endpoint-name>
spec:
endpointType: <endpointType> # mqtt, kafka, or localStorage
authentication:
method: <method> # systemAssignedManagedIdentity, x509Credentials, userAssignedManagedIdentity, or serviceAccountToken
systemAssignedManagedIdentitySettings: # Required if method is systemAssignedManagedIdentity
audience: https://eventgrid.azure.net
### OR
# x509CredentialsSettings: # Required if method is x509Credentials
# certificateSecretName: x509-certificate
### OR
# userAssignedManagedIdentitySettings: # Required if method is userAssignedManagedIdentity
# clientId: <id>
# tenantId: <id>
# audience: https://eventgrid.azure.net
### OR
# serviceAccountTokenSettings: # Required if method is serviceAccountToken
# audience: my-audience
mqttSettings: # Required if endpoint type is mqtt
host: example.westeurope-1.ts.eventgrid.azure.net:8883
tls: # Omit for no TLS or MQTT.
mode: <mode> # enabled or disabled
trustedCaCertificateConfigMap: ca-certificates
sharedSubscription:
groupMinimumShareNumber: 3 # Required if shared subscription is enabled.
groupName: group1 # Required if shared subscription is enabled.
clientIdPrefix: <prefix>
retain: keep
sessionExpirySeconds: 3600
qos: 1
protocol: mqtt
maxInflightMessages: 100
Nome | Descrizione |
---|---|
endpointType |
Tipo dell'endpoint. Valori: mqtt , kafka , dataExplorer dataLakeStorage , , fabricOneLake o localStorage . |
authentication.method |
Metodo di autenticazione. Valori: systemAssignedManagedIdentity , x509Credentials , userAssignedManagedIdentity o serviceAccountToken . |
authentication.systemAssignedManagedIdentitySettings.audience |
Destinatari del servizio per l'autenticazione. Il valore predefinito è https://eventgrid.azure.net . |
authentication.x509CredentialsSettings.certificateSecretName |
Nome segreto del certificato X.509. |
authentication.userAssignedManagedIdentitySettings.clientId |
ID client per l'identità gestita assegnata dall'utente. |
authentication.userAssignedManagedIdentitySettings.tenantId |
ID tenant. |
authentication.userAssignedManagedIdentitySettings.audience |
Destinatari del servizio per l'autenticazione. Il valore predefinito è https://eventgrid.azure.net . |
authentication.serviceAccountTokenSettings.audience |
Destinatari dell'account del servizio. Facoltativo, il valore predefinito è il gruppo di destinatari dell'account del servizio interno broker. |
mqttSettings.host |
Host del broker MQTT sotto forma di <nome host>:<porta>. Si connette al broker MQTT se omesso. |
mqttSettings.tls |
Configurazione TLS. Omettere se non è presente un broker TLS o MQTT. |
mqttSettings.tls.mode |
Abilitare o disabilitare TLS. Valori: enabled o disabled . Il valore predefinito è disabled . |
mqttSettings.tls.trustedCaCertificateConfigMap |
Mappa di configurazione del certificato dell'autorità di certificazione (CA) attendibile. Nessun certificato della CA se omesso. Nessun certificato CA funziona per endpoint pubblici come la Griglia di eventi di Azure. |
mqttSettings.sharedSubscription |
Impostazioni della sottoscrizione condivisa. Nessuna sottoscrizione condivisa se omessa. |
mqttSettings.sharedSubscription.groupMinimumShareNumber |
Numero di client da usare per la sottoscrizione condivisa. |
mqttSettings.sharedSubscription.groupName |
Nome del gruppo di sottoscrizioni condiviso. |
mqttSettings.clientIdPrefix |
Prefisso ID client. L'ID client generato dal flusso di dati è <prefix>-id. Nessun prefisso se omesso. |
mqttSettings.retain |
Indica se mantenere o meno l'impostazione di conservazione. Valori: keep o never . Il valore predefinito è keep . |
mqttSettings.sessionExpirySeconds |
La scadenza della sessione è in secondi. Il valore predefinito è 3600 . |
mqttSettings.qos |
Qualità del servizio. Valori: 0 o 1 . Il valore predefinito è 1 . |
mqttSettings.protocol |
Usare MQTT o web socket. Valori: mqtt o websockets . Il valore predefinito è mqtt . |
mqttSettings.maxInflightMessages |
Numero massimo di messaggi da mantenere in anteprima. Per la sottoscrizione, è il valore massimo di ricezione. Per la pubblicazione, è il numero massimo di messaggi da inviare prima di attendere un riconoscimento. Il valore predefinito è 100 . |
Tipi di endpoint da usare come origini e destinazioni
I tipi di endpoint seguenti vengono usati come origini e destinazioni.
MQTT
Gli endpoint MQTT vengono usati per le origini e le destinazioni MQTT. È possibile configurare l'endpoint, Transport Layer Security (TLS), l'autenticazione e altre impostazioni.
Broker MQTT
Per configurare un endpoint broker MQTT con le impostazioni predefinite, è possibile omettere il campo host insieme ad altri campi facoltativi. Questa configurazione consente di connettersi al broker MQTT predefinito senza alcuna configurazione aggiuntiva e in modo duraturo, indipendentemente dalla modalità di modifica del broker.
apiVersion: connectivity.iotoperations.azure.com/v1beta1
kind: DataflowEndpoint
metadata:
name: mq
spec:
endpointType: mqtt
authentication:
method: serviceAccountToken
serviceAccountTokenSettings:
audience: aio-mq
mqttSettings:
{}
Griglia di eventi
Per configurare un endpoint broker MQTT Griglia di eventi di Azure, usare l'identità gestita per l'autenticazione.
apiVersion: connectivity.iotoperations.azure.com/v1beta1
kind: DataflowEndpoint
metadata:
name: eventgrid
spec:
endpointType: mqtt
authentication:
method: systemAssignedManagedIdentity
systemAssignedManagedIdentitySettings:
audience: "https://eventgrid.azure.net"
mqttSettings:
host: example.westeurope-1.ts.eventgrid.azure.net:8883
tls:
mode: Enabled
Altri broker MQTT
Per altri broker MQTT, è possibile configurare l'endpoint, TLS, l'autenticazione e altre impostazioni in base alle esigenze.
spec:
endpointType: mqtt
authentication:
...
mqttSettings:
host: example.mqttbroker.com:8883
tls:
mode: Enabled
trustedCaCertificateConfigMap: <your CA certificate config map>
In authentication
è possibile configurare il metodo di autenticazione per il broker MQTT. I metodi supportati includono X.509:
authentication:
method: x509Credentials
x509CredentialsSettings:
certificateSecretName: <your x509 secret name>
Importante
Quando si usa l'autenticazione X.509 con un broker MQTT di Griglia di eventi, passare alla configurazione dello spazio dei nomi >griglia di eventi e controllare queste impostazioni:
- Abilita MQTT: selezionare la casella di controllo.
- Abilita origini dei nomi di autenticazione client alternative: selezionare la casella di controllo.
- Nome soggetto certificato: selezionare questa opzione nell'elenco a discesa.
- Numero massimo di sessioni client per nome di autenticazione: impostare su 3 o più.
Le opzioni alternative per l'autenticazione client e il numero massimo di MQTT CONNECT Username
sessioni client consentono ai flussi di dati di usare il nome soggetto del certificato client per l'autenticazione anziché . Questa funzionalità è importante in modo che i flussi di dati possano generare più istanze e possano comunque connettersi. Per altre informazioni, vedere Autenticazione del certificato client MQTT di Griglia di eventi e Supporto per più sessioni.
Identità gestita assegnata dal sistema:
authentication:
method: systemAssignedManagedIdentity
systemAssignedManagedIdentitySettings:
# Audience of the service to authenticate against
# Optional; defaults to the audience for Event Grid MQTT Broker
audience: https://eventgrid.azure.net
Identità gestita assegnata dall'utente:
authentication:
method: userAssignedManagedIdentity
userAssignedManagedIdentitySettings:
clientId: <id>
tenantId: <id>
Kubernetes SAT:
authentication:
method: serviceAccountToken
serviceAccountTokenSettings:
audience: <your service account audience>
È anche possibile configurare sottoscrizioni condivise, QoS, versione MQTT, prefisso ID client, keep-alive, sessione pulita, scadenza sessione, conservazione e altre impostazioni.
spec:
endpointType: mqtt
mqttSettings:
sharedSubscription:
groupMinimumShareNumber: 3
groupName: group1
qos: 1
mqttVersion: v5
clientIdPrefix: dataflow
keepRetain: enabled
Kafka
Gli endpoint Kafka vengono usati per origini e destinazioni Kafka. È possibile configurare l'endpoint, TLS, l'autenticazione e altre impostazioni.
Hub eventi di Azure
Per configurare un Hub eventi di Azure Kafka, è consigliabile usare l'identità gestita per l'autenticazione.
apiVersion: connectivity.iotoperations.azure.com/v1beta1
kind: DataflowEndpoint
metadata:
name: kafka
spec:
endpointType: kafka
authentication:
method: systemAssignedManagedIdentity
systemAssignedManagedIdentitySettings:
audience: <your Event Hubs namespace>.servicebus.windows.net
kafkaSettings:
host: <your Event Hubs namespace>.servicebus.windows.net:9093
tls:
mode: Enabled
consumerGroupId: mqConnector
Altri broker Kafka
Ad esempio, per configurare un endpoint Kafka, impostare l'host, TLS, l'autenticazione e altre impostazioni in base alle esigenze.
apiVersion: connectivity.iotoperations.azure.com/v1beta1
kind: DataflowEndpoint
metadata:
name: kafka
spec:
endpointType: kafka
authentication:
...
kafkaSettings:
host: example.kafka.com:9093
tls:
mode: Enabled
consumerGroupId: mqConnector
In authentication
è possibile configurare il metodo di autenticazione per il broker Kafka. I metodi supportati includono SASL, X.509, l’identità gestita assegnata dal sistema e l’identità gestita assegnata dall'utente.
authentication:
method: sasl
saslSettings:
saslType: PLAIN
tokenSecretName: <your token secret name>
# OR
method: x509Credentials
x509CredentialsSettings:
certificateSecretName: <your x509 secret name>
# OR
method: systemAssignedManagedIdentity
systemAssignedManagedIdentitySettings:
audience: https://<your Event Hubs namespace>.servicebus.windows.net
# OR
method: userAssignedManagedIdentity
userAssignedManagedIdentitySettings:
clientId: <id>
tenantId: <id>
Configurare le impostazioni specifiche per gli endpoint di origine
Per gli endpoint Kafka, è possibile configurare impostazioni specifiche per l'uso dell'endpoint come origine. Queste impostazioni non hanno alcun effetto se l'endpoint viene usato come destinazione.
spec:
endpointType: kafka
kafkaSettings:
consumerGroupId: fromMq
Configurare le impostazioni specifiche per gli endpoint di destinazione
Per gli endpoint Kafka, è possibile configurare impostazioni specifiche per l'uso dell'endpoint come destinazione. Queste impostazioni non hanno alcun effetto se l'endpoint viene usato come origine.
spec:
endpointType: kafka
kafkaSettings:
compression: gzip
batching:
latencyMs: 100
maxBytes: 1000000
maxMessages: 1000
partitionStrategy: static
kafkaAcks: all
copyMqttProperties: enabled
Importante
Per impostazione predefinita, i flussi di dati non inviano le proprietà utente del messaggio MQTT alle destinazioni Kafka. Queste proprietà utente includono valori come subject
, che archivia il nome dell'asset che invia il messaggio. Per includere le proprietà utente nel messaggio Kafka, è necessario aggiornare la DataflowEndpoint
configurazione in modo da includere copyMqttProperties: enabled
.
Tipo di endpoint solo per le destinazioni
Il tipo di endpoint seguente viene usato solo per le destinazioni.
Archiviazione locale e Acceleratore di archiviazione Edge
Usare l'opzione di archiviazione locale per inviare dati a un volume permanente disponibile in locale, tramite il quale è possibile caricare i dati tramite i volumi perimetrali dell'acceleratore di archiviazione Edge. In questo caso, il formato deve essere Parquet.
apiVersion: connectivity.iotoperations.azure.com/v1beta1
kind: DataflowEndpoint
metadata:
name: esa
spec:
endpointType: localStorage
localStorageSettings:
persistentVolumeClaimRef: <your PVC name>