Creare flussi di lavoro di app logiche Standard per la distribuzione ibrida sulla propria infrastruttura

Si applica: App per la logica di Azure (Standard)

Per situazioni in cui devi usare, controllare e gestire la tua infrastruttura, crea flussi di lavoro per app Standard Logic utilizzando il modello di distribuzione ibrido in App per la logica di Azure. Questo modello offre funzionalità per creare e ospitare soluzioni di integrazione per ambienti parzialmente connessi che richiedono l'elaborazione, l'archiviazione e l'accesso alla rete locali. L'infrastruttura può includere sistemi locali, cloud privati e cloud pubblici. Utilizzando il modello ibrido, il tuo flusso di lavoro Standard Logic App è alimentato dal runtime App per la logica di Azure, che è ospitato sulla tua infrastruttura come parte di un'estensione App contenitore di Azure.

Per una panoramica dell'architettura che mostra dove sono ospitati ed eseguiti flussi di lavoro di app per la logica Standard in un ambiente parzialmente connesso, vedere Configurare i requisiti dell'infrastruttura per la distribuzione ibrida per le app per la logica Standard.

Questa guida guida mostra come creare e distribuire un flusso di lavoro di app a logica standard utilizzando il modello di distribuzione ibrido dopo aver configurato le risorse necessarie per ospitare la tua app.

Importante

L'esecuzione locale di App per la logica di Azure e i flussi di lavoro che utilizzano solo dipendenze disponibili localmente possono continuare a funzionare quando la connettività Azure viene interrotta. La gestione, il deployment, il monitoraggio, le operazioni di identità e i connettori gestiti dipendenti da Azure potrebbero non essere disponibili mentre sono disconnessi. Dopo 24 ore, potresti perdere i dati di loging, anche se l'esecuzione locale continua. Per maggiori informazioni, vedere Limitazioni per la distribuzione ibrida.

Limitazioni

Per le regioni Azure attualmente supportate, i cluster Kubernetes supportati e le limitazioni a livello di piattaforma, vedi Limitazioni per il deployment ibrido.

Le seguenti limitazioni si applicano quando si creano e si utilizzano app di logica ibrida:

Limitazione Descrizione
Autenticazione dell'identità gestita per connessioni API gestite Le connessioni API gestite attualmente non supportano l'autenticazione dell'identità gestita nelle app a logica ibrida. Devi creare la registrazione della tua app utilizzando Microsoft Entra ID. Per altre informazioni, seguire questi passi più avanti in questa guida.
Trigger basati su funzioni Alcuni trigger basati su funzioni, ad esempio BLOB di Azure, Cosmos DB e Hub eventi, richiedono una connessione all'account di archiviazione di Azure associato all'app per la logica Standard. Se si usano trigger basati su funzioni, nelle variabili di ambiente dell'app per la logica Standard nel portale di Azure o nel file local.settings.json del progetto dell'app per la logica in Visual Studio Code, aggiungere l'impostazione dell'app denominata AzureWebJobsStorage e specificare la stringa di connessione dell'account di archiviazione.

"Values": {
"name": "AzureWebJobsStorage",
"value": "{storage-account-connection-string}"
}

Comportamento durante un'interruzione della connettività Azure

  • I flussi di lavoro potrebbero comunque continuare a essere eseguiti se il runtime e tutte le dipendenze del flusso di lavoro necessarie rimangono disponibili localmente.
  • Le operazioni integrate si eseguono con l'runtime locale, ma qualsiasi servizio esterno chiamato da un'operazione deve rimanere raggiungibile.
  • Le operazioni dei connettori gestiti richiedono la connettività ai loro servizi ospitati su Azure.
  • La gestione del portale Azure, il deployment basato su Azure, le operazioni di identità e la consegna della telemetria potrebbero diventare non disponibili o ritardati.
  • Se l'esecuzione rimane disconnessa dopo 24 ore, potresti perdere i dati di logging generati dopo questo tempo.

Se i tuoi carichi di lavoro richiedono distribuzione, monitoraggio, avvisi, nuovo invio delle esecuzioni o operazioni di gestione delle identità durante una disconnessione prolungata, verifica il comportamento per la tua configurazione specifica con il team dell'account Microsoft o con il team di prodotto.

Prerequisiti

  • Un account e una sottoscrizione di Azure. Se non si ha una sottoscrizione, è possibile iscriversi per creare un account Azure gratuito.

  • Le seguenti risorse gestite dal cliente, che devono tutte esistere all'interno della stessa rete per garantire la connettività richiesta:

    • Un cluster Kubernetes supportato collegato ad Azure Arc
    • Un database SQL per memorizzare localmente la cronologia di esecuzioni dei workflow, input e output per l'elaborazione
    • Una condivisione file SMB (Server Message Block) per archiviare localmente gli artefatti usati dai flussi di lavoro

    Per soddisfare questi requisiti, configura queste risorse per supportare il deployment ibrido per i flussi di lavoro Standard.

  • Per lavorare in Visual Studio Code, è necessaria l'estensione App per la logica di Azure (Standard) per Visual Studio Code con i prerequisiti correlati.

    Suggerimento

    Se si dispone di una nuova installazione di Visual Studio Code, verificare che sia possibile eseguire localmente un flusso di lavoro Standard di base prima di provare a eseguire la distribuzione nell'infrastruttura. Questa esecuzione di test consente di isolare eventuali errori che potrebbero esistere nel progetto del flusso di lavoro Standard.

Creare l'app per la logica Standard

Crea la tua app di logica Standard per la distribuzione ibrida seguendo questi passaggi:

  1. Nella casella di ricerca del portale di Azure, immettere app per la logica e selezionare App per la logica.

  2. Nella barra degli strumenti della pagina App per la logica, selezionare Aggiungi.

  3. Nella pagina Crea app per la logica, in Standard, selezionare Ibrido.

  4. Nella pagina Crea app per la logica (Ibrido), specificare le informazioni seguenti:

    Proprietà Obbligatoria Valore Descrizione
    Sottoscrizione Sì < Azure-subscription-name> Il nome della sottoscrizione di Azure.

    In questo esempio viene usato Con pagamento in base al consumo.
    Gruppo di risorse Sì < Azure-resource-group-name> Il gruppo di risorse di Azure in cui viene creata l'app ibrida e le risorse correlate. Questo nome deve essere univoco tra aree e può contenere solo lettere, numeri, trattini (-), trattino basso (_), parentesi (()) e punti (.).

    In questo esempio viene creato un gruppo di risorse denominato Hybrid-RG.
    Nome dell'app per la logica Sì < logic-app-name> Il nome dell'app per la logica, che deve essere univoco tra aree e può contenere solo lettere minuscole, numeri o trattini (-).

    Questo esempio usa my-logic-app-hybrid.
    Area Sì < Regione di Azure> Una regione Azure che supporta il deployment ibrido.

    In questo esempio viene usato Stati Uniti orientali.
    Ambiente connesso dell'app contenitore Sì < nome dell'ambiente connesso> Il cluster Kubernetes abilitato per Arc creato come ambiente di distribuzione per l'app per la logica. Per altre informazioni, vedere Esercitazione: Abilitare App Azure Container in Kubernetes abilitato per Azure Arc.
    Configurare le impostazioni di archiviazione Sì Abilitato o disabilitato Continua con la scheda Archiviazione nella pagina Crea app per la logica (Ibrido).

    L'esempio seguente mostra la pagina di creazione dell'app per la logica nel portale di Azure con valori di esempio:

    Screenshot che mostra il portale di Azure e la pagina di creazione dell'app per la logica.

  5. Nella pagina Archiviazione, specificare le informazioni seguenti sul provider di archiviazione e sulla condivisione file SMB configurati in precedenza:

    Proprietà Obbligatoria Valore Descrizione
    Stringa di connessione SQL Sì < sql-server-connection-string> Stringa di connessione SQL Server salvata in precedenza. Per altre informazioni, vedere Creare SQL Server provider di archiviazione.
    Nome host Sì < file-share-host-name> Nome host per la condivisione file SMB.
    Percorso condivisione _file Sì < percorso-di-condivisione-file> Percorso della condivisione file per la condivisione file SMB.
    Nome utente Sì < nome-utente-condivisione-file> Nome utente per la condivisione file SMB.
    Parola d’ordine Sì < file-share-password> Password per la condivisione file SMB.
  6. Al termine, seleziona Rivedi e crea. Confermare le informazioni fornite e selezionare Crea.

  7. Al termine della distribuzione di Azure, selezionare Vai alla risorsa.

    Il portale di Azure apre la risorsa dell'applicazione logica, ad esempio:

    Screenshot che mostra il portale di Azure con l'app per la logica Standard per la distribuzione ibrida creata come app contenitore.

  8. Nel menu delle risorse dell'app per la logica, in Flussi di lavoro selezionare Flussi di lavoro.

  9. Nella barra degli strumenti della pagina Flussi di lavoro selezionare Aggiungi per aggiungere un flusso di lavoro vuoto con stato o senza stato.

  10. Dopo l'apertura della finestra di progettazione, compilare il flusso di lavoro aggiungendo un trigger e azioni.

    Per maggiori informazioni, vedere Creare un flusso di lavoro con un trigger e azioni.

Controllo delle versioni per le distribuzioni ibride

Un'app per la logica Standard con l'opzione di hosting ibrida crea automaticamente una nuova revisione, ovvero un concetto di controllo delle versioni di App Contenitore di Azure, ogni volta che si salvano le modifiche a un flusso di lavoro figlio. Questa revisione potrebbe richiedere un po' di tempo per l'attivazione, il che significa che, dopo aver salvato le modifiche, potrebbe essere necessario attendere alcuni istanti prima di testare il flusso di lavoro.

Se le modifiche non sono ancora state visualizzate nel flusso di lavoro, è possibile verificare se la revisione esiste:

  1. Nel portale di Azure, aprire la risorsa. Nel menu delle risorse, in Revisioni, selezionare Revisioni e repliche.

  2. Nella pagina Revisioni e repliche, nella scheda Revisioni attive, verificare se viene visualizzata una nuova revisione nell'elenco.

Per altre informazioni, vedere le seguenti risorse:

Configurare telemetria migliorata o OpenTelemetry per il monitoraggio delle prestazioni

È possibile configurare una raccolta di dati di telemetria avanzata in Application Insights per l'app per la logica Standard e quindi visualizzare i dati raccolti al termine dell'esecuzione del flusso di lavoro. Questa funzionalità offre un'esperienza più semplice per ottenere informazioni dettagliate sui flussi di lavoro e un maggiore controllo sugli eventi di filtro nell'origine dati, che consente di ridurre i costi di archiviazione. Questi miglioramenti si concentrano sulle metriche delle prestazioni in tempo reale che forniscono informazioni dettagliate sull'integrità e sul comportamento del sistema.

Per scenari parzialmente connessi e locali, è possibile configurare l'app per la logica Standard per generare dati di telemetria in base alle impostazioni dell'app supportate da OpenTelemetry definite per l'ambiente specifico. Per impostazione predefinita, questi dati di telemetria vengono inviati ad Application Insights. Per ulteriori informazioni, vedere Abilitare la telemetria avanzata in Application Insights per i flussi di lavoro standard in App per la logica di Azure.

Application Insights richiede connettività Azure. Durante un'interruzione della connettività, la consegna della telemetria potrebbe subire ritardi e potresti perdere i dati di registrazione generati dopo 24 ore. Valida qualsiasi requisito di monitoraggio locale e avviso rispetto alla destinazione e configurazione della telemetria che usi.

Modificare vCPU e allocazione di memoria nel portale di Azure

È possibile modificare le impostazioni di vCPU e memoria per la risorsa dell'app per la logica Standard. Queste modifiche influiscono sull'addebito di fatturazione per i carichi di lavoro dell'app logica Standard.

  1. Nel portale di Azure, aprire la risorsa dell’app per la logica Standard.

  2. Nel menu delle risorse, in Impostazioni selezionare Contenitori.

  3. Nella barra degli strumenti della pagina Contenitori selezionare Modifica e distribuzione, che apre il riquadro Modifica un contenitore.

  4. Nella scheda Proprietà, in Allocazione risorse contenitore, modificare i valori seguenti in base allo scenario:

    Proprietà Valore Descrizione
    Core CPU - Valore predefinito: 1
    - Minimo: 0,25
    - Massimo: 2
    Definisce i core vCPU da assegnare alla tua istanza del contenitore. È possibile aumentare questo valore di 0,25 core fino al valore massimo. Il numero totale in tutte le istanze del contenitore per questa app per la logica è limitato a 2 core.
    Memoria - Valore predefinito: 2
    - Minimo: 0,1
    - Massimo: 4
    Determina la capacità di memoria in gibibytes (GiB) da assegnare all'istanza del contenitore. È possibile aumentare questo valore di 0,1 GiB fino al valore massimo. La capacità totale tra tutte le istanze dei container per questa applicazione logica è limitata a 4 GiB.
  5. Al termine, selezionare Salva.

Modificare il ridimensionamento delle repliche in portale di Azure

È possibile controllare la scalabilità automatica per l'intervallo di repliche distribuite in risposta a un evento trigger. Una replica è una nuova istanza di una revisione o versione di una risorsa dell'app per la logica. Per modificare i valori minimo e massimo per questo intervallo, è possibile modificare le regole di scala per determinare i tipi di evento che attivano il ridimensionamento. Per altre informazioni, vedere Impostare le regole di ridimensionamento in App contenitore di Azure.

  1. Nel portale di Azure, aprire la risorsa dell’app per la logica Standard.

  2. Nel menu delle risorse, in Impostazioni, selezionare Scalabilità.

  3. Nella pagina Scalabilità, in Impostazione regola di scalabilità, modificare i valori seguenti in base allo scenario:

    Proprietà Valore Descrizione
    Numero minimo di repliche - Valore predefinito: 1
    - Minimo: 0
    - Massimo: 1000
    Determina il numero minimo di repliche consentite per la revisione in qualsiasi momento. Questo valore esegue l'override delle regole di scalabilità e deve essere minore del numero massimo di repliche.
    Numero massimo di repliche - Valore predefinito: 30
    - Minimo: 0
    - Massimo: 1000
    Determina il numero massimo di repliche consentite per la revisione in qualsiasi momento. Questo valore sostituisce le regole di scalabilità.
  4. Al termine, selezionare Salva.

Controllare il traffico in ingresso all'app per la logica in portale di Azure

È possibile esporre l'app per la logica al Web pubblico, alla rete virtuale e ad altre app per la logica nell'ambiente abilitando l'ingresso. Azure applica le impostazioni di ingresso tramite un set di regole che controllano il routing del traffico esterno e interno all'app per la logica. Quando i dati in ingresso sono abilitati, non è necessario creare un'istanza di Azure Load Balancer, un indirizzo IP pubblico o altre risorse di Azure per abilitare le richieste HTTP o il traffico TCP in ingresso. Per altre informazioni, vedere Ingresso in App contenitore.

Note

Quando si abilita l'ingresso, tutto il traffico verrà indirizzato alla revisione più recente per impostazione predefinita. Passare alla pagina Gestione revisioni per modificare le impostazioni del traffico.

  1. Nel menu delle risorse, in Impostazioni selezionare Ingresso.

  2. Nella pagina Ingresso accanto a Ingresso selezionare la casella Abilitato.

  3. In base allo scenario, configurare le opzioni rimanenti.

    Per altre informazioni, vedere la documentazione seguente:

Configurare l'autenticazione per le connessioni API gestite

Le connessioni API gestite attualmente non supportano l'autenticazione dell'identità gestita nelle app a logica ibrida. Per autenticare queste connessioni, devi creare la registrazione dell'app utilizzando Microsoft Entra ID. Puoi quindi aggiungere i valori di questa registrazione dell'app come variabili di ambiente nella tua risorsa App per la logica Standard. Questo modello di autenticazione richiede la connettività con Microsoft Entra ID.

Creare una registrazione dell'app con Microsoft Entra ID

Portale di Azure

  1. Per registrare una registrazione dell'applicazione, nel portale di Azure, seguire Avvio rapido: Registrare un'applicazione con Microsoft Identity Platform.

  2. Al termine della creazione, trovare la nuova registrazione dell'app nel portale.

  3. Nel menu della risorsa selezionare Panoramica e salvare i valori seguenti, necessari in un secondo momento per l'autenticazione della connessione:

    • ID client
    • ID tenant
  4. Nella barra laterale delle risorse, seleziona Certificati & segreti>Segreti client Nuovo>segreto client.

  5. Crea il segreto client e salva immediatamente il Valore del segreto. Il valore non ricompare dopo aver lasciato la pagina.

  6. Per l'ID oggetto, seguire questa procedura:

    1. Nella pagina Panoramica selezionare Applicazione gestita nel collegamento alla directory locale per la registrazione dell'app, come illustrato di seguito:

      Screenshot che mostra la registrazione dell'app con il collegamento selezionato per l'applicazione gestita nella directory locale.

    2. Nella pagina visualizzata copiare e salvare il valore dell'ID Oggetto:

      Screenshot che mostra la registrazione dell'app con l'ID oggetto selezionato.

  7. Aggiungere ora i valori salvati come variabili di ambiente alla risorsa dell'app per la logica Standard.

Interfaccia della riga di comando di Azure

  1. Per creare una registrazione di un'app e il suo principale di servizio senza assegnare un ruolo Azure, esegui il seguente comando:

    az ad sp create-for-rbac \
       --name <app-registration-name> \
       --skip-assignment
    
  2. Dall'output del comando, salva i valori appId, password e tenant come valori di ID client, segreto client e ID tenant. Il client secret appare solo nell'output del comando.

  3. Ottieni l'ID oggetto dell'entità servizio:

    az ad sp show \
       --id <client-ID> \
       --query id \
       --output tsv
    
  4. Aggiungere ora i valori salvati come variabili di ambiente alla risorsa dell'app per la logica Standard.

Per ulteriori informazioni consulta:

Aggiungere i valori di registrazione dell'app all'app per la logica Standard

  1. Nel portale di Azure, passare alla risorsa dell’app per la logica Standard.

  2. Nel menu della risorsa, in Impostazioni, selezionare Contenitori e quindi selezionare la scheda Variabili di ambiente.

    Per altre informazioni sulle impostazioni dell'app e sulle impostazioni host, vedere Modificare le impostazioni dell'app e le impostazioni host.

  3. Sulla barra degli strumenti selezionare Modifica e distribuisci.

  4. Nel riquadro Modifica un contenitore, selezionare Variabili di ambiente, quindi selezionare Aggiungi.

  5. Nella tabella seguente aggiungere ogni variabile di ambiente con il valore specificato:

    Variabile di ambiente Valore
    WORKFLOWAPP_AAD_CLIENTID < my-client-ID>
    WORKFLOWAPP_AAD_OBJECTID < my-object-ID>
    WORKFLOWAPP_AAD_TENANTID < my-tenant-ID>
  6. Al termine, selezionare Salva.

Memorizza e riferisci il segreto del client

Conservare il segreto del client come segreto nella risorsa app logica. Fai riferimento a quel segreto dalla variabile di ambiente WORKFLOWAPP_AAD_CLIENTSECRET .

Importante

Ruotare il segreto prima della scadenza.

  1. Nel portale di Azure, andare alla risorsa app per la logica.

  2. Nella barra laterale dell'app Logic, sotto Impostazioni, seleziona Segreti.

  3. Sulla barra degli strumenti fare clic su Aggiungi.

  4. Nel pannello segreto Aggiungi informazioni, fornisci le seguenti informazioni e poi seleziona Aggiungi:

    Chiave Valore
    WORKFLOWAPP_AAD_CLIENTSECRET < Il mio-cliente-segreto>
  5. Nella barra laterale dell'app Logic, sotto Impostazioni, seleziona Contenitori, poi seleziona la scheda Variabili Ambiente .

  6. Sulla barra degli strumenti selezionare Modifica e distribuisci.

  7. Aggiungi la variabile di ambiente WORKFLOWAPP_AAD_CLIENTSECRET , seleziona l'opzione per fare riferimento a un segreto e seleziona il segreto che hai creato.

  8. Al termine, selezionare Salva.

Problemi noti e risoluzione dei problemi

La sezione seguente descrive i problemi attualmente noti e le linee guida per la risoluzione dei problemi comuni.

Problemi generali di configurazione dell'ambiente o distribuzione del portale

Per diagnosticare ed eseguire il debug dei problemi relativi alla configurazione dell'ambiente o agli errori di distribuzione del portale, è possibile provare a eseguire lo script di PowerShelltroubleshoot.ps1 fornito per l'opzione di distribuzione ibrida.

  1. Passare al repository GitHub di App per la logica di Azure: cartella scripts/hybrid.

  2. Copiare il file troubleshoot.ps1 in una cartella nella stessa ubicazione locale della distribuzione dell'app logica.

  3. Eseguire lo script usando PowerShell.

Cluster Kubernetes con abilitazione di Arc

In rari scenari, è possibile notare un footprint di memoria elevato nel cluster. Per evitare questo problema, aumentare o aggiungere la scalabilità automatica per i pool di nodi.

L'host della funzione non è in esecuzione

Dopo aver distribuito l'app per la logica Standard, verificare che l'app sia in esecuzione correttamente.

  1. Nel portale di Azure, apri la risorsa dell'applicazione logica.

  2. Nel menù della risorsa, selezionare Panoramica.

  3. Nella pagina Panoramica, accanto al campo URL applicazione, selezionare l'URL della risorsa.

    Se l'app è in esecuzione correttamente, viene aperta una finestra del browser e viene visualizzato il messaggio seguente:

    Screenshot che mostra il browser e l'app per la logica in esecuzione come sito Web.

    Altrimenti, se la tua app ha qualche guasto, controlla che i tuoi pod Kubernetes funzionino correttamente. Assicurati che kubectl usi il contesto del tuo cluster e poi esegui i seguenti comandi:

    kubectl get ns
    kubectl get pods -n logicapps-aca-ns
    kubectl describe pod {logic-app-pod-name} -n logicapps-aca-ns 
    

    Per altre informazioni, vedere la documentazione seguente:

Il cluster non ha abbastanza capacità

Se è stato eseguito il comando precedente e viene visualizzato un avviso simile all'esempio seguente, il cluster non dispone di nodi sufficienti per l'elaborazione:

Warning: FailedScheduling  4m52s (x29 over 46m)  default-scheduler  0/2 nodes are available: 2 Too many pods. preemption: 0/2 nodes are available: 2 No preemption victims found for incoming pod.

Per AKS, aumenta il numero di nodi e imposta l'autoscala seguendo questi passaggi:

  1. Nel portale di Azure passare all'istanza del servizio Kubernetes.

  2. Nel menu dell'istanza, in Impostazioni, selezionare Pool di nodi.

  3. Sulla barra degli strumenti della pagina Strumenti nodo, selezionare + Aggiungi pool di nodi.

Per altre informazioni, vedere la documentazione seguente:

Per OpenShift o RKE2, usa la procedura supportata per la distribuzione Kubernetes per aumentare la capacità.

Driver CSI (Container Storage Interface) SMB non installato

Dopo aver eseguito il comando precedente kubectl describe pod, se viene visualizzato l'avviso seguente, verificare se il driver CSI per la condivisione file SMB è installato correttamente:

Warning FailedScheduling 5m16s (x2 over 5m27s)  default-scheduler 0/14 nodes are available: pod has unbound immediate PersistentVolumeClaims. preemption: 0/14 nodes are available: 14 Preemption is not helpful for scheduling.

Normal NotTriggerScaleUp 9m49s (x31 over 14m) cluster-autoscaler pod didn't trigger scale-up: 3 pod has unbound immediate PersistentVolumeClaims

Per confermare, esegui il seguente comando:

kubectl get csidrivers

Se i risultati non includono smb.csi.k8s.io, segui le istruzioni specifiche per la distribuzione per installare il driver SMB.

Per verificare lo stato del pod driver CSI SMB, esegui il seguente comando:

kubectl --namespace=kube-system get pods --selector="app.kubernetes.io/name=csi-driver-smb" --watch