Condividi tramite


Creare flussi di lavoro di app per la logica Standard per la distribuzione ibrida nell'infrastruttura (anteprima)

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

Nota

Questa funzionalità è in anteprima, comporta addebiti per l'utilizzo ed è soggetta alle Condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.

Per gli scenari in cui è necessario usare, controllare e gestire la propria infrastruttura, è possibile creare flussi di lavoro di app per la logica Standard usando il modello di distribuzione ibrida 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. Con il modello ibrido, il flusso di lavoro dell'app per la logica Standard è basato sul runtime di App per la logica di Azure, ospitato in locale come parte di un'estensione app contenitore di Azure.

Per una panoramica dell'architettura che mostra dove sono ospitati e 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 pratica illustra come creare e distribuire un flusso di lavoro di app per la logica Standard usando il modello di distribuzione ibrida dopo aver configurato le risorse locali necessarie per l'hosting dell'app.

Limiti

  • La distribuzione ibrida per le app per la logica Standard è disponibile e supportata solo nelle stesse aree di App Azure Container nel servizio Azure Kubernetes abilitato per Azure Arc.

  • In questa versione di anteprima non sono attualmente disponibili le funzionalità seguenti:

    • Autenticazione identità gestita
    • Accesso SAP tramite il connettore predefinito SAP
    • Codice personalizzato C# con .NET Framework e l'azione predefinita denominata Chiama funzione locale in questa app per la logica
    • XSLT 1.0 per codice personalizzato

    I cluster Kubernetes abilitati per Azure Arc attualmente non supportano l'autenticazione dell'identità gestita per le connessioni API gestite. È invece necessario creare una registrazione dell'app personalizzata usando Microsoft Entra ID. Per altre informazioni, seguire questa procedura più avanti in questa guida.

  • 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 nella portale di Azure o nel file di local.settings.json del progetto dell'app per la logica in Visual Studio Code aggiungere l'impostazione dell'app seguente e fornire l'account di archiviazione stringa di connessione:

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

Prerequisiti

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

  • Le risorse locali seguenti, che devono essere tutte presenti nella stessa rete per la connettività necessaria:

    • Un cluster servizio Azure Kubernetes connesso ad Azure Arc
    • Un database SQL per archiviare localmente la cronologia di esecuzione del flusso di lavoro, gli input e gli 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, configurare queste risorse locali per supportare la distribuzione ibrida per le app per la logica 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

Dopo aver soddisfatto i prerequisiti, creare l'app per la logica Standard per la distribuzione ibrida seguendo questa procedura:

  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à Richiesto Valore Descrizione
    Abbonamento <Azure-subscription-name> Il nome della sottoscrizione di Azure.

    In questo esempio viene usato Con pagamento in base al consumo.
    Gruppo di risorse <Azure-resource-group-name> Il gruppo di risorse di Azure in cui si crea 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 (.).

    Questo esempio crea un gruppo di risorse denominato Hybrid-RG.
    Nome dell'app per la logica <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 <Area di Azure> Un'area di Azure supportata per le app contenitore di Azure nel servizio Azure Kubernetes abilitato per Azure Arc.

    In questo esempio viene usato Stati Uniti orientali.
    Ambiente connesso dell'app contenitore <connected-environment-name> Cluster Kubernetes abilitato per Arc creato come ambiente di distribuzione per l'app per la logica. Per altre informazioni, vedere Esercitazione: Abilitare le app contenitore di Azure in Kubernetes abilitato per Azure Arc.
    Configurare le impostazioni di archiviazione 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 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 configurata in precedenza:

    Proprietà Richiesto Valore Descrizione
    Stringa di connessione SQL <sql-server-connection-string> SQL Server stringa di connessione salvato in precedenza. Per altre informazioni, vedere Creare un provider di archiviazione di SQL Server.
    Nome host <file-share-host-name> Nome host per la condivisione file SMB.
    Percorso condivisione file <file-share-path> Percorso della condivisione file per la condivisione file SMB.
    Nome utente <file-share-user-name> Nome utente per la condivisione file SMB.
    Password <file-share-password> Password per la condivisione file SMB.
  6. Al termine, selezionare Rivedi e crea. Confermare le informazioni fornite e selezionare Crea.

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

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

    Nota

    Esistono diversi problemi noti nel portale relativo alle app per la logica Standard che usano l'opzione di hosting ibrida. Queste app per la logica vengono visualizzate con l'etichetta App contenitore, che differisce dalle app per la logica Standard che usano il piano di servizio flusso di lavoro o ambiente del servizio app opzione di hosting V3. Per altre informazioni, vedere Problemi noti e risoluzione dei problemi - portale di Azure.

  8. Nel portale di Azure, nel menu delle risorse, 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 altre informazioni, vedere Creare un flusso di lavoro con un trigger e azioni.

    Nota

    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 menu delle risorse, in Revisioni e selezionare Revisioni e repliche.

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

    Per ulteriori informazioni, vedi le seguenti risorse:

Modificare l'allocazione di CPU e memoria nel portale di Azure

Per modificare le impostazioni della CPU e della memoria per la risorsa dell'app per la logica Standard, seguire questa procedura:

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

  2. Nel menu della risorsa, 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 - Impostazione predefinita: 1
    - Minimo: 0,25
    - Massimo: 2
    Determina i core CPU da assegnare all'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.
    Memory - Impostazione predefinita: 2
    - Minimo: 0,1
    - Massimo: 4
    Determina la capacità di memoria in gibibytes (Gi) da assegnare all'istanza del contenitore. È possibile aumentare questo valore di 0,1 Gi fino al valore massimo. La capacità totale in tutte le istanze del contenitore per questa app per la logica è limitata a 4 Gi.
  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 della risorsa, in Impostazioni, selezionare Ridimensiona.

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

    Proprietà valore Descrizione
    Repliche minime - Impostazione predefinita: 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 - Impostazione predefinita: 30
    - Minimo: 0
    - Massimo: 1000
    Determina il numero massimo di repliche consentite per la revisione in un determinato momento. Questo valore esegue l'override delle 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.

Nota

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 della risorsa, in Impostazioni, selezionare Ingresso.

  2. Nella pagina Ingress (Ingresso) accanto a Ingress (Ingresso) selezionare la casella Abilitato.

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

    Per altre informazioni, consultare la documentazione seguente:

Configurare l'autenticazione per le connessioni API gestite

Per autenticare le connessioni API gestite nei flussi di lavoro dell'app per la logica Standard ospitati nei cluster Kubernetes abilitati per Azure Arc, è necessario creare una registrazione dell'app personalizzata usando Microsoft Entra ID. È quindi possibile aggiungere i valori della registrazione dell'app come variabili di ambiente nella risorsa dell'app per la logica Standard per autenticare invece le connessioni API.

Creare una registrazione dell'app con Microsoft Entra ID

Portale di Azure

  1. Nella portale di Azure seguire Avvio rapido: Registrare un'applicazione con Microsoft Identity Platform per creare una registrazione dell'app.

  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
    • Segreto client
  4. 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 id oggetto:

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

  5. 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 la registrazione dell'app, usare il comando az ad sp create.

  2. Per esaminare tutte le proprietà, usare il comando az ad sp show.

  3. Nell'output di entrambi i comandi trovare e salvare i valori seguenti, necessari in un secondo momento per l'autenticazione della connessione:

    • ID client
    • ID dell'oggetto.
    • ID tenant
    • Segreto client
  4. Aggiungere ora i valori salvati come variabili di ambiente alla risorsa dell'app per la logica Standard.

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 distribuzione.

  4. Nel riquadro Modifica un contenitore selezionare Variabili di ambiente e 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>
    WORKFLOWAPP_AAD_CLIENTSECRET <my-client-secret>
  6. Al termine, selezionare Salva.

Archiviare e fare riferimento all'ID client e al segreto client

È possibile archiviare i valori dell'ID client e del segreto client nella risorsa dell'app per la logica come segreti e quindi fare riferimento a tali valori nella scheda Variabili di ambiente.

  1. Nella portale di Azure passare alla risorsa dell'app per la logica.

  2. Nel menu della risorsa, in Impostazioni, selezionare Segreti.

  3. Sulla barra degli strumenti, seleziona Aggiungi.

  4. Nel riquadro Aggiungi segreto specificare le informazioni seguenti per ogni segreto e quindi selezionare Aggiungi:

    Chiave valore
    WORKFLOWAPP_AAD_CLIENTID <my-client-ID>
    WORKFLOWAPP_AAD_CLIENTSECRET <my-client-secret>

Problemi noti e risoluzione

Portale di Azure

  • L'app per la logica Standard viene distribuita e viene visualizzata come risorsa app contenitore di Azure, ma il tipo viene visualizzato come App per la logica (ibrido).

  • Azure include l'app per la logica Standard nell'elenco di risorse App contenitore, non nell'elenco di risorse delle app per la logica.

  • L'ambiente connesso app contenitore di Azure elenca l'app per la logica Standard come tipo di app denominata App per la logica ibrida.

  • Per riflettere le modifiche nella finestra di progettazione dopo aver salvato il flusso di lavoro, potrebbe essere necessario aggiornare occasionalmente la finestra di progettazione.

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. Nella portale di Azure passare alla risorsa dell'app contenitore per l'app per la logica.

  2. Nel menu 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.

    In caso contrario, se l'app presenta errori, verificare che i pod del servizio Azure Kubernetes siano in esecuzione correttamente. Da Windows PowerShell eseguire i comandi seguenti:

    az aks get-credentials {resource-group-name} --name {aks-cluster-name} --admin
    kubectl get ns
    kubectl get pods -n logicapps-aca-ns
    kubectl describe pod {logic-app-pod-name} -n logicapps-aca-ns 
    

    Per altre informazioni, consultare la documentazione seguente:

Il cluster non dispone di nodi sufficienti

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 aumentare il numero di nodi e configurare la scalabilità automatica, seguire questa procedura:

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

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

  3. Nella barra degli strumenti degli strumenti node selezionare + Aggiungi pool di nodi.

Per altre informazioni, consultare la documentazione seguente:

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, da Windows PowerShell, eseguire i comandi seguenti:

kubectl get csidrivers

Se l'elenco dei risultati visualizzato non include smb.csi.k8s.io, da un prompt dei comandi di Windows ed eseguire il comando seguente:

helm repo add csi-driver-smb
helm repo update helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.15.0

Per controllare lo stato dei pod del driver SMB CSI, eseguire il comando seguente dal prompt dei comandi di Windows:

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

Per altre informazioni, vedere Driver CSI (Container Storage Interface) in servizio Azure Kubernetes (servizio Azure Kubernetes).