Dela via


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:

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

  2. 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:

    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 Lagringsidan 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:

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

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

    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.

  8. I Azure Portal går du till resursmenyn under Arbetsflöden och väljer Arbetsflöden.

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

    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:

    1. På resursmenyn under Revisioner väljer du 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:

Ändra processor- och minnesallokering i Azure Portal

Följ dessa steg om du vill redigera cpu- och minnesinställningarna för standardlogikappresursen:

  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:

    Property Värde beskrivning
    CPU-kärnor – Standard: 1
    - Minimum: 0,25
    - Max: 2
    Avgö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: 4
    Avgö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.
  5. 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.

  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:

    Property Värde beskrivning
    Minsta repliker – Standard: 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 – Standard: 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 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.

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

  2. På ingresssidan bredvid 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

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

  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:

    • Client ID
    • Klientorganisations-ID
    • Klienthemlighet
  4. 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.

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

Azure CLI

  1. Om du vill skapa appregistreringen använder du kommandot az ad sp create.

  2. Om du vill granska alla egenskaper använder du kommandot az ad sp show.

  3. 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
  4. Lägg nu till de sparade värdena som miljövariabler i standardlogikappresursen.

Lägga till appregistreringsvärden i standardlogikappen

  1. I Azure Portal går du till din standardlogikappresurs.

  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>
    WORKFLOWAPP_AAD_CLIENTSECRET <my-client-secret>
  6. 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.

  1. Gå till logikappresursen i Azure Portal.

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

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

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

  1. I Azure Portal går du till containerappresursen för logikappen.

  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.

    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:

  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:

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