Standaardwerkstromen voor logische apps maken voor hybride implementatie in uw eigen infrastructuur

Van toepassing op: Azure Logic Apps (Standard)

Voor scenario's waarin u uw eigen infrastructuur moet gebruiken, aansturen en beheren, maakt u Standard-werkstromen voor logische apps met het hybride implementatiemodel in Azure Logic Apps. Dit model biedt mogelijkheden voor het bouwen en hosten van integratieoplossingen voor gedeeltelijk verbonden omgevingen waarvoor lokale verwerking, opslag en netwerktoegang is vereist. Uw infrastructuur kan on-premises systemen, privéclouds en openbare clouds bevatten. Door het hybride model te gebruiken, wordt je Standard Logic App-workflow aangedreven door de Azure Logic Apps runtime, die op je infrastructuur wordt gehost als onderdeel van een Azure Container Apps-extensie.

Voor een architectuuroverzicht waarin wordt weergegeven waar werkstromen van standaard logische apps worden gehost en uitgevoerd in een gedeeltelijk verbonden omgeving, zie Infrastructuurvereisten instellen voor hybride implementatie voor standaard logische apps.

Deze handleiding laat zien hoe je een standaard logica-app workflow maakt en uitrolt door gebruik te maken van het hybride deploymentmodel nadat je de benodigde resources hebt ingesteld om je app te hosten.

Important

De lokale runtime en workflows van Azure Logic Apps die alleen lokaal beschikbare afhankelijkheden gebruiken, kunnen blijven draaien wanneer de Azure-connectiviteit wordt onderbroken. Azure-afhankelijke beheer, implementatie, monitoring, identiteitsoperaties en beheerde connectoren kunnen niet beschikbaar zijn wanneer ze niet verbonden zijn. Na 24 uur kun je loggegevens verliezen, hoewel de lokale runtime-uitvoering doorgaat. Voor meer informatie, zie Beperkingen voor hybride implementatie.

Beperkingen

Voor de momenteel ondersteunde Azure-regio's, ondersteunde Kubernetes-clusters en platformbrede beperkingen, zie Beperkingen voor hybride implementatie.

De volgende beperkingen gelden wanneer je hybride logica-apps maakt en bedient:

Beperking Beschrijving
Beheerde identiteitsauthenticatie voor beheerde API-verbindingen Managed API-verbindingen ondersteunen momenteel geen beheerde identiteitsauthenticatie in hybride logica-apps. Je moet je eigen app-registratie aanmaken met Microsoft Entra ID. Volg deze stappen verderop in deze handleiding voor meer informatie.
Op functies gebaseerde triggers Sommige op functies gebaseerde triggers, zoals Azure Blob, Cosmos DB en Event Hubs, vereisen een verbinding met het Azure-opslagaccount dat is gekoppeld aan uw standaard logische app. Als u op functies gebaseerde triggers gebruikt, voegt u in de omgevingsvariabelen van uw Standard-logische app in Azure Portal of in het local.settings.json-bestand van uw logische app-project in Visual Studio Code de app-instelling AzureWebJobsStorage toe en geeft u de verbindingsreeks voor uw opslagaccount op:

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

Gedrag tijdens een Azure-connectiviteitsonderbreking

  • Workflows kunnen nog steeds blijven draaien als de runtime en alle benodigde workflowafhankelijkheden lokaal beschikbaar blijven.
  • Ingebouwde bewerkingen draaien met de lokale runtime, maar elke externe dienst die door een operatie wordt aangeroepen, moet bereikbaar blijven.
  • Beheerde connectoroperaties vereisen connectiviteit met hun door Azure gehoste diensten.
  • Azure-portaalbeheer, Azure-gebaseerde implementatie, identiteitsoperaties en telemetrielevering kunnen onbeschikbaar of vertraagd raken.
  • Als de runtime na 24 uur nog steeds losblijft, kun je loggegevens verliezen die na deze tijd zijn gegenereerd.

Als je workloads implementatie, monitoring, waarschuwing, herverzending of identiteitsoperaties vereisen tijdens een langdurige onderbreking, valideer dan het gedrag voor jouw specifieke configuratie met je Microsoft-account of productteam.

Vereisten

  • Een Azure-account en -abonnement. Als u nog geen abonnement hebt, meld u dan aan voor een gratis Azure-account.

  • De volgende door klanten beheerde resources, die allemaal binnen hetzelfde netwerk moeten bestaan voor de vereiste connectiviteit:

    • Een ondersteunde Kubernetes-cluster die verbonden is met Azure Arc
    • Een SQL-database om lokaal workflowgeschiedenis, invoer en output op te slaan voor verwerking
    • Een SMB-bestandsshare (Server Message Block) voor het lokaal opslaan van artefacten die worden gebruikt door uw werkstromen

    Om aan deze eisen te voldoen, richt je deze bronnen op om hybride implementatie voor standaardworkflows te ondersteunen.

  • Als u in Visual Studio Code wilt werken, hebt u de Azure Logic Apps-extensie (Standard) voor Visual Studio Code nodig met de bijbehorende vereisten.

    Aanbeveling

    Als u een nieuwe Installatie van Visual Studio Code hebt, controleert u of u lokaal een standaardwerkstroom van Standard kunt uitvoeren voordat u implementeert in uw eigen infrastructuur. Deze testuitvoering helpt bij het isoleren van eventuele fouten in uw Standaardwerkstroomproject.

Uw logische standaard-app maken

Maak uw standaard logische app voor hybride implementatie door de volgende stappen uit te voeren:

  1. Voer logische apps in het zoekvak van Azure Portal in en selecteer Logische apps.

  2. Selecteer Toevoegen op de paginawerkbalk van Logische apps.

  3. Op de pagina Logische app maken, onder Standaard, selecteer Hybride.

  4. Geef op de pagina Logische app maken (hybride) de volgende informatie op :

    Eigendom Vereist Waarde Beschrijving
    Abonnement Ja < Azure-abonnementnaam> Uw Azure-abonnementnaam.

    In dit voorbeeld wordt gebruikgemaakt van Betalen per gebruik.
    Resourcegroep Ja < Azure-resourcegroepsnaam> De Azure-resourcegroep waarin u uw hybride app en gerelateerde resources maakt. Deze naam moet uniek zijn in verschillende regio's en mag alleen letters, cijfers, afbreekstreepjes (-_), onderstrepingstekens (_), haakjes (()) en punten (.) bevatten.

    In dit voorbeeld wordt een resourcegroep gemaakt met de naam Hybrid-RG.
    Naam van Logic App Ja < naam van logische app> De naam van uw logische app, die uniek moet zijn in verschillende regio's en mag alleen kleine letters, cijfers of afbreekstreepjes (-) bevatten.

    In dit voorbeeld wordt my-logic-app-hybrid gebruikt.
    Regio Ja < Azure-regio> Een Azure-regio die hybride implementatie ondersteunt.

    In dit voorbeeld wordt Oost VS gebruikt.
    Aangesloten container-app-omgeving Ja < verbonden-omgevingsnaam> Het Kubernetes-cluster met Arc dat u hebt gemaakt als de implementatieomgeving voor uw logische app. Zie Zelfstudie: Azure Container Apps inschakelen in Kubernetes met Azure Arc voor meer informatie.
    Opslaginstellingen configureren Ja Ingeschakeld of uitgeschakeld Gaat door naar het tabblad Opslag op de pagina Logische app maken (hybride).

    In het volgende voorbeeld ziet u de pagina voor het maken van logische apps in Azure Portal met voorbeeldwaarden:

    Schermopname toont Azure-portal en de pagina voor het maken van Logic Apps.

  5. Geef op de pagina Opslag de volgende informatie op over de opslagprovider en de SMB-bestandsshare die u eerder hebt ingesteld:

    Eigendom Vereist Waarde Beschrijving
    SQL-verbindingstekenreeks Ja < sql-server-connection-string> De SQL Server-verbindingsreeks die u eerder hebt opgeslagen. Zie Sql Server-opslagprovider maken voor meer informatie.
    Hostnaam Ja < bestandsshare-hostnaam> De hostnaam voor uw SMB-bestandsshare.
    Bestandspad voor delen Ja < bestandsshare-pad> Het bestandssharepad voor uw SMB-bestandsshare.
    Gebruikersnaam Ja < bestand-deelgebruiker-naam> De gebruikersnaam voor uw SMB-bestandsshare.
    Wachtwoord Ja < Bestandsdeel-wachtwoord> Het wachtwoord voor uw SMB-bestandsshare.
  6. Wanneer u klaar bent, selecteert u Beoordelen en maken. Bevestig de opgegeven informatie en selecteer Maken.

  7. Nadat De implementatie van Azure is voltooid, selecteert u Ga naar de resource.

    De Azure-portal opent uw logische app-resource, bijvoorbeeld:

    Schermopname van Azure Portal met de standaard logische app voor hybride implementatie die is gemaakt als een container-app.

  8. Selecteer in het resourcemenu van de logic app onder Werkstromen, de optie Werkstromen.

  9. Selecteer Toevoegen op de pagina Werkstromen om een lege stateful of stateless werkstroom toe te voegen.

  10. Nadat de ontwerpfunctie is geopend, bouwt u uw werkstroom door een trigger en acties toe te voegen.

    Zie Een werkstroom bouwen met een trigger en acties voor meer informatie.

Versiebeheer voor hybride implementaties

Telkens wanneer u wijzigingen in een subwerkstroom opslaat, wordt er automatisch een nieuwe revisie gemaakt in een standaard logische app met de optie hybride hosting. Dit is een versiebeheerconcept van Azure Container Apps. Deze revisie kan enige tijd in beslag nemen om te activeren, wat betekent dat u na het opslaan van wijzigingen enkele ogenblikken wilt wachten voordat u de werkstroom test.

Als uw wijzigingen nog steeds niet in de werkstroom worden weergegeven, kunt u controleren of de revisie bestaat:

  1. Open uw resource in de Azure portal. Selecteer Revisies en replica's in het resourcemenu onder Revisies.

  2. Controleer op de pagina Revisies en replica's op het tabblad Actieve revisies of er een nieuwe revisie wordt weergegeven in de lijst.

Voor meer informatie raadpleegt u de volgende bronnen:

Verbeterde telemetrie of OpenTelemetry instellen voor prestatiebewaking

U kunt verbeterde telemetrieverzameling instellen in Application Insights voor uw standaard logische app en vervolgens de verzamelde gegevens weergeven nadat uw werkstroom is voltooid. Deze mogelijkheid biedt u een eenvoudigere ervaring om inzicht te krijgen in uw werkstromen en meer controle over het filteren van gebeurtenissen in de gegevensbron, zodat u de opslagkosten kunt verlagen. Deze verbeteringen richten zich op realtime prestatiegegevens die inzicht bieden in de status en het gedrag van uw systeem.

Voor gedeeltelijk verbonden en on-premises scenario's kunt u uw standaard logische app instellen om telemetrie te verzenden op basis van de door OpenTelemetry ondersteunde app-instellingen die u voor de specifieke omgeving definieert. Deze telemetriegegevens worden standaard verzonden naar Application Insights. Voor meer informatie, zie Verbeterde telemetrie inschakelen in Application Insights voor Standard-werkstromen in Azure Logic Apps.

Application Insights vereist Azure connectivity. Tijdens een onderbreking van de connectiviteit kan de levering van telemetrie vertragingen ondervinden en kun je na 24 uur gegenereerde loggegevens verliezen. Controleer elke vereiste voor lokale monitoring en waarschuwing met de telemetriebestemming en configuratie die je gebruikt.

VCPU en geheugentoewijzing wijzigen in Azure Portal

U kunt de vCPU- en geheugeninstellingen voor uw resource voor de standaard logic app bewerken. Deze wijzigingen zijn van invloed op de factureringskosten voor uw workloads van uw standaard logische app.

  1. Open uw standaard logische app-bron in de Azure portal.

  2. Selecteer Containers in het resourcemenu onder Instellingen.

  3. Selecteer Bewerken en implementeren op de pagina Containers, waarmee het deelvenster Bewerk een container wordt geopend.

  4. Wijzig op het tabblad Eigenschappen , onder Toewijzing van containerresources, de volgende waarden om aan uw scenario te voldoen:

    Eigendom Waarde Beschrijving
    CPU-kernen - Standaard: 1
    - Minimum: 0,25
    - Maximum: 2
    Bepaalt de vCPU-kernen die moeten worden toegewezen aan uw containerinstantie. U kunt deze waarde verhogen met 0,25 kernen tot de maximumwaarde. Het totale aantal kernen voor alle containerinstanties in deze logische app is beperkt tot 2.
    Geheugen - Standaardwaarde: 2
    - Minimum: 0,1
    - Maximum: 4
    Bepaalt de geheugencapaciteit in gibibytes (GiB) die moet worden toegewezen aan uw containerinstantie. U kunt deze waarde met 0,1 GiB verhogen tot de maximumwaarde. De totale capaciteit voor alle containerinstanties voor deze logische app is beperkt tot 4 GiB.
  5. Selecteer Opslaan wanneer u klaar bent.

Wijzig de schaal van replica's in Azure Portal

U kunt de automatische schaalaanpassing beheren voor het bereik van replica's die worden geïmplementeerd als reactie op een trigger-gebeurtenis. Een replica is een nieuw exemplaar van een revisie of versie van een resource in een logische app. Als u de minimum- en maximumwaarden voor dit bereik wilt wijzigen, kunt u de schaalregels wijzigen om de gebeurtenistypen te bepalen die schalen activeren. Zie Schaalregels instellen in Azure Container Apps voor meer informatie.

  1. Open uw standaard logische app-bron in de Azure portal.

  2. Selecteer Schalen in het resourcemenu onder Instellingen.

  3. Op de pagina Schaal, onder Schaalregelinstelling, wijzig de volgende waarden om aan uw scenario te voldoen:

    Eigendom Waarde Beschrijving
    Minimale replica's - Standaard: 1
    - Minimaal: 0
    - Maximum: 1000
    Bepaalt het minimum aantal replica's dat op een bepaald moment is toegestaan voor de revisie. Deze waarde overschrijft schaalregels en moet kleiner zijn dan het maximum aantal replica's.
    Maximum aantal replica's - Standaard: 30
    - Minimaal: 0
    - Maximum: 1000
    Bepaalt het maximum aantal replica's dat op een bepaald moment is toegestaan voor de revisie. Met deze waarde worden schaalregels overschreven.
  4. Selecteer Opslaan wanneer u klaar bent.

Inkomend verkeer naar uw logische app beheren in Azure Portal

U kunt uw logische app beschikbaar maken voor het openbare web, uw virtuele netwerk en andere logische apps in uw omgeving door inkomend verkeer in te schakelen. Azure dwingt ingress-instellingen af via een set regels waarmee de routering van intern en extern verkeer naar uw Logic App wordt beheerd. Wanneer u inkomend verkeer inschakelt, hoeft u geen Azure Load Balancer, openbaar IP-adres of andere Azure-resources te maken om binnenkomende HTTP-aanvragen of TCP-verkeer in te schakelen. Zie Ingress in Container Apps voor meer informatie.

Notitie

Wanneer u inkomend verkeer inschakelt, wordt al het verkeer standaard omgeleid naar de meest recente revisie. Ga naar de pagina Revisiebeheer om de verkeersinstellingen te wijzigen.

  1. Selecteer inkomend verkeer in het resourcemenu onder Instellingen.

  2. Op de Ingress-pagina, naast Ingress, selecteer het vakje Ingeschakeld.

  3. Configureer de resterende opties op basis van uw scenario.

    Voor meer informatie raadpleegt u de volgende documentatie:

Verificatie instellen voor beheerde API-verbindingen

Managed API-verbindingen ondersteunen momenteel geen beheerde identiteitsauthenticatie in hybride logica-apps. Om deze verbindingen te authenticeren, moet je je eigen appregistratie aanmaken met Microsoft Entra ID. Je kunt vervolgens de waarden van deze app-registratie toevoegen als omgevingsvariabelen in je Standard Logic App-resource. Dit authenticatiemodel vereist connectiviteit met Microsoft Entra ID.

Een app-registratie maken met Microsoft Entra-id

Azure Portal

  1. Volg de quickstart in Azure Portal: Een toepassing registreren bij het Microsoft Identity Platform om een app-registratie te maken.

  2. Nadat het maken is voltooid, zoekt u uw nieuwe app-registratie in de portal.

  3. Selecteer Overzicht in het resourcemenu en sla de volgende waarden op, die u later nodig hebt voor verbindingsverificatie:

    • Klant-ID
    • Tenant-id
  4. Selecteer in de zijbalk van de resource Certificaten en geheimen>Clientgeheimen>Nieuw clientgeheim.

  5. Maak het cliëntgeheim aan en sla onmiddellijk de waarde van het geheim op. De waarde verschijnt niet meer nadat je de pagina hebt verlaten.

  6. Voer de volgende stappen uit voor de object-id:

    1. Selecteer op de Overzicht-pagina de link Beheerde toepassing in de lokale map voor uw app-registratie, zoals hieronder weergegeven:

      Schermopname van app-registratie met geselecteerde koppeling voor beheerde toepassing in de lokale map.

    2. Kopieer en sla de waarde van de object-id op de pagina die wordt geopend:

      Schermopname van app-registratie met geselecteerde object-id.

  7. Voeg nu de opgeslagen waarden toe als omgevingsvariabelen aan de resource van uw standaard logische app.

Azure-CLI

  1. Om een appregistratie en diens hoofdpersoon te maken zonder een Azure-rol toe te wijzen, voer je het volgende commando uit:

    az ad sp create-for-rbac \
       --name <app-registration-name> \
       --skip-assignment
    
  2. Sla uit de commando-output de appId, password, en tenant waarden op als voor de client ID, client secret en tenant ID waarden. Het clientgeheim verschijnt alleen in de commando-uitvoer.

  3. Haal de object-id van de service-principal op:

    az ad sp show \
       --id <client-ID> \
       --query id \
       --output tsv
    
  4. Voeg nu de opgeslagen waarden toe als omgevingsvariabelen aan de resource van uw standaard logische app.

Voor meer informatie, zie:

App-registratiewaarden toevoegen aan uw standaard logische app

  1. Ga in Azure Portal naar de resource van uw standaard logische app.

  2. Selecteer Containers in het resourcemenu onder Instellingen en selecteer vervolgens het tabblad Omgevingsvariabelen.

    Zie App-instellingen en hostinstellingen bewerken voor meer informatie over app-instellingen en hostinstellingen.

  3. Selecteer Bewerken en implementeren op de werkbalk.

  4. In het deelvenster Een container bewerken, selecteer Omgevingsvariabelen en selecteer vervolgens Toevoegen.

  5. Voeg vanuit de volgende tabel elke omgevingsvariabele toe met de opgegeven waarde:

    Omgevingsvariabele Waarde
    WORKFLOWAPP_AAD_CLIENTID < my-client-ID>
    WORKFLOWAPP_AAD_OBJECTID < my-object-ID>
    WORKFLOWAPP_AAD_TENANTID < my-tenant-ID>
  6. Selecteer Opslaan wanneer u klaar bent.

Sla het clientgeheim op en verwijs ernaar

Sla het cliëntgeheim op als geheim in je logica-app resource. Verwijs naar dat geheim uit de WORKFLOWAPP_AAD_CLIENTSECRET-omgevingsvariabele.

Important

Draai het geheim voordat het verloopt.

  1. Ga in de Azure portal naar uw logische app-resource.

  2. Selecteer in de zijbalk van de logica-app onder InstellingenGeheimen.

  3. Selecteer Toevoegen op de werkbalk.

  4. Geef in het venster 'Geheim toevoegen ' de volgende informatie en selecteer vervolgens Toevoegen:

    Sleutel Waarde
    WORKFLOWAPP_AAD_CLIENTSECRET < mijn-klant-geheim>
  5. Selecteer in de zijbalk van de logic-app onder InstellingenContainers en selecteer vervolgens het tabblad Omgevingsvariabelen .

  6. Selecteer Bewerken en implementeren op de werkbalk.

  7. Voeg de WORKFLOWAPP_AAD_CLIENTSECRET omgevingsvariabele toe, selecteer de optie om naar een geheim te verwijzen en selecteer het geheim dat je hebt aangemaakt.

  8. Selecteer Opslaan wanneer u klaar bent.

Bekende problemen en probleemoplossing

In de volgende sectie worden momenteel bekende problemen en richtlijnen beschreven voor het oplossen van veelvoorkomende problemen.

Algemene problemen met de installatie van de omgeving of portalimplementatie

Om u te helpen bij het vaststellen en opsporen van problemen met de configuratie van uw omgeving of portalimplementatiefouten, kunt u proberen het troubleshoot.ps1 PowerShell-script uit te voeren dat is opgegeven voor de optie voor hybride implementatie.

  1. Ga naar de GitHub-opslagplaats van Azure Logic Apps: scripts/hybride map.

  2. Kopieer het troubleshoot.ps1 bestand naar een map op dezelfde on-premises locatie als de implementatie van uw logische app.

  3. Voer het script uit met behulp van PowerShell.

Kubernetes-clusters met Arc-ondersteuning

In zeldzame scenario's ziet u mogelijk een hoge geheugenvoetafdruk in uw cluster. U kunt dit probleem voorkomen door uit te schalen of automatisch schalen toe te voegen voor knooppuntgroepen.

De functiehost draait niet

Nadat u de logische standaard-app hebt geïmplementeerd, controleert u of uw app correct wordt uitgevoerd.

  1. Open uw Logic app-resource in de Azure portal.

  2. Selecteer Overzicht in het resourcemenu.

  3. Selecteer op de pagina Overzicht naast het veld Toepassings-URL de resource-URL.

    Als uw app correct wordt uitgevoerd, wordt er een browservenster geopend en wordt het volgende bericht weergegeven:

    Schermopname van de browser en logische app die als een website wordt uitgevoerd.

    Anders, als je app fouten heeft, controleer dan of je Kubernetes-pods correct werken. Zorg ervoor dat kubectl de context van je cluster wordt gebruikt, en voer vervolgens de volgende commando's uit:

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

    Voor meer informatie raadpleegt u de volgende documentatie:

Cluster heeft niet genoeg capaciteit

Als u de vorige opdracht hebt uitgevoerd en een waarschuwing krijgt die lijkt op het volgende voorbeeld, beschikt uw cluster niet over voldoende knooppunten voor verwerking:

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.

Voor AKS verhoog je het aantal knooppunten en stel je autoscale in door deze stappen te volgen:

  1. Ga in Azure Portal naar uw Kubernetes-service-exemplaar.

  2. Selecteer Knooppuntgroepen in het exemplaarmenu onder Instellingen.

  3. Selecteer + Knopenpool toevoegen op de werkbalk van de pagina Hulpprogramma's voor knooppunten.

Voor meer informatie raadpleegt u de volgende documentatie:

Voor OpenShift of RKE2 gebruik je de ondersteunde procedure voor je Kubernetes-distributie om de capaciteit toe te voegen.

Het stuurprogramma SMB Container Storage Interface (CSI) is niet geïnstalleerd

Nadat u de vorige kubectl describe pod opdracht hebt uitgevoerd, controleert u of het CSI-stuurprogramma voor uw SMB-bestandsshare correct is geïnstalleerd als de volgende waarschuwing wordt weergegeven:

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

Om te bevestigen, voer je het volgende commando uit:

kubectl get csidrivers

Als de resultaten smb.csi.k8s.io niet bevatten, volg dan de distributie-specifieke instructies om de SMB-driver te installeren.

Om de status van de CSI SMB-driver pod te controleren, voer je het volgende commando uit:

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