Skapa standardarbetsflöden för logikappar för hybriddistribution i din egen infrastruktur

Gäller för: Azure Logic Apps (Standard)

För scenarier där du behöver använda, kontrollera och hantera din egen infrastruktur, skapa standardarbetsflöden för Logic App genom att använda hybriddistributionsmodellen i Azure Logic Apps. Den här modellen innehåller funktioner för att skapa och hantera integreringslösningar för delvis anslutna miljöer som kräver lokal bearbetning, lagring och nätverksåtkomst. Din infrastruktur kan omfatta lokala system, privata moln och offentliga moln. Genom att använda hybridmodellen drivs standardarbetsflödet för logikappen av körningstiden för Azure Logic Apps, som finns på din infrastruktur som en del av ett Azure Container Apps-tillägg.

En arkitekturöversikt som visar var Standard logic app-arbetsflöden finns och körs i en delvis ansluten miljö finns i Konfigurera infrastrukturkrav för hybriddistribution för standardlogikappar.

Denna guide visar hur man skapar och distribuerar ett standard logikapplikationsflöde genom att använda hybriddistributionsmodellen efter att du har satt upp nödvändiga resurser för att hosta din app.

Important

De lokala Azure Logic Apps-runtime- och arbetsflödena som endast använder lokalt tillgängliga beroenden kan fortsätta att köras när Azure-anslutningen avbryts. Azure-beroende hantering, distribution, övervakning, identitetsoperationer och hanterade kopplingar kan vara otillgängliga när de är frånkopplade. Efter 24 timmar kan du förlora loggningsdata, även om den lokala körningen fortsätter. För mer information, se Begränsningar för hybriddistribution.

Begränsningar

För de nuvarande stödda Azure-regionerna, stödda Kubernetes-kluster och plattformsövergripande begränsningar, se Begränsningar för hybriddistribution.

Följande begränsningar gäller när du skapar och driver hybrida logikappar:

Begränsning beskrivning
Hanterad identitetsautentisering för hanterade API-anslutningar Hanterade API-anslutningar stöder för närvarande inte hanterad identitetsautentisering i hybridlogikappar. Du måste skapa din egen appregistrering genom att använda Microsoft Entra ID. Mer information finns i de här stegen senare i den här guiden.
Funktionsbaserade utlösare Vissa funktionsbaserade utlösare, till exempel Azure Blob, Cosmos DB och Event Hubs, kräver en anslutning till azure-lagringskontot som är associerat med standardlogikappen. Om du använder funktionsbaserade utlösare i standardlogikappens miljövariabler i Azure-portalen eller i logikappprojektets local.settings.json-fil i Visual Studio Code lägger du till appinställningen med namnet AzureWebJobsStorage och anger anslutningssträngen för lagringskontot:

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

Beteende under ett Azure-anslutningsavbrott

  • Arbetsflöden kan fortfarande fortsätta att köras om körtiden och alla nödvändiga arbetsflödesberoenden förblir lokalt tillgängliga.
  • Inbyggda åtgärder körs i den lokala körningsmiljön, men alla externa tjänster som anropas av en åtgärd måste vara fortsatt tillgängliga.
  • Managed connector-operationer kräver anslutning till deras Azure-hostade tjänster.
  • Azure-portalhantering, Azure-baserad distribution, identitetsoperationer och telemetrileverans kan bli otillgängliga eller försenade.
  • Om körtiden förblir frånkopplad efter 24 timmar kan du förlora loggningsdata som genererats efter denna tid.

Om dina arbetsbelastningar kräver distribution, övervakning, varning, ominlämning eller identitetsoperationer under en längre frånkoppling, validera beteendet för din specifika konfiguration med ditt Microsoft-konto eller produktteam.

Förutsättningar

  • Ett Azure-konto och prenumeration. Om du inte har någon prenumeration kan du registrera ett kostnadsfritt Azure-konto.

  • Följande kundhanterade resurser, som alla måste finnas inom samma nätverk för den nödvändiga anslutningen:

    • Ett stödd Kubernetes-kluster som är anslutet till Azure Arc
    • En SQL-databas för att lokalt lagra arbetsflödeshistorik, indata och utdata för bearbetning
    • En SMB-filresurs (Server Message Block) för lokal lagring av artefakter som används av dina arbetsflöden

    För att uppfylla dessa krav, ställ upp dessa resurser för att stödja hybriddistribution för Standard-arbetsflöden.

  • För att fungera i Visual Studio Code behöver du Tillägget Azure Logic Apps (Standard) för Visual Studio Code med de relaterade förutsättningarna.

    Tips

    Om du har en ny Visual Studio Code-installation kontrollerar du att du kan köra ett grundläggande Standard-arbetsflöde lokalt innan du försöker distribuera till din egen infrastruktur. Den här testkörningen hjälper till att isolera eventuella fel som kan finnas i ditt Standard-arbetsflödesprojekt.

Skapa standardlogikappen

Skapa standardlogikappen för hybriddistribution genom att följa dessa steg:

  1. I sökrutan Azure Portal anger du logikappar och väljer Logikappar.

  2. I verktygsfältet på sidan Logikappar väljer du Lägg till.

  3. På sidan Skapa logikapp går du till Standard och väljer Hybrid.

  4. På sidan Skapa logikapp (hybrid) anger du följande information:

    Fastighet Obligatoriskt Värde beskrivning
    Abonnemang Ja < Namn-på-Azure-prenumeration> Ditt Azure-prenumerationsnamn.

    I det här exemplet används Betala per användning.
    Resursgrupp Ja < Namn-på-Azure-resursgrupp> Den Azure-resursgrupp där du skapar din hybridapp och relaterade resurser. Det här namnet måste vara unikt mellan regioner och får endast innehålla bokstäver, siffror, bindestreck (-), understreck (_), parenteser (()) och punkter (.).

    I det här exemplet skapas en resursgrupp med namnet Hybrid-RG.
    Namn på logikapp Ja < logik-app-namn> Namnet på logikappen, som måste vara unikt i alla regioner och endast får innehålla små bokstäver, siffror eller bindestreck (-).

    I det här exemplet används my-logic-app-hybrid.
    Region Ja < Azure region> En Azure-region som stödjer hybriddistribution.

    I det här exemplet används Östra USA.
    Miljö med ansluten containerapp Ja < connected-environment-name> Det Arc-aktiverade Kubernetes-klustret som du skapade som distributionsmiljö för logikappen. Mer information finns i Självstudie: Aktivera Azure Container Apps på Azure Arc-aktiverade Kubernetes-kluster.
    Konfigurera lagringsinställningar Ja Aktiverad eller inaktiverad Fortsätter till fliken Lagring på sidan Skapa logikapp (hybrid ).

    I följande exempel visas sidan för att skapa logikappen i Azure Portal med exempelvärden:

    Skärmbild som visar sidan Azure Portal och skapande av logikapp.

  5. På sidan Lagring anger du följande information om lagringsprovidern och SMB-filresursen som du tidigare har konfigurerat:

    Fastighet Obligatoriskt Värde beskrivning
    SQL anslutningssträng Ja < sql-server-connection-string> SQL Server-anslutningssträng som du sparade tidigare. Mer information finns i Skapa SQL Server-lagringsprovider.
    Värdnamn Ja < fil-dela-värdnamn> Värdnamnet för din SMB-fildelning.
    Sökväg till filresurs Ja < fildelningsväg> Sökvägen till din SMB-fildelning.
    Användarnamn Ja < fil-delnings-användarnamn> Användarnamnet för din SMB-filresurs.
    Lösenord Ja < fil-dela-lösenord> Lösenordet för din SMB-filresurs.
  6. När du är klar väljer du Granska + skapa. Bekräfta den angivna informationen och välj Skapa.

  7. När Azure har slutfört distributionen väljer du Gå till resurs.

    Azure-portalen öppnar din logikappresurs, till exempel:

    Skärmbild som visar Azure Portal med standardlogikappen för hybriddistribution som skapats som en containerapp.

  8. På resursmenyn för logikappen går du till Arbetsflöden och väljer Arbetsflöden.

  9. På verktygsfältet på sidan Arbetsflöden väljer du Lägg till för att lägga till ett tomt tillståndskänsligt eller tillståndslöst arbetsflöde.

  10. När designern har öppnats skapar du arbetsflödet genom att lägga till en utlösare och åtgärder.

    Mer information finns i Skapa ett arbetsflöde med en utlösare och åtgärder.

Versionshantering för hybriddistributioner

En Standard Logic App med alternativet för hybridvärdskap skapar automatiskt en ny revision, vilket är ett versionshanteringskoncept från Azure Container Apps, när du sparar ändringar i ett underordnat arbetsflöde. Den här revisionen kan ta lite tid att aktivera, vilket innebär att när du har sparat ändringarna kanske du vill vänta en stund innan du testar arbetsflödet.

Om ändringarna fortfarande inte har dykt upp i arbetsflödet kan du kontrollera om revisionen finns:

  1. Öppna resursen i Azure Portal. På resursmenyn går du till Revisioner och väljer Revisioner och repliker.

  2. På sidan Revisioner och repliker går du till fliken Aktiva revisioner och kontrollerar om en ny revision visas i listan.

Mer information finns i följande resurser:

Konfigurera förbättrad telemetri eller OpenTelemetry för prestandaövervakning

Du kan konfigurera förbättrad insamling av telemetri i Application Insights för din standard logikapp och därefter visa den insamlade datan när arbetsflödet har slutfört en körning. Den här funktionen ger dig en enklare upplevelse för att få insikter om dina arbetsflöden och mer kontroll över filtreringshändelser i datakällan, vilket hjälper dig att minska lagringskostnaderna. Dessa förbättringar fokuserar på prestandamått i realtid som ger insikter om systemets hälsa och beteende.

För delvis anslutna och lokala scenarier kan du konfigurera standardlogikappen så att den genererar telemetri baserat på de Inställningar för OpenTelemetry-appar som stöds som du definierar för den specifika miljön. Som standard skickas dessa telemetridata till Application Insights. Mer information finns i Aktivera förbättrad telemetri i Application Insights för Standard-arbetsflöden i Azure Logic Apps.

Application Insights kräver Azure connectivity. Vid anslutningsavbrott kan telemetrileveransen drabbas av förseningar, och du kan förlora loggdata som genererats efter 24 timmar. Verifiera eventuella krav på lokal övervakning och larm mot den telemetridestination och konfiguration som du använder.

Ändra vCPU och minnesallokering i Azure-portalen

Du kan redigera vCPU- och minnesinställningarna för standardlogikappresursen. Dessa ändringar påverkar faktureringsavgiften för dina standardlogikappsarbetsbelastningar.

  1. Öppna din standardlogikappresurs i Azure Portal.

  2. På resursmenyn går du till Inställningar och väljer Containrar.

  3. På sidan Containrar väljer du Redigera och distribuera, vilket öppnar fönstret Redigera en container .

  4. På fliken Egenskaper under Resursallokering av container ändrar du följande värden så att de passar ditt scenario:

    Fastighet Värde beskrivning
    CPU-kärnor - Standard: 1
    - Minimum: 0,25
    - Max: 2
    Avgör vilka vCPU-kärnor som ska tilldelas till containerinstansen. Du kan öka det här värdet med 0,25 kärnor upp till det maximala värdet. Det totala antalet för alla containerinstanser för den här logikappen är begränsat till 2 kärnor.
    Minne - Standard: 2
    - Minimum: 0,1
    - Max: 4
    Avgör minneskapaciteten i gibibyte (GiB) som ska tilldelas till containerinstansen. Du kan öka det här värdet med 0,1 GiB upp till det maximala värdet. Den totala kapaciteten för alla containerinstanser för den här logikappen är begränsad till 4 GiB.
  5. När du är klar väljer du Spara.

Ändra replikskalning i Azure Portal

Du kan styra den automatiska skalningen för intervallet för antalet repliker som distribueras som svar på en utlösande händelse. En replik är en ny instans av en revision eller version av en logikappresurs. Om du vill ändra minimi- och maxvärdena för det här intervallet kan du ändra skalningsreglerna för att fastställa de händelsetyper som utlöser skalning. Mer information finns i Ange skalningsregler i Azure Container Apps.

  1. Öppna din standardlogikappresurs i Azure Portal.

  2. På resursmenyn går du till Inställningar och väljer Skala.

  3. På sidan Skala under Inställningen Skalningsregel ändrar du följande värden så att de passar ditt scenario:

    Fastighet Värde beskrivning
    Minsta antal repliker - Standardvärde: 1
    - Minimum: 0
    - Max: 1000
    Avgör det minsta antalet repliker som tillåts för revisionen vid en viss tidpunkt. Det här värdet åsidosätter skalningsregler och måste vara mindre än det maximala antalet repliker.
    Maximalt antal repliker - Standardvärde: 30
    - Minimum: 0
    - Max: 1000
    Avgör det maximala antalet repliker som tillåts för revisionen vid en viss tidpunkt. Det här värdet åsidosätter skalningsregler.
  4. När du är klar väljer du Spara.

Kontrollera inkommande trafik till logikappen i Azure Portal

Du kan exponera logikappen för den offentliga webben, ditt virtuella nätverk och andra logikappar i din miljö genom att aktivera ingress. Azure tillämpar ingressinställningar via en uppsättning regler som styr routningen av extern och intern trafik till logikappen. När du aktiverar ingress behöver du inte skapa en Azure Load Balancer, offentlig IP-adress eller andra Azure-resurser för att aktivera inkommande HTTP-begäranden eller TCP-trafik. Mer information finns i Ingress in Container Apps.

Kommentar

När du aktiverar ingress dirigeras all trafik till din senaste revision som standard. Gå till sidan Revisionshantering för att ändra trafikinställningarna.

  1. På resursmenyn går du till Inställningar och väljer Ingress.

  2. På ingresssidanbredvid Ingress väljer du rutan Aktiverad.

  3. Baserat på ditt scenario konfigurerar du de återstående alternativen.

    Mer information finns i följande dokumentation:

Konfigurera autentisering för hanterade API-anslutningar

Hanterade API-anslutningar stöder för närvarande inte hanterad identitetsautentisering i hybridlogikappar. För att autentisera dessa anslutningar måste du skapa din egen appregistrering med Microsoft Entra ID. Du kan sedan lägga till värdena för denna appregistrering som miljövariabler i din Standard Logic App-resurs. Denna autentiseringsmodell kräver anslutning till Microsoft Entra ID.

Skapa en appregistrering med Microsoft Entra-ID

Azure Portal

  1. I Azure Portal följer du Snabbstart: Registrera ett program med Microsofts identitetsplattform för att skapa en appregistrering.

  2. När du har skapat den hittar du din nya appregistrering i portalen.

  3. På resursmenyn väljer du Översikt och sparar följande värden, som du behöver senare för anslutningsautentisering:

    • Klient-ID
    • Tenant-ID
  4. I resurssidofältet, välj Certifikat & hemligheterKlienthemligheter> Ny >klienthemlighet.

  5. Skapa klienthemligheten och spara omedelbart hemlighetens värde. Värdet visas inte igen efter att du lämnat sidan.

  6. Följ dessa steg för objekt-ID:t:

    1. På sidan Översikt väljer du Länk till Hanterat program i lokal katalog för din appregistrering enligt följande:

      Skärmbild som visar appregistrering med vald länk för hanterat program i den lokala katalogen.

    2. På sidan som öppnas kopierar du och sparar objekt-ID-värdet:

      Skärmbild som visar appregistrering med markerat objekt-ID.

  7. Lägg nu till de sparade värdena som miljövariabler i standardlogikappresursen.

Azure CLI (kommandoradsgränssnittet för Azure)

  1. För att skapa en appregistrering och dess tjänsteprincip utan att tilldela en Azure-roll, kör följande kommando:

    az ad sp create-for-rbac \
       --name <app-registration-name> \
       --skip-assignment
    
  2. Från kommandoutgången, spara appId, password, och tenant värdena som för klient-ID, klienthemlighet och tenant-ID-värden. Klienthemligheten visas endast i kommandoutgången.

  3. Hämta objekt-ID:t för tjänstens huvudnamn:

    az ad sp show \
       --id <client-ID> \
       --query id \
       --output tsv
    
  4. Lägg nu till de sparade värdena som miljövariabler i standardlogikappresursen.

Mer information finns i:

Lägga till appregistreringsvärden i standardlogikappen

  1. I Azure-portalen går du till din Standard Logic App-resurs.

  2. På resursmenyn går du till Inställningar, väljer Containrar och sedan fliken Miljövariabler .

    Mer information om appinställningar och värdinställningar finns i Redigera appinställningar och värdinställningar.

  3. I verktygsfältet väljer du Redigera och distribuera.

  4. I fönstret Redigera en container väljer du Miljövariabler och sedan Lägg till.

  5. I följande tabell lägger du till varje miljövariabel med det angivna värdet:

    Miljövariabel Värde
    WORKFLOWAPP_AAD_CLIENTID < my-client-ID>
    WORKFLOWAPP_AAD_OBJECTID < my-object-ID>
    WORKFLOWAPP_AAD_TENANTID < my-tenant-ID>
  6. När du är klar väljer du Spara.

Spara och referera till klienthemligheten

Spara klienthemligheten som en hemlighet i din logikapp-resurs. Referera till hemligheten från miljövariabeln WORKFLOWAPP_AAD_CLIENTSECRET.

Important

Rotera hemligheten innan den upphör att gälla.

  1. Gå till logikappresursen i Azure Portal.

  2. I logikappens sidofält, under Inställningar, välj Hemligheter.

  3. I verktygsfältet väljer du Lägg till.

  4. I panelen Lägg till hemlighet , ange följande information och välj sedan Lägg till:

    Nyckel Värde
    WORKFLOWAPP_AAD_CLIENTSECRET < min-klient-hemlighet>
  5. I logikappens sidofält, under Inställningar, välj Behållare och välj sedan fliken Miljövariabler .

  6. I verktygsfältet väljer du Redigera och distribuera.

  7. Lägg till miljövariabeln WORKFLOWAPP_AAD_CLIENTSECRET, välj alternativet för att referera till en hemlighet och välj den hemlighet som du har skapat.

  8. När du är klar väljer du Spara.

Kända problem och felsökning

I följande avsnitt beskrivs kända problem och vägledning för felsökning av vanliga problem.

Allmänna problem med miljökonfiguration eller portaldistribution

För att hjälpa dig att diagnostisera och felsöka problem med din miljökonfiguration eller fel vid portaldistribution kan du prova att köra dettroubleshoot.ps1 PowerShell-skript som tillhandahålls för hybriddistributionsalternativet.

  1. Gå till GitHub-lagringsplatsen för Azure Logic Apps: skript/hybridmapp.

  2. Kopiera filentroubleshoot.ps1 till en mapp på samma lokala plats som distributionen av logikappen.

  3. Kör skriptet med Hjälp av PowerShell.

Arc-aktiverade Kubernetes-kluster

I sällsynta fall kan du märka en hög minnesanvändning i ditt kluster. Du kan förhindra det här problemet genom att antingen skala ut eller lägga till autoskalning för nodpooler.

Funktionsvärdprocessen körs inte

När du har distribuerat standardlogikappen kontrollerar du att appen körs korrekt.

  1. Öppna logikappresursen i Azure-portalen.

  2. På resursmenyn väljer du Översikt.

  3. På sidan Översikt , bredvid fältet Program-URL , väljer du resurs-URL:en.

    Om appen körs korrekt öppnas ett webbläsarfönster och följande meddelande visas:

    Skärmbild som visar webbläsare och logikappar som körs som en webbplats.

    Annars, om din app har några fel, kontrollera att dina Kubernetes-poddar fungerar korrekt. Se till att kubectl använda kontexten för ditt kluster, och kör sedan följande kommandon:

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

    Mer information finns i följande dokumentation:

Klustret har inte tillräcklig kapacitet

Om du körde föregående kommando och får en varning som liknar följande exempel har klustret inte tillräckligt med noder för bearbetning:

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.

För AKS, öka antalet noder och ställ in autoskalering genom att följa dessa steg:

  1. I Azure Portal går du till kubernetes-tjänstinstansen.

  2. På instansmenyn går du till Inställningar och väljer Nodpooler.

  3. På sidan Nodverktyg väljer du + Lägg till nodpool.

Mer information finns i följande dokumentation:

För OpenShift eller RKE2, använd den stödda proceduren för din Kubernetes-distribution för att öka kapaciteten.

Drivrutinen för SMB Container Storage Interface (CSI) är inte installerad

När du har kört det tidigare kubectl describe pod kommandot kontrollerar du om CSI-drivrutinen för SMB-filresursen är korrekt installerad om följande varning visas:

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

För att bekräfta, kör följande kommando:

kubectl get csidrivers

Om resultaten inte inkluderar smb.csi.k8s.io, följ de distributionsspecifika instruktionerna för att installera SMB-drivrutinen.

För att kontrollera CSI SMB-drivrutinspoddens status, kör följande kommando:

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