Skapa standardarbetsflöden för logikappar för hybriddistribution i din egen infrastruktur (förhandsversion)
Gäller för: Azure Logic Apps (Standard)
Kommentar
Den här funktionen är i förhandsversion, medför avgifter för användning och omfattas av de kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure.
För scenarier där du behöver använda, styra och hantera din egen infrastruktur kan du skapa standardarbetsflöden för logikappar med hjälp av 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. Med hybridmodellen drivs ditt standardlogikapparbetsflöde av Azure Logic Apps-körningen, som finns lokalt 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.
Den här instruktionsguiden visar hur du skapar och distribuerar ett standardlogikapparbetsflöde med hjälp av hybriddistributionsmodellen när du har konfigurerat nödvändiga lokala resurser för att vara värd för din app.
Begränsningar
Hybriddistribution för standardlogikappar är tillgänglig och stöds endast i samma regioner som Azure Container Apps i Azure Arc-aktiverade AKS.
Följande funktioner är för närvarande inte tillgängliga i den här förhandsversionen:
- Autentisering av hanterad identitet
- SAP-åtkomst via den inbyggda SAP-anslutningsappen
- Anpassad C#-kod med .NET Framework och den inbyggda åtgärden med namnet Anropa lokal funktion i den här logikappen
- XSLT 1.0 för anpassad kod
Azure Arc-aktiverade Kubernetes-kluster stöder för närvarande inte hanterad identitetsautentisering för hanterade API-anslutningar. I stället måste du skapa en egen appregistrering med hjälp av Microsoft Entra-ID. Mer information finns i de här stegen senare i den här guiden.
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 Portal eller i logikappprojektets local.settings.json-fil i Visual Studio Code lägger du till följande appinställning och anger ditt lagringskonto anslutningssträng:
"Values": { "name": "AzureWebJobsStorage", "value": "{storage-account-connection-string}" }
Förutsättningar
Ett Azure-konto och prenumeration. Om du inte har någon prenumeration kan du registrera ett kostnadsfritt Azure-konto.
Följande lokala resurser, som alla måste finnas i samma nätverk för den nödvändiga anslutningen:
- Ett Azure Kubernetes Service-kluster som är anslutet till Azure Arc
- En SQL-databas för att lokalt lagra arbetsflödeskörningshistorik, 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 konfigurerar du dessa lokala resurser för att stödja hybriddistribution för standardlogikappar.
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.
Dricks
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
När du har uppfyllt kraven skapar du standardlogikappen för hybriddistribution genom att följa dessa steg:
I sökrutan Azure Portal anger du logikappar och väljer Logikappar.
På sidan Logikappar väljer du Lägg till.
På sidan Skapa logikapp går du till Standard och väljer Hybrid.
På sidan Skapa logikapp (hybrid) anger du följande information:
Property 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 <logic-app-name> Logikappens namn, som måste vara unikt mellan regioner och endast kan innehålla gemener, siffror eller bindestreck (-).
I det här exemplet används my-logic-app-hybrid.Region Ja <Azure-region> En Azure-region som stöds för Azure-containerappar i Azure Arc-aktiverade AKS.
I det här exemplet används USA, östra.Container App Connected Environment 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. 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:
På sidan Lagring anger du följande information om lagringsprovidern och SMB-filresursen som du tidigare har konfigurerat:
Property 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 <file-share-host-name> Värdnamnet för SMB-filresursen. Sökväg till filresurs Ja <file-share-path> Sökvägen till filresursen för SMB-filresursen. Användarnamn Ja <file-share-user-name> Användarnamnet för SMB-filresursen. Lösenord Ja <file-share-password> Lösenordet för SMB-filresursen. När du är klar väljer du Granska + skapa. Bekräfta den angivna informationen och välj Skapa.
När Azure har slutfört distributionen väljer du Gå till resurs.
Kommentar
Det finns flera kända problem i portalen kring standardlogikappar som använder hybridvärdalternativet. Dessa logikappar visas med containerappsetiketten, som skiljer sig från standardlogikappar som använder antingen arbetsflödestjänstplanen eller App Service-miljön V3-värdalternativet. Mer information finns i Kända problem och felsökning – Azure Portal.
I Azure Portal går du till resursmenyn under Arbetsflöden och väljer Arbetsflöden.
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.
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.
Kommentar
En standardlogikapp med hybridvärdalternativet skapar automatiskt en ny revision, vilket är ett versionsbegrepp 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:
På resursmenyn under Revisioner väljer du Revisioner och repliker.
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:
Ändra processor- och minnesallokering i Azure Portal
Följ dessa steg om du vill redigera cpu- och minnesinställningarna för standardlogikappresursen:
Öppna din standardlogikappresurs i Azure Portal.
På resursmenyn går du till Inställningar och väljer Containrar.
På sidan Containrar väljer du Redigera och distribuera, vilket öppnar fönstret Redigera en container .
På fliken Egenskaper under Resursallokering av container ändrar du följande värden så att de passar ditt scenario:
Property Värde beskrivning CPU-kärnor – Standard: 1
- Minimum: 0,25
- Max: 2Avgör vilka CPU-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: 4Avgör minneskapaciteten i gibibyte (Gi) som ska tilldelas till containerinstansen. Du kan öka det här värdet med 0,1 Gi upp till det maximala värdet. Den totala kapaciteten för alla containerinstanser för den här logikappen är begränsad till 4 Gi. När du är klar väljer du Spara.
Ändra replikskalning i Azure Portal
Du kan styra den automatiska skalningen för det intervall repliker som distribueras som svar på en utlösarhändelse. En replik är en ny instans av en logikappresursrevision eller -version. 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.
Öppna din standardlogikappresurs i Azure Portal.
På resursmenyn går du till Inställningar och väljer Skala.
På sidan Skala under Inställningen Skalningsregel ändrar du följande värden så att de passar ditt scenario:
Property Värde beskrivning Minsta repliker – Standard: 1
- Minimum: 0
- Max: 1000Avgö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 – Standard: 30
- Minimum: 0
- Max: 1000Avgör det maximala antalet repliker som tillåts för revisionen vid en viss tidpunkt. Det här värdet åsidosätter skalningsregler. 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 i 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.
På resursmenyn går du till Inställningar och väljer Ingress.
På ingresssidan bredvid Ingress väljer du rutan Aktiverad.
Baserat på ditt scenario konfigurerar du de återstående alternativen.
Mer information finns i följande dokumentation:
Konfigurera autentisering för hanterade API-anslutningar
Om du vill autentisera hanterade API-anslutningar i Standard logic app-arbetsflöden som finns i Azure Arc-aktiverade Kubernetes-kluster måste du skapa en egen appregistrering med hjälp av Microsoft Entra-ID. Du kan sedan lägga till appregistreringens värden som miljövariabler i standardlogikappresursen för att autentisera dina API-anslutningar i stället.
Skapa en appregistrering med Microsoft Entra-ID
Azure Portal
I Azure Portal följer du Snabbstart: Registrera ett program med Microsofts identitetsplattform för att skapa en appregistrering.
När du har skapat den hittar du din nya appregistrering i portalen.
På resursmenyn väljer du Översikt och sparar följande värden, som du behöver senare för anslutningsautentisering:
- Client ID
- Klientorganisations-ID
- Klienthemlighet
Följ dessa steg för objekt-ID:t:
På sidan Översikt väljer du Länk till Hanterat program i lokal katalog för din appregistrering enligt följande:
På sidan som öppnas kopierar du och sparar objekt-ID-värdet:
Lägg nu till de sparade värdena som miljövariabler i standardlogikappresursen.
Azure CLI
Om du vill skapa appregistreringen använder du kommandot az ad sp create.
Om du vill granska alla egenskaper använder du kommandot az ad sp show.
I utdata från båda kommandona letar du upp och sparar följande värden, som du behöver senare för anslutningsautentisering:
- Client ID
- Objekt-ID
- Klientorganisations-ID
- Klienthemlighet
Lägg nu till de sparade värdena som miljövariabler i standardlogikappresursen.
Lägga till appregistreringsvärden i standardlogikappen
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.
I verktygsfältet väljer du Redigera och distribuera.
I fönstret Redigera en container väljer du Miljövariabler och sedan Lägg till.
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> WORKFLOWAPP_AAD_CLIENTSECRET <my-client-secret> När du är klar väljer du Spara.
Lagra och referera till klient-ID och klienthemlighet
Du kan lagra klient-ID:t och klienthemlighetsvärdena i logikappresursen som hemligheter och sedan referera till dessa värden på fliken Miljövariabler i stället.
Gå till logikappresursen i Azure Portal.
På resursmenyn går du till Inställningar och väljer Hemligheter.
I verktygsfältet väljer du Lägg till.
I fönstret Lägg till hemlighet anger du följande information för varje hemlighet och väljer sedan Lägg till:
Tangent Värde WORKFLOWAPP_AAD_CLIENTID <my-client-ID> WORKFLOWAPP_AAD_CLIENTSECRET <my-client-secret>
Kända problem och felsökning
Azure Portal
Standardlogikappen distribueras och visas som en Azure Container Apps-resurs, men typen visas som Logic App (Hybrid).
Azure innehåller standardlogikappen i resurslistan Container Apps , inte i resurslistan Logic Apps .
Din anslutna Azure Container Apps-miljö visar en lista över standardlogikappen med en apptyp med namnet Hybrid Logic App.
Om du vill återspegla ändringar i designern när du har sparat arbetsflödet kan du behöva uppdatera designern ibland.
Arc-aktiverade Kubernetes-kluster
I sällsynta fall kan du märka ett högt minnesavtryck i klustret. Du kan förhindra det här problemet genom att antingen skala ut eller lägga till autoskalning för nodpooler.
Funktionsvärden körs inte
När du har distribuerat standardlogikappen kontrollerar du att appen körs korrekt.
I Azure Portal går du till containerappresursen för logikappen.
På resursmenyn väljer du Översikt.
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:
Om din app annars har fel kontrollerar du att dina AKS-poddar körs korrekt. Kör följande kommandon från Windows PowerShell:
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
Mer information finns i följande dokumentation:
Klustret har inte tillräckligt med noder
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ölj dessa steg för att öka antalet noder och konfigurera autoskalning:
I Azure Portal går du till kubernetes-tjänstinstansen.
På instansmenyn går du till Inställningar och väljer Nodpooler.
På sidan Nodverktyg väljer du + Lägg till nodpool.
Mer information finns i följande dokumentation:
- Skapa nodpooler för ett kluster i Azure Kubernetes Service (AKS)
- Hantera nodpooler för ett kluster i Azure Kubernetes Service (AKS)
- Översikt över kluster autoskalning i Azure Kubernetes Service (AKS)
- Använda autoskalning av kluster i Azure Kubernetes Service (AKS)
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, från Windows PowerShell, kör du följande kommandon:
kubectl get csidrivers
Om resultatlistan som visas inte innehåller smb.csi.k8s.io, från en Windows-kommandotolk, och kör följande kommando:
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
Om du vill kontrollera statusen för CSI SMB-drivrutinspoddar kör du följande kommando från Kommandotolken i Windows:
kubectl --namespace=kube-system get pods --selector="app.kubernetes.io/name=csi-driver-smb" --watch
Mer information finns i CSI-drivrutiner (Container Storage Interface) på Azure Kubernetes Service (AKS).