Aggiungere un'origine MQTT a un flusso di eventi

Questo articolo illustra come aggiungere una sorgente MQTT (Message Queuing Telemetry Transport) a un flusso di eventi nella piattaforma Fabric Real-Time Intelligence.

Message Queuing Telemetry Transport (MQTT) è un protocollo di messaggistica di pubblicazione-sottoscrizione leggero progettato per ambienti vincolati e ampiamente usato per scenari IoT (Internet of Things). Il connettore MQTT per Fabric Eventstream consente di connettersi a qualsiasi broker MQTT e inserire messaggi direttamente in Eventstream, abilitando la trasformazione e il routing in tempo reale a varie destinazioni all'interno di Fabric per analisi e informazioni dettagliate.

Prerequisiti

Prima di iniziare, è necessario completare i prerequisiti seguenti:

  • Un'area di lavoro con capacità Fabric o tipo di area di lavoro Fabric Trial.

  • Accesso all'area di lavoro con ruoli collaboratore o superiore dell'area di lavoro.

  • Assicurati che il broker MQTT sia accessibile pubblicamente e non limitato da un firewall o da una rete virtuale. Se si trova in una rete protetta, connettersi utilizzando il connettore Eventstream per l'inserimento della rete virtuale.

  • Se si prevede di usare le impostazioni TLS/mTLS, assicurarsi che i certificati necessari siano disponibili in Azure Key Vault:

    • Importare i certificati necessari in Azure Key Vault nel formato .pem.
    • L'utente che configura i dati di origine e anteprima deve avere l'autorizzazione per accedere ai certificati nel Key Vault(ad esempio, Key Vault Utente certificato o Key Vault Administrator).
    • Se l'utente corrente non dispone delle autorizzazioni necessarie, i dati non possono essere visualizzati in anteprima da questa origine in Eventstream.

A seconda dello scenario, è anche possibile usare uno degli approcci seguenti per trasmettere i dati MQTT a Eventstream:

Aggiungere il connettore MQTT

È possibile aggiungere il connettore MQTT a Eventstream in due modi:

Da un flusso di eventi

Aggiungere un'origine MQTT direttamente a un flusso di eventi. Questo approccio funziona al meglio quando si vuole configurare un flusso di eventi dedicato per l'elaborazione e il routing dei dati MQTT.

  1. In Real-Time Intelligence di Fabric, crea un nuovo Eventstream o aprine uno esistente.

  2. Selezionare Aggiungi origine nell'area di disegno.

    Screenshot che mostra l'opzione Aggiungi origine nella schermata eventstream.

Dall'hub di Real-Time

Connetti a un'origine MQTT dall'hub Real-Time e crea un flusso di dati. Questo approccio funziona al meglio quando si vuole individuare e gestire il flusso di dati MQTT insieme ad altre origini di streaming.

  1. In Infrastruttura passare a Real-Time hub.

  2. Selezionare Aggiungi dati e cercare MQTT.

    Screenshot che mostra l'opzione Aggiungi origine nell'hub Real-Time.

Configurare il connettore MQTT

  1. Nella pagina Connetti, seleziona Nuova connessione.

    Screenshot che mostra la pagina Connetti, con il collegamento Nuova connessione evidenziato.

    Se esiste già una connessione all'origine MQTT, seleziona tale connessione esistente.

  2. Per creare una nuova connessione cloud, immettere le informazioni seguenti:

    Screenshot che mostra la sezione Impostazioni connessione.

    1. URL broker MQTT: immettere l'URL del broker MQTT. I protocolli supportati sono ssl://, wss://e tcp://.

      Note

      L'origine MQTT supporta connessioni MQTT protette con Transport Layer Security (TLS) o Secure Sockets Layer (SSL) tra il broker MQTT e Eventstream. Se il certificato del server non è firmato da un'autorità di certificazione (CA) inclusa nell'elenco ca attendibile, è possibile fornire un certificato personalizzato nelle impostazioni TLS/mTLS.

    2. Nome connessione: immettere un nome per la connessione a MQTT.

    3. Immettere il nome utente e la password del broker MQTT.

    4. Selezionare Connetti.

  3. In Nome argomento immettere l'argomento MQTT a cui eseguire la sottoscrizione. Il connettore supporta solo un singolo argomento.

  4. Per Versione selezionare V5 o V3 in base alla versione del protocollo del broker MQTT.

  5. Se il broker MQTT richiede mTLS, espandere le impostazioni TLS/mTLS e configurare le opzioni seguenti in base alle esigenze.

    • Certificato ca attendibile: abilitare questa opzione per configurare il certificato ca del server. Selezionare la sottoscrizione, il gruppo di risorse e l'archivio di chiavi, e specificare il nome del certificato.
    • Certificato client e chiave: abilitare questa opzione per configurare il certificato client e la chiave.
      • Usare lo stesso Key Vault per il certificato CA: selezionare questa casella di controllo quando entrambi i certificati sono archiviati nello stesso Key Vault. Specificare quindi il nome del certificato.
      • Se non si seleziona questa casella di controllo, selezionare la sottoscrizione, il gruppo di risorse e Key Vault, e poi specificare il nome del certificato.

    Note

    Per le origini in una rete privata, assicurarsi che l'Azure Key Vault contenente i certificati sia collegato alla rete virtuale di Azure utilizzata dal gateway dati della rete virtuale di streaming per l'iniezione nella rete virtuale del connettore Eventstream, ad esempio tramite un endpoint privato.

    Screenshot che mostra la pagina Configura impostazioni di connessione.

Requisiti dei certificati TLS/mTLS

Se sono state configurate le impostazioni TLS/mTLS, fare riferimento a questa sezione per le specifiche del formato del certificato e gli errori di configurazione comuni durante il caricamento in Azure Key Vault.

Catena di certificati

Certificate Dimensioni chiave Firmato da Scopo
Certificato CA RSA a 4096 bit Autofirmato Trust anchor: il broker verifica i certificati client rispetto a questa CA.
Certificato del server RSA a 2048 bit CA Identità del broker: il client verifica che il broker sia effettivamente chi dichiara di essere.
Certificato del cliente RSA a 2048 bit CA Identità client: il broker verifica che il connettore sia autorizzato.

Requisiti SAN del certificato del server

Il certificato del server deve includere l'indirizzo IP e il nome DNS del broker nel Subject Alternative Name (SAN) per passare la verifica dell'hostname (ssl.endpoint.identification.algorithm=https):

subjectAltName:
  DNS.1 = {broker FQDN}
  DNS.2 = localhost
  IP.1  = {broker public IP}
  IP.2  = 127.0.0.1

Caricare i certificati in Azure Key Vault

I certificati vengono caricati come oggetti certificato Azure Key Vault nel formato PEM. Il file di bundle PEM è certificato e chiave privata concatenata in un unico file:

-----BEGIN CERTIFICATE-----
MIIExjCCA...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIB...
-----END RSA PRIVATE KEY-----

Usare un criterio di importazione che corrisponda alle proprietà della chiave:

{
  "secretProperties": {
    "contentType": "application/x-pem-file"
  },
  "keyProperties": {
    "exportable": true,
    "keyType": "RSA",
    "keySize": 4096,
    "reuseKey": false
  },
  "issuerParameters": {
    "name": "Unknown"
  }
}

Per importare il certificato, eseguire il comando seguente:

az keyvault certificate import \
  --vault-name {kvName} \
  --name {certName} \
  --file {pemBundleFile} \
  --policy @{policyFile}

Errori comuni

Evitare Eseguire invece questa operazione
Caricare come PKCS#12/PFX Usare il formato PEM con contentType: application/x-pem-file.
Caricare il certificato senza chiave privata Il bundle PEM deve contenere sia il certificato che la chiave.
Impostare keySize: 2048 per una chiave a 4096 bit Il keySize valore deve corrispondere alla dimensione effettiva della chiave.
Impostare issuerParameters.name: "Self" Usare "Unknown" per i certificati firmati esternamente.
Utilizzare le terminazioni di riga di Windows (CRLF) Il file PEM deve usare terminazioni di riga Unix (solo LF).

Dettagli del flusso o della sorgente

  1. Nella pagina Connetti seguire uno di questi passaggi in base al fatto che si usi Eventstream o Real-Time hub.

    • Eventstream:

      Nel riquadro Dettagli origine a destra seguire questa procedura:

      1. In Nome origine selezionare il pulsante Matita per modificare il nome.

      2. Si noti che il Nome Eventstream e il Nome del flusso sono di sola lettura.

    • Hub in tempo reale:

      Nella sezione Dettagli flusso a destra seguire questa procedura:

      1. Selezionare l'area di lavoro Fabric in cui si vuole creare il flusso di eventi.

      2. Per Nome flusso di eventi, selezionare il pulsante Matita e immettere un nome per il flusso di eventi.

      3. Il valore del nome stream viene generato automaticamente aggiungendo -stream al nome del flusso di eventi. Questo flusso viene visualizzato nella pagina Tutti i flussi di dati dell'hub in tempo reale al termine della procedura guidata.

  2. Selezionare Avanti nella parte inferiore della pagina Configura .

Rivedere e connettere

Nella schermata Rivedi e connetti esaminare il riepilogo e selezionare Aggiungi (Eventstream) o Connetti ( hubReal-Time).

Visualizzare il flusso di eventi aggiornato

  1. L'origine MQTT viene visualizzata sulla tela di disegno dell'eventstream in modalità di modifica. Per pubblicare, selezionare Pubblica sulla barra multifunzione.

    Screenshot che mostra l'editor con il pulsante Pubblica selezionato.

  2. Dopo la pubblicazione, la sorgente è disponibile nella Live view. Selezionare il riquadro MQTT nel diagramma per visualizzare i dettagli.

    Screenshot che mostra l'editor nella visualizzazione in diretta.

Per un elenco di tutte le origini supportate, vedere Aggiungere e gestire un'origine evento.