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, dataExplorerdataLakeStorage, , fabricOneLakeo localStorage.
authentication.method Metodo di autenticazione. Valori: systemAssignedManagedIdentity, x509Credentials, userAssignedManagedIdentityo 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 Usernamesessioni 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>