Dela via


Skapa och distribuera arbetsflöden för en klientbaserad logikapp med Azure Arc-aktiverade Logic Apps (förhandsversion)

Kommentar

Den här funktionen är i förhandsversion och omfattas av kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.

Med Azure Arc-aktiverade Logic Apps kan du skapa och distribuera arbetsflöden för en klientbaserad logikapp till en Kubernetes-infrastruktur som du använder och hanterar. Dina logikappar körs på en anpassad plats som mappas till ett Azure Arc-aktiverat Kubernetes-kluster där du installerade och aktiverade paketet med Azure App Service-plattformstillägg.

Det här klustret kan till exempel vara Azure Kubernetes Service, bare-metal Kubernetes eller en annan konfiguration. Med tilläggspaketet kan du köra plattformstjänster som Azure Logic Apps, Azure App Service och Azure Functions i kubernetes-klustret.

Mer information finns i följande dokumentation:

Förutsättningar

I det här avsnittet beskrivs de vanliga förutsättningarna för alla metoder och verktyg som du kan använda för att skapa och distribuera dina arbetsflöden för logikappar. Verktygsspecifika krav visas tillsammans med motsvarande steg.

  • Ett Azure-konto med en aktiv prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.

  • En Kubernetes-miljö med ett Azure Arc-aktiverat Kubernetes-kluster och en anpassad plats där du kan vara värd för och köra Azure Logic Apps, Azure App Service och Azure Functions.

    Viktigt!

    Kontrollera att du använder samma resursplats för kubernetes-miljön, den anpassade platsen och logikappen.

    När du skapar App Service-pakettillägget i kubernetes-klustret kan du ändra standardskalningsbeteendet för att köra logikappens arbetsflöden. När du skapar tillägget med hjälp av Azure CLI-kommandot az k8s-extension createska du inkludera konfigurationsinställningen: keda.enabled=true

    az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"

    Mer information finns i följande dokumentation:

  • Din egen Microsoft Entra-identitet

    Om dina arbetsflöden behöver använda azure-värdbaserade anslutningar, till exempel Office 365 Outlook eller Azure Storage, måste logikappen använda en Microsoft Entra-identitet för autentisering. Azure Arc-aktiverade Logic Apps kan köras på valfri infrastruktur, men kräver en identitet som har behörighet att använda Azure-värdbaserade anslutningar. Om du vill konfigurera den här identiteten skapar du en appregistrering i Microsoft Entra-ID som logikappen använder som nödvändig identitet.

    Kommentar

    Stöd för hanterad identitet är för närvarande inte tillgängligt för Azure Arc-aktiverade Logic Apps.

    Följ dessa steg för att skapa en Microsoft Entra-appregistrering med hjälp av Azure CLI:

    1. Skapa en appregistrering med hjälp az ad sp create av kommandot .

    2. Om du vill granska all information kör du az ad sp show kommandot.

    3. Från utdata från båda kommandona letar du upp och sparar klient-ID, objekt-ID, klient-ID och klienthemlighetsvärden som du behöver behålla för senare användning.

    Följ dessa steg för att skapa en Microsoft Entra-appregistrering med hjälp av Azure Portal:

    1. Skapa en ny Microsoft Entra-appregistrering med hjälp av Azure Portal.

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

    3. På registreringsmenyn väljer du Översikt och sparar klient-ID, klient-ID och klienthemlighetsvärden.

    4. Om du vill hitta objekt-ID:t väljer du namnet på appregistreringen bredvid det hanterade programmet i det lokala katalogfältet . Kopiera objekt-ID:t från egenskapsvyn.

Skapa och distribuera logikappar

Baserat på om du vill använda Azure CLI eller Visual Studio Code väljer du fliken matchning för att granska de specifika förutsättningarna och stegen.

Innan du börjar måste du ha följande objekt:

  • Det senaste Azure CLI-tillägget installerat på den lokala datorn.

  • Förhandsversionen av Azure Logic Apps-tillägget (Standard) för Azure CLI.

    Även om Azure Logic Apps för en klientorganisation är allmänt tillgängligt är Azure Logic Apps-tillägget fortfarande i förhandsversion.

  • En Azure-resursgrupp där du kan skapa din logikapp.

    Om du inte har den här resursgruppen följer du stegen för att skapa resursgruppen.

  • Ett Azure Storage-konto som ska användas med logikappen för data- och körningshistorikkvarhållning.

    Om du inte har det här lagringskontot kan du skapa det här kontot när du skapar logikappen, eller så kan du följa stegen för att skapa ett lagringskonto.

Kontrollera miljö- och CLI-version

  1. Logga in på Azure-portalen. Kontrollera att din prenumeration är aktiv genom att köra följande kommando:

    az login
    
  2. Kontrollera din version av Azure CLI i en terminal eller ett kommandofönster genom att köra följande kommando:

    az --version
    

    Den senaste versionen finns i de senaste viktig information.

  3. Om du inte har den senaste versionen uppdaterar du installationen genom att följa installationsguiden för ditt operativsystem eller din plattform.

Installera Azure Logic Apps-tillägget (Standard) för Azure CLI

Installera azure logic apps-tillägget (standard) för förhandsversionen av en enda klientorganisation för Azure CLI genom att köra följande kommando:

az extension add --yes --source "https://aka.ms/logicapp-latest-py2.py3-none-any.whl"

Skapa resursgrupp

Om du inte redan har en resursgrupp för logikappen skapar du gruppen genom att köra kommandot az group create. Om du inte redan har angett en standardprenumeration för ditt Azure-konto ska du använda parametern --subscription med ditt prenumerationsnamn eller din identifierare. Annars behöver du inte använda parametern --subscription .

Dricks

Om du vill ange en standardprenumeration kör du följande kommando och ersätter MySubscription med ditt prenumerationsnamn eller din identifierare.

az account set --subscription MySubscription

Följande kommando skapar till exempel en resursgrupp med namnet MyResourceGroupName med azure-prenumerationen med namnet MySubscription på platsen eastus:

az group create --name MyResourceGroupName 
   --subscription MySubscription 
   --location eastus

Om resursgruppen har skapats visas utdata som provisioningState Succeeded:

<...>
   "name": "testResourceGroup",
   "properties": {
      "provisioningState": "Succeeded"
    },
<...>

Skapa en logikapp

Om du vill skapa en Azure Arc-aktiverad logikapp kör du kommandot , az logicapp createmed följande obligatoriska parametrar. Resursplatserna för logikappen, den anpassade platsen och Kubernetes-miljön måste alla vara desamma.

Parametrar beskrivning
--name -n Ett unikt namn för logikappen
--resource-group -g Namnet på resursgruppen där du vill skapa logikappen. Om du inte har någon att använda skapar du en resursgrupp.
--storage-account -s Lagringskontot som ska användas med logikappen. Använd ett strängvärde för lagringskonton i samma resursgrupp. Använd ett resurs-ID för lagringskonton i en annan resursgrupp.
az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation

Om du vill skapa en Azure Arc-aktiverad logikapp med en privat Azure Container Registry-avbildning (ACR) kör du kommandot , az logicapp createmed följande obligatoriska parametrar:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   --deployment-container-image-name myacr.azurecr.io/myimage:tag
   --docker-registry-server-password MyPassword 
   --docker-registry-server-user MyUsername

Visa information om logikappen

Om du vill visa information om din Azure Arc-aktiverade logikapp kör du kommandot , az logicapp showmed följande obligatoriska parametrar:

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Distribuera logikapp

Om du vill distribuera din Azure Arc-aktiverade logikapp med hjälp av Kudu zip-distributionen i Azure App Service kör du kommandot , az logicapp deployment source config-zipmed följande obligatoriska parametrar:

Viktigt!

Kontrollera att zip-filen innehåller projektets artefakter på rotnivå. Dessa artefakter omfattar alla arbetsflödesmappar, konfigurationsfiler som host.json, connections.json och andra relaterade filer. Lägg inte till några extra mappar eller placera artefakter i mappar som inte redan finns i projektstrukturen. Den här listan visar till exempel ett exempel MyBuildArtifacts.zip filstruktur:

MyStatefulWorkflow1-Folder
MyStatefulWorkflow2-Folder
connections.json
host.json
az logicapp deployment source config-zip --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --src MyBuildArtifact.zip

Starta logikapp

Starta din Azure Arc-aktiverade logikapp genom att köra kommandot , az logicapp start, med följande obligatoriska parametrar:

az logicapp start --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Stoppa logikapp

Om du vill stoppa din Azure Arc-aktiverade logikapp kör du kommandot , az logicapp stopmed följande obligatoriska parametrar:

az logicapp stop --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Starta om logikappen

Om du vill starta om din Azure Arc-aktiverade logikapp kör du kommandot , az logicapp restartmed följande obligatoriska parametrar:

az logicapp restart --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Ta bort logikapp

Om du vill ta bort din Azure Arc-aktiverade logikapp kör du kommandot , az logicapp deletemed följande obligatoriska parametrar:

az logicapp delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Konfigurera anslutningsautentisering

För närvarande har Inte Azure Arc-aktiverade Kubernetes-kluster stöd för att använda en hanterad identitet i logikappen för att autentisera hanterade API-anslutningar. Du skapar dessa Azure-värdbaserade och hanterade anslutningar när du använder hanterade anslutningsappar i dina arbetsflöden.

I stället måste du skapa en egen appregistrering i Microsoft Entra-ID. Du kan sedan använda den här appregistreringen som en identitet för logikappar som distribueras och körs i Azure Arc-aktiverade Logic Apps. Mer information finns i förhandskraven på den översta nivån.

Från din appregistrering behöver du klient-ID, objekt-ID, klient-ID och klienthemlighet. Om du använder Visual Studio Code för att distribuera har du en inbyggd upplevelse för att konfigurera logikappen med en Microsoft Entra-identitet. Mer information finns i Skapa och distribuera arbetsflöden för logikappar – Visual Studio Code.

Men om du använder Visual Studio Code för utveckling, men du använder Azure CLI eller automatiserade pipelines för att distribuera, följer du dessa steg.

Konfigurera anslutnings- och appinställningar i projektet

  1. Leta reda på authentication objektet för den hanterade anslutningen i logikappprojektets connections.json-fil. Ersätt det här objektets innehåll med din appregistreringsinformation, som du tidigare genererade i förhandskraven på den översta nivån:

    "authentication": {
       "type": "ActiveDirectoryOAuth",
       "audience": "https://management.core.windows.net/",
       "credentialType": "Secret",
       "clientId": "@appsetting('WORKFLOWAPP_AAD_CLIENTID')",
       "tenant": "@appsetting('WORKFLOWAPP_AAD_TENANTID')",
       "secret": "@appsetting('WORKFLOWAPP_AAD_CLIENTSECRET')"
    } 
    
  2. I logikappprojektets local.settings.json-fil lägger du till klient-ID, objekt-ID, klient-ID och klienthemlighet. Efter distributionen blir de här inställningarna dina inställningar för logikappen.

    {
       "IsEncrypted": false,
       "Values": {
          <...>
          "WORKFLOWAPP_AAD_CLIENTID":"<my-client-ID>",
          "WORKFLOWAPP_AAD_OBJECTID":"<my-object-ID",
          "WORKFLOWAPP_AAD_TENANTID":"<my-tenant-ID>",
          "WORKFLOWAPP_AAD_CLIENTSECRET":"<my-client-secret>"
       }
    }
    

Viktigt!

För produktionsscenarier eller miljöer ska du skydda och skydda sådana hemligheter och känslig information, till exempel med hjälp av ett nyckelvalv.

Lägga till åtkomstprinciper

I Azure Logic Apps för en klientorganisation har varje logikapp en identitet som beviljas behörigheter av åtkomstprinciper för att använda Azure-värdbaserade och hanterade anslutningar. Du kan konfigurera dessa åtkomstprinciper med hjälp av distributioner av Azure Portal eller infrastruktur.

ARM-mall

I din Azure Resource Manager-mall (ARM-mall) innehåller du följande resursdefinition för varje hanterad API-anslutning och anger följande information:

Parameter Description
<anslutningsnamn> Namnet på din hanterade API-anslutning, till exempel office365
<object-ID> Objekt-ID:t för din Microsoft Entra-identitet, som tidigare sparats från din appregistrering
<klientorganisations-ID> Klientorganisations-ID:t för din Microsoft Entra-identitet, som tidigare sparats från din appregistrering
{
   "type": "Microsoft.Web/connections/accessPolicies",
   "apiVersion": "2016-06-01",
   "name": "[concat('<connection-name>'),'/','<object-ID>')]",
   "location": "<location>",
   "dependsOn": [
      "[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
   ],
   "properties": {
      "principal": {
         "type": "ActiveDirectory",
         "identity": {
            "objectId": "<object-ID>",
            "tenantId": "<tenant-ID>"
         }
      }
   }
}

Mer information finns i dokumentationen om Microsoft.Web/connections/accesspolicies (ARM-mall).

Azure Portal

För den här uppgiften använder du ditt tidigare sparade klient-ID som program-ID.

  1. I Azure Portal letar du upp och öppnar logikappen. På logikappmenyn går du till Arbetsflöden och väljer Anslutningar, som visar alla anslutningar i arbetsflödena för logikappresursen.

  2. Under API-anslutningar väljer du en anslutning, som finns office365 i det här exemplet.

  3. På anslutningens meny går du till Inställningar och väljer Åtkomstprinciper>Lägg till.

  4. I fönstret Lägg till åtkomstprincip går du till sökrutan och letar upp och väljer ditt tidigare sparade klient-ID.

  5. När du är klar väljer du Lägg till.

  6. Upprepa de här stegen för varje Azure-värdbaserad anslutning i logikappen.

Automatisera DevOps-distribution

Om du vill skapa och distribuera dina Azure Arc-aktiverade logikappar kan du använda samma pipelines och processer som för en klientbaserade logikappar. Om du vill automatisera infrastrukturdistributioner med hjälp av pipelines för DevOps gör du följande ändringar på infrastrukturnivå för både icke-container- och containerdistributioner.

Standarddistribution (noncontainer)

Om du använder zip-distribution för distribution av logikappar behöver du inte konfigurera ett Docker-register för att vara värd för containeravbildningar. Även om logikappar på Kubernetes tekniskt körs på containrar, hanterar Azure Arc-aktiverade Logic Apps dessa containrar åt dig. I det här scenariot utför du följande uppgifter när du konfigurerar infrastrukturen:

I din Azure Resource Manager-mall (ARM-mall) innehåller du följande värden:

Artikel JSON-egenskap beskrivning
Location location Se till att använda samma resursplats (Azure-region) som din anpassade plats och Kubernetes-miljö. Resursplatserna för logikappen, den anpassade platsen och Kubernetes-miljön måste alla vara desamma.

Obs! Det här värdet är inte samma som namnetdin anpassade plats.

Apptyp kind Den typ av app som du distribuerar så att Azure-plattformen kan identifiera din app. För Azure Logic Apps ser den här informationen ut som i följande exempel: kubernetes,functionapp,workflowapp,linux
Utökad plats extendedLocation Det här objektet kräver den "name" anpassade platsen för Kubernetes-miljön och måste ha värdet "type" "CustomLocation".
Resurs-ID för värdplan serverFarmId Resurs-ID:t för den associerade App Service-planen, formaterat på följande sätt:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

Lagring anslutningssträng AzureWebJobsStorage Anslutningssträng för ditt lagringskonto

Viktigt: Du måste ange anslutningssträng för ditt lagringskonto i ARM-mallen. För produktionsscenarier eller miljöer ska du skydda och skydda sådana hemligheter och känslig information, till exempel med hjälp av ett nyckelvalv.

ARM-mall

I följande exempel beskrivs ett exempel på en Azure Arc-aktiverad Logic Apps-resursdefinition som du kan använda i ARM-mallen. Mer information finns i JSON-dokumentationen (Microsoft.Web/sites template format).

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": "kubernetes,functionapp,workflowapp,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "clientAffinityEnabled": false,
      "name": "[parameters('name')]",
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "dotnet"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "Node|12"
      }
   }
}

Kommentar

Som standard är dotnetFUNCTIONS_WORKER_RUNTIME appinställning för logikappen . node Tidigare var standardvärdet. dotnet Men nu är standardvärdet för alla nya och befintliga distribuerade Arc-aktiverade logikappar, även för appar som har ett annat värde. Den här ändringen bör inte påverka arbetsflödets körning och allt bör fungera på samma sätt som tidigare. Mer information finns i inställningen FUNCTIONS_WORKER_RUNTIME app.

Den APP_KIND appinställningen för logikappen är inställd på workflowapp, men i vissa scenarier saknas den här appinställningen, till exempel på grund av Azure Resource Manager-mallar eller andra scenarier där inställningen kanske inte ingår. Om vissa åtgärder inte fungerar, till exempel åtgärden Kör JavaScript Code eller om arbetsflödet slutar fungera, kontrollerar du att inställningen APP_KIND app finns och är inställd på arbetsflödesapp. Mer information finns i inställningen APP_KIND app.

Containerdistribution

Om du föredrar att använda containerverktyg och distributionsprocesser kan du containerisera dina logikappar och distribuera dem till Azure Arc-aktiverade Logic Apps. I det här scenariot utför du följande uppgifter på hög nivå när du konfigurerar infrastrukturen:

  • Konfigurera ett Docker-register för att vara värd för dina containeravbildningar.

  • Om du vill containerisera logikappen lägger du till följande Dockerfile i logikappprojektets rotmapp och följer stegen för att skapa och publicera en avbildning i Docker-registret, till exempel granska Självstudie: Skapa och distribuera containeravbildningar i molnet med Azure Container Registry Tasks.

    Kommentar

    Om du använder SQL som lagringsprovider kontrollerar du att du använder en Azure Functions-avbildningsversion 3.3.1 eller senare.

    FROM mcr.microsoft.com/azure-functions/node:3.3.1
    ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true \
    FUNCTIONS_V2_COMPATIBILITY_MODE=true
    COPY . /home/site/wwwroot
    RUN cd /home/site/wwwroot
    
  • Meddela resursprovidern att du skapar en logikapp i Kubernetes.

  • I distributionsmallen pekar du på Docker-registret och containeravbildningen där du planerar att distribuera. Azure Logic Apps med en klientorganisation använder den här informationen för att hämta containeravbildningen från Docker-registret.

  • Inkludera en App Service-plan med din distribution. Mer information finns i Inkludera App Service-plan med distribution.

I din Azure Resource Manager-mall (ARM-mall) innehåller du följande värden:

Artikel JSON-egenskap beskrivning
Location location Se till att använda samma resursplats (Azure-region) som din anpassade plats och Kubernetes-miljö. Resursplatserna för logikappen, den anpassade platsen och Kubernetes-miljön måste alla vara desamma.

Obs! Det här värdet är inte samma som namnetdin anpassade plats.

Apptyp kind Den typ av app som du distribuerar så att Azure-plattformen kan identifiera din app. För Azure Logic Apps ser den här informationen ut som i följande exempel: kubernetes,functionapp,workflowapp,container
Utökad plats extendedLocation Det här objektet kräver den "name" anpassade platsen för Kubernetes-miljön och måste ha "type" angetts till "CustomLocation".
Containerns namn linuxFxVersion Namnet på containern, formaterat på följande sätt: DOCKER\|<container-name>
Resurs-ID för värdplan serverFarmId Resurs-ID:t för den associerade App Service-planen, formaterat på följande sätt:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

Lagring anslutningssträng AzureWebJobsStorage Anslutningssträng för ditt lagringskonto

Viktigt: När du distribuerar till en Docker-container måste du ange anslutningssträng för ditt lagringskonto i ARM-mallen. För produktionsscenarier eller miljöer ska du skydda och skydda sådana hemligheter och känslig information, till exempel med hjälp av ett nyckelvalv.

Om du vill referera till Docker-registret och containeravbildningen inkluderar du dessa värden i mallen:

Artikel JSON-egenskap beskrivning
Url för Docker-registerserver DOCKER_REGISTRY_SERVER_URL URL:en för Docker-registerservern
Docker-registerserver DOCKER_REGISTRY_SERVER_USERNAME Användarnamnet för att komma åt Docker-registerservern
Docker-registerserverlösenord DOCKER_REGISTRY_SERVER_PASSWORD Lösenordet för att komma åt Docker-registerservern

ARM-mall

I följande exempel beskrivs ett exempel på en Azure Arc-aktiverad Logic Apps-resursdefinition som du kan använda i ARM-mallen. Mer information finns i dokumentationen om mallformatet microsoft.web/sites (ARM-mall).

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": " kubernetes,functionapp,workflowapp,container",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "name": "[parameters('name')]",
      "clientAffinityEnabled": false,
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "dotnet"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }, 
            {
               "name": "DOCKER_REGISTRY_SERVER_URL",
               "value": "<docker-registry-server-URL>"
            },
            { 
               "name": "DOCKER_REGISTRY_SERVER_USERNAME",
               "value": "<docker-registry-server-username>"
            },
            {
               "name": "DOCKER_REGISTRY_SERVER_PASSWORD",
               "value": "<docker-registry-server-password>"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "DOCKER|<container-name>"
      }
   }
}

Kommentar

Tidigare var nodestandardvärdet för den FUNCTIONS_WORKER_RUNTIME inställningen . dotnet Nu är standardvärdet för alla nya och befintliga distribuerade standardlogikappar, även för appar som har ett annat värde. Den här ändringen bör inte påverka arbetsflödets körning och allt bör fungera på samma sätt som tidigare. Mer information finns i inställningen FUNCTIONS_WORKER_RUNTIME app.

Inkludera App Service-plan med distribution

Oavsett om du har en standard- eller containerdistribution måste du inkludera en App Service-plan med din distribution. Även om den här planen blir mindre relevant för en Kubernetes-miljö, kräver både standard- och containerdistributionerna fortfarande en App Service-plan.

Även om andra alternativ för att skapa vanligtvis hanterar etablering av Azure-resursen för den här planen, måste du uttryckligen skapa Azure-resursen för planen om dina distributioner använder "infrastruktur som kod"-mallar. Värdplansresursen ändras inte, bara sku informationen.

I din Azure Resource Manager-mall (ARM-mall) innehåller du följande värden:

Artikel JSON-egenskap beskrivning
Location location Se till att använda samma resursplats (Azure-region) som din anpassade plats och Kubernetes-miljö. Resursplatserna för logikappen, den anpassade platsen och Kubernetes-miljön måste alla vara desamma.

Obs! Det här värdet är inte samma som namnetdin anpassade plats.

Variant kind Den typ av App Service-plan som distribueras som måste vara kubernetes,linux
Utökad plats extendedLocation Det här objektet kräver den "name" anpassade platsen för Kubernetes-miljön och måste ha "type" angetts till "CustomLocation".
Namn på värdplan name Namnet på App Service-planen
Plannivå sku: tier App Service-plannivån, som är K1
Plannamn sku: name App Service-plannamnet, som är Kubernetes

ARM-mall

I följande exempel beskrivs en exempelresursdefinition för App Service-plan som du kan använda med appdistributionen. Mer information finns i dokumentationen om mallformatet Microsoft.Web/serverfarms (ARM-mall).

{
   "type": "Microsoft.Web/serverfarms",
   "apiVersion": "2020-12-01",
   "location": "<location>",
   "name": "<hosting-plan-name>",
   "kind": "kubernetes,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
   },
   "sku": {
      "tier": "Kubernetes",
      "name": "K1", 
      "capacity": 1
   },
   "properties": {
      "kubeEnvironmentProfile": {
         "id": "[parameters('kubeEnvironmentId')]"
      }
   }
}

Ändra standardskalningsbeteende

Azure Arc-aktiverade Logic Apps hanterar automatiskt skalningen för dina logikappar baserat på antalet jobb i serverdelslagringskön. Du kan dock ändra standardskalningsbeteendet.

I en logikapp anger arbetsflödesdefinitionen sekvensen med åtgärder som ska köras. När en arbetsflödeskörning utlöses skapar Azure Logic Apps-körningen ett jobb för varje åtgärdstyp i arbetsflödesdefinitionen. Körningen organiserar sedan dessa jobb i en jobbsekvenserare. Den här sekvenseraren orkestrerar körningen av jobben för arbetsflödesdefinitionen, men den underliggande Azure Logic Apps-jobborkestreringsmotorn kör varje jobb.

För tillståndskänsliga arbetsflöden använder jobborkestreringsmotorn lagringskömeddelanden för att schemalägga jobb i jobbsekvenserarna. I bakgrunden övervakar jobbutskickare (eller dispatcher worker-instanser) dessa jobbköer. Orkestreringsmotorn använder ett lägsta och högsta standardantal arbetsinstanser för att övervaka jobbköerna. För tillståndslösa arbetsflöden håller orkestreringsmotorn helt åtgärdstillstånd i minnet.

Om du vill ändra standardskalningsbeteendet anger du olika minsta och högsta antal arbetsinstanser som övervakar jobbköerna.

Förutsättningar för att ändra skalning

I ditt Azure Arc-aktiverade Kubernetes-kluster måste det tidigare skapade App Service-pakettillägget keda.enabled ha egenskapen inställd på true. Mer information finns i förhandskraven på den översta nivån.

Ändra skalningströskel

I Azure Arc-aktiverade Logic Apps utlöser längden på jobbkön en skalningshändelse och anger ett tröskelvärde för hur ofta skalning sker för logikappen. Du kan ändra kölängden, som har standardvärdet inställt på 20 jobb. Öka kölängden om du vill skala mindre ofta. Minska kölängden om du vill skala oftare. Den här processen kan kräva en del utvärderingsversioner och fel.

Om du vill ändra kölängden anger du Runtime.ScaleMonitor.KEDA.TargetQueueLength egenskapen i logikappprojektets host.json-fil på rotnivå, till exempel:

"extensions": {
   "workflow": {
      "settings": {
         "Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
      }
   }
}

Ändra maximalt dataflöde

På en befintlig logikappresurs kan du ändra det maximala antalet arbetsinstanser, som har standardvärdet inställt på 2. Det här värdet styr den övre gränsen för hur många arbetsinstanser som kan övervaka jobbköerna.

Om du vill ändra det här maxvärdet använder du Azure CLI (endast skapa logikapp) och Azure Portal.

Azure CLI

Om du vill skapa en ny logikapp kör du kommandot , az logicapp createmed följande parametrar:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 1] [--max-worker-count 4]

Använd parametern för att konfigurera maximalt antal instanser --settings :

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --settings "K8SE_APP_MAX_INSTANCE_COUNT=10"

Azure Portal

I inställningarna för en klientbaserad logikapp lägger du till eller redigerar K8SE_APP_MAX_INSTANCE_COUNT inställningsvärdet genom att följa dessa steg:

  1. I Azure Portal letar du upp och öppnar din logikapp baserad på en klientorganisation.

  2. På logikappmenyn går du till Inställningar och väljer Konfiguration.

  3. I fönstret Konfiguration under Programinställningar lägger du antingen till en ny programinställning eller redigerar det befintliga värdet om det redan har lagts till.

    1. Välj Ny programinställning och lägg till inställningen K8SE_APP_MAX_INSTANCE_COUNT med det högsta värde du vill ha.

    2. Redigera det befintliga värdet för inställningen K8SE_APP_MAX_INSTANCE_COUNT .

  4. Spara ändringarna när du är klar.

Ändra minsta dataflöde

På en befintlig logikappresurs kan du ändra det minsta antalet arbetsinstanser, som har standardvärdet inställt på 1. Det här värdet styr den lägre gränsen för hur många arbetsinstanser som kan övervaka jobbköerna. Öka det här värdet för hög tillgänglighet eller prestanda.

Om du vill ändra detta minimum använder du Azure CLI eller Azure Portal.

Azure CLI

För en befintlig logikappresurs kör du kommandot , az logicapp scalemed följande parametrar:

az logicapp scale --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --instance-count 5 

Om du vill skapa en ny logikapp kör du kommandot , az logicapp createmed följande parametrar:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 2] [--max-worker-count 4]

Azure Portal

Ändra egenskapsvärdet Skala ut i inställningarna för en klientbaserad logikapp genom att följa dessa steg:

  1. I Azure Portal letar du upp och öppnar din logikapp baserad på en klientorganisation.

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

  3. Dra skjutreglaget för minsta instanser till önskat värde i fönstret Skala ut.

  4. Spara ändringarna när du är klar.

Felsöka problem

Om du vill ha mer information om dina distribuerade logikappar kan du prova följande alternativ:

Åtkomst till appinställningar och konfiguration

För att komma åt appinställningarna kör du kommandot , az logicapp config appsettingsmed följande parametrar:

az logicapp config appsettings list --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Om du vill konfigurera en appinställning kör du kommandot , az logicapp config appsettings setmed följande parametrar. Se till att använda parametern --settings med inställningens namn och värde.

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --settings "MySetting=1"

Om du vill ta bort en appinställning kör du kommandot , az logicapp config appsettings deletemed följande parametrar. Se till att använda parametern --setting-names med namnet på den inställning som du vill ta bort.

az logicapp config appsettings delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --setting-names MySetting

Visa egenskaper för logikapp

Om du vill visa din appinformation och egenskaper kör du kommandot , az logicapp showmed följande parametrar:

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Övervaka arbetsflödesaktivitet

Följ dessa steg om du vill visa aktiviteten för ett arbetsflöde i logikappen:

  1. I Azure Portal letar du upp och öppnar den distribuerade logikappen.

  2. På logikappmenyn väljer du Arbetsflöden och sedan ditt arbetsflöde.

  3. Välj Övervaka på arbetsflödesmenyn.

Samla in loggar

Om du vill hämta loggade data om logikappen aktiverar du Application Insights i logikappen om den inte redan är aktiverad.

Nästa steg