Delen via


Werkstromen voor logische apps met één tenant maken en implementeren met Logic Apps met Azure Arc (preview)

Notitie

Deze mogelijkheid is in preview en is onderworpen aan de aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews.

Met Logic Apps met Azure Arc kunt u op één tenant gebaseerde logische app-werkstromen maken en implementeren in een Kubernetes-infrastructuur die u beheert en beheert. Uw logische apps worden uitgevoerd op een aangepaste locatie die is toegewezen aan een Kubernetes-cluster met Azure Arc waarop u de bundel Azure-app Service-platformextensies hebt geïnstalleerd en ingeschakeld.

Dit cluster kan bijvoorbeeld Azure Kubernetes Service, bare-metal Kubernetes of een andere installatie zijn. Met de uitbreidingsbundel kunt u platformservices uitvoeren, zoals Azure Logic Apps, Azure-app Service en Azure Functions in uw Kubernetes-cluster.

Raadpleeg de volgende documentatie voor meer informatie:

Vereisten

In deze sectie worden de algemene vereisten beschreven voor alle benaderingen en hulpprogramma's die u kunt gebruiken om uw werkstromen voor logische apps te maken en te implementeren. Hulpprogrammaspecifieke vereisten worden samen met de bijbehorende stappen weergegeven.

  • Een Azure-account met een actief abonnement. Als u nog geen Azure-abonnement hebt, maakt u een gratis account.

  • Een Kubernetes-omgeving met een Kubernetes-cluster met Azure Arc en een aangepaste locatie waar u Azure Logic Apps, Azure-app Service en Azure Functions kunt hosten en uitvoeren.

    Belangrijk

    Zorg ervoor dat u dezelfde resourcelocatie gebruikt voor uw Kubernetes-omgeving, aangepaste locatie en logische app.

    Wanneer u de App Service-bundelextensie in uw Kubernetes-cluster maakt, kunt u het standaardaanpassingsgedrag voor het uitvoeren van uw werkstromen voor logische apps wijzigen. Wanneer u de extensie maakt met behulp van de Azure CLI-opdracht, az k8s-extension createmoet u de configuratie-instelling opnemen: keda.enabled=true

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

    Raadpleeg de volgende documentatie voor meer informatie:

  • Uw eigen Microsoft Entra-identiteit

    Als uw werkstromen gebruikmaken van door Azure gehoste verbindingen, zoals Office 365 Outlook of Azure Storage, moet uw logische app een Microsoft Entra-identiteit gebruiken voor verificatie. Logic Apps met Azure Arc kan worden uitgevoerd op elke infrastructuur, maar vereist een identiteit met machtigingen voor het gebruik van door Azure gehoste verbindingen. Als u deze identiteit wilt instellen, maakt u een app-registratie in Microsoft Entra-id die uw logische app gebruikt als de vereiste identiteit.

    Notitie

    Ondersteuning voor beheerde identiteiten is momenteel niet beschikbaar voor Logic Apps met Azure Arc.

    Voer de volgende stappen uit om een Microsoft Entra-app-registratie te maken met behulp van de Azure CLI:

    1. Maak een app-registratie met behulp van de az ad sp create opdracht.

    2. Als u alle details wilt bekijken, voert u de az ad sp show opdracht uit.

    3. Zoek en sla in de uitvoer van beide opdrachten de client-id, object-id, tenant-id en clientgeheimwaarden op die u later moet bewaren.

    Voer de volgende stappen uit om een Microsoft Entra-app-registratie te maken met behulp van Azure Portal:

    1. Maak een nieuwe Microsoft Entra-app-registratie met behulp van Azure Portal.

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

    3. Selecteer Overzicht in het registratiemenu en sla de waarden voor de client-id, tenant-id en clientgeheim op.

    4. Als u de object-id wilt vinden, selecteert u naast de beheerde toepassing in het veld Lokale map de naam voor uw app-registratie. Kopieer in de eigenschappenweergave de object-id.

Logische apps maken en implementeren

Op basis van of u Azure CLI of Visual Studio Code wilt gebruiken, selecteert u het overeenkomende tabblad om de specifieke vereisten en stappen te controleren.

Voordat u begint, moet u de volgende items hebben:

  • De nieuwste Azure CLI-extensie die op uw lokale computer is geïnstalleerd.

  • De preview-extensie van Azure Logic Apps (Standard) voor Azure CLI.

    Hoewel Azure Logic Apps met één tenant algemeen beschikbaar is, is de Azure Logic Apps-extensie nog steeds in preview.

  • Een Azure-resourcegroep voor het maken van uw logische app.

    Als u deze resourcegroep niet hebt, volgt u de stappen om de resourcegroep te maken.

  • Een Azure-opslagaccount dat moet worden gebruikt met uw logische app voor gegevens en het bewaren van de uitvoeringsgeschiedenis.

    Als u dit opslagaccount niet hebt, kunt u dit account maken wanneer u uw logische app maakt, of u kunt de stappen volgen om een opslagaccount te maken.

Omgeving en CLI-versie controleren

  1. Meld u aan bij het Azure-portaal. Controleer of uw abonnement actief is door de volgende opdracht uit te voeren:

    az login
    
  2. Controleer uw versie van de Azure CLI in een terminal of opdrachtvenster door de volgende opdracht uit te voeren:

    az --version
    

    Bekijk de meest recente releaseopmerkingen voor de nieuwste versie.

  3. Als u de nieuwste versie niet hebt, werkt u uw installatie bij door de installatiehandleiding voor uw besturingssysteem of platform te volgen.

De Azure Logic Apps-extensie (Standard) installeren voor Azure CLI

Installeer de preview-extensie voor Azure Logic Apps (Standard) voor Azure CLI met één tenant door de volgende opdracht uit te voeren:

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

Resourcegroep maken

Als u nog geen resourcegroep voor uw logische app hebt, maakt u de groep door de opdracht az group createuit te voeren. Tenzij u al een standaardabonnement voor uw Azure-account hebt ingesteld, moet u de parameter gebruiken met de --subscription naam of id van uw abonnement. Anders hoeft u de --subscription parameter niet te gebruiken.

Tip

Als u een standaardabonnement wilt instellen, voert u de volgende opdracht uit en vervangt u deze door MySubscription de naam of id van uw abonnement.

az account set --subscription MySubscription

Met de volgende opdracht maakt u bijvoorbeeld een resourcegroep met de naam MyResourceGroupName van het Azure-abonnement MySubscription op de locatie eastus:

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

Als uw resourcegroep is gemaakt, wordt in de uitvoer het provisioningState volgende weergegeven:Succeeded

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

Logische app maken

Als u een logische app met Azure Arc wilt maken, voert u de opdracht az logicapp createuit, met de volgende vereiste parameters. De resourcelocaties voor uw logische app, aangepaste locatie en Kubernetes-omgeving moeten allemaal hetzelfde zijn.

Parameters Beschrijving
--name -n Een unieke naam voor uw logische app
--resource-group -g De naam van de resourcegroep waar u uw logische app wilt maken. Als u geen resourcegroep hoeft te gebruiken, maakt u een resourcegroep.
--storage-account -s Het opslagaccount dat moet worden gebruikt met uw logische app. Gebruik een tekenreekswaarde voor opslagaccounts in dezelfde resourcegroep. Gebruik een resource-id voor opslagaccounts in een andere resourcegroep.
az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation

Als u een logische app met Azure Arc wilt maken met behulp van een persoonlijke ACR-installatiekopieën (Azure Container Registry), voert u de opdracht az logicapp createuit, met de volgende vereiste parameters:

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

Details van logische app weergeven

Als u details over uw logische app met Azure Arc wilt weergeven, voert u de opdracht az logicapp showuit, met de volgende vereiste parameters:

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

Logische app implementeren

Als u uw logische app met Azure Arc wilt implementeren met behulp van de Kudu-zip-implementatie van Azure-app Service, voert u de opdracht az logicapp deployment source config-zipuit, met de volgende vereiste parameters:

Belangrijk

Zorg ervoor dat het ZIP-bestand de artefacten van uw project bevat op het hoofdniveau. Deze artefacten omvatten alle werkstroommappen, configuratiebestanden zoals host.json, connections.json en andere gerelateerde bestanden. Voeg geen extra mappen toe en plaats geen artefacten in mappen die nog niet bestaan in uw projectstructuur. In deze lijst ziet u bijvoorbeeld een voorbeeld van MyBuildArtifacts.zip bestandsstructuur:

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

Logische app starten

Als u uw logische app met Azure Arc wilt starten, voert u de opdracht az logicapp startuit, met de volgende vereiste parameters:

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

Logische app stoppen

Als u uw logische app met Azure Arc wilt stoppen, voert u de opdracht uit az logicapp stop, met de volgende vereiste parameters:

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

Logische app opnieuw opstarten

Als u de logische app met Azure Arc opnieuw wilt starten, voert u de opdracht az logicapp restartuit, met de volgende vereiste parameters:

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

Logische app verwijderen

Als u uw logische app met Azure Arc wilt verwijderen, voert u de opdracht az logicapp deleteuit, met de volgende vereiste parameters:

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

Verbindingsverificatie instellen

Op dit moment bieden Kubernetes-clusters met Azure Arc geen ondersteuning voor het gebruik van een beheerde identiteit voor logische apps om beheerde API-verbindingen te verifiëren. U maakt deze door Azure gehoste en beheerde verbindingen wanneer u beheerde connectors in uw werkstromen gebruikt.

In plaats daarvan moet u uw eigen app-registratie maken in Microsoft Entra ID. U kunt deze app-registratie vervolgens gebruiken als een identiteit voor logische apps die zijn geïmplementeerd en uitgevoerd in Logic Apps met Azure Arc. Raadpleeg de vereisten op het hoogste niveau voor meer informatie.

Vanuit uw app-registratie hebt u de client-id, object-id, tenant-id en clientgeheim nodig. Als u Visual Studio Code gebruikt om te implementeren, hebt u een ingebouwde ervaring voor het instellen van uw logische app met een Microsoft Entra-identiteit. Raadpleeg werkstromen voor logische apps maken en implementeren - Visual Studio Code voor meer informatie.

Als u Visual Studio Code echter gebruikt voor ontwikkeling, maar u Azure CLI of geautomatiseerde pijplijnen gebruikt om te implementeren, volgt u deze stappen.

Verbinding en app-instellingen configureren in uw project

  1. Zoek in het connections.json-bestand van uw logische app-project het authentication object voor de beheerde verbinding. Vervang de inhoud van dit object door uw app-registratiegegevens, die u eerder hebt gegenereerd in de vereisten op het hoogste niveau:

    "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. Voeg in het local.settings.json-bestand van uw logische app-project uw client-id, object-id, tenant-id en clientgeheim toe. Na de implementatie worden deze instellingen uw logische app-instellingen.

    {
       "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>"
       }
    }
    

Belangrijk

Voor productiescenario's of omgevingen moet u ervoor zorgen dat u dergelijke geheimen en gevoelige informatie beveiligt en beveiligt, bijvoorbeeld met behulp van een sleutelkluis.

Toegangsbeleid toevoegen

In Azure Logic Apps met één tenant heeft elke logische app een identiteit die machtigingen krijgt door middel van toegangsbeleid voor het gebruik van door Azure gehoste en beheerde verbindingen. U kunt dit toegangsbeleid instellen met behulp van Azure Portal of infrastructuurimplementaties.

ARM-sjabloon

Neem in uw Azure Resource Manager-sjabloon (ARM-sjabloon) de volgende resourcedefinitie op voor elke beheerde API-verbinding en geef de volgende informatie op:

Parameter Description
<verbindingsnaam> De naam voor uw beheerde API-verbinding, bijvoorbeeld office365
<object-id> De object-id voor uw Microsoft Entra-identiteit, eerder opgeslagen vanuit uw app-registratie
<tenant-id> De tenant-id voor uw Microsoft Entra-identiteit, eerder opgeslagen in uw app-registratie
{
   "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>"
         }
      }
   }
}

Raadpleeg de documentatie microsoft.Web/connections/accesspolicies (ARM-sjabloon) voor meer informatie.

Azure Portal

Gebruik voor deze taak uw eerder opgeslagen client-id als de toepassings-id.

  1. Zoek en open uw logische app in Azure Portal. Selecteer in het menu van uw logische app onder Werkstromen verbindingen, waarin alle verbindingen in de werkstromen voor uw logische app-resource worden vermeld.

  2. Selecteer onder API-verbindingen een verbinding, in office365 dit voorbeeld.

  3. Selecteer in het menu van de verbinding onder Instellingen de optie Toegangsbeleid>toevoegen.

  4. Zoek en selecteer uw eerder opgeslagen client-id in het zoekvak in het deelvenster Toegangsbeleid toevoegen.

  5. Wanneer u klaar bent, selecteert u Toevoegen.

  6. Herhaal deze stappen voor elke door Azure gehoste verbinding in uw logische app.

DevOps-implementatie automatiseren

Als u logische apps met Azure Arc wilt bouwen en implementeren, kunt u dezelfde pijplijnen en processen gebruiken als voor logische apps met één tenant. Als u infrastructuurimplementaties wilt automatiseren met behulp van pijplijnen voor DevOps, moet u de volgende wijzigingen aanbrengen op infrastructuurniveau voor zowel niet-containerimplementaties als containerimplementaties.

Standaardimplementatie (niet-container)

Als u zip deploy gebruikt voor de implementatie van logische apps, hoeft u geen Docker-register in te stellen voor het hosten van containerinstallatiekopieën. Hoewel logische apps in Kubernetes technisch worden uitgevoerd op containers, beheert Logic Apps met Azure Arc deze containers voor u. Voer voor dit scenario de volgende taken uit wanneer u uw infrastructuur instelt:

Neem in uw ARM-sjabloon (Azure Resource Manager-sjabloon) de volgende waarden op:

Artikel JSON-eigenschap Beschrijving
Locatie location Zorg ervoor dat u dezelfde resourcelocatie (Azure-regio) gebruikt als uw aangepaste locatie en Kubernetes-omgeving. De resourcelocaties voor uw logische app, aangepaste locatie en Kubernetes-omgeving moeten allemaal hetzelfde zijn.

Opmerking: deze waarde is niet hetzelfde als de naam voor uw aangepaste locatie.

App-soort kind Het type app dat u implementeert, zodat het Azure-platform uw app kan identificeren. Voor Azure Logic Apps ziet deze informatie eruit als in het volgende voorbeeld: kubernetes,functionapp,workflowapp,linux
Uitgebreide locatie extendedLocation Dit object vereist de "name" aangepaste locatie voor uw Kubernetes-omgeving en moet de "type" set hebben."CustomLocation"
Resource-id van hostingplan serverFarmId De resource-id van het gekoppelde App Service-plan, opgemaakt als volgt:

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

Opslag verbindingsreeks AzureWebJobsStorage De verbindingsreeks voor uw opslagaccount

Belangrijk: U moet de verbindingsreeks opgeven voor uw opslagaccount in uw ARM-sjabloon. Voor productiescenario's of omgevingen moet u ervoor zorgen dat u dergelijke geheimen en gevoelige informatie beveiligt en beveiligt, bijvoorbeeld met behulp van een sleutelkluis.

ARM-sjabloon

In het volgende voorbeeld wordt een voorbeeld van een Logic Apps-resourcedefinitie met Azure Arc beschreven die u in uw ARM-sjabloon kunt gebruiken. Raadpleeg de documentatie over de sjabloonindeling Microsoft.Web/sites (JSON) voor meer informatie.

{
   "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"
      }
   }
}

Notitie

Standaard is dotnetFUNCTIONS_WORKER_RUNTIME app-instelling voor uw logische app. node Voorheen was dit de standaardwaarde. dotnet Is nu echter de standaardwaarde voor alle nieuwe en bestaande geïmplementeerde logische apps met Arc, zelfs voor apps met een andere waarde. Deze wijziging mag niet van invloed zijn op de runtime van uw werkstroom en alles moet op dezelfde manier werken als voorheen. Zie de FUNCTIONS_WORKER_RUNTIME app-instelling voor meer informatie.

De APP_KIND-app-instelling voor uw logische app is ingesteld op workflowapp, maar in sommige scenario's ontbreekt deze app-instelling, bijvoorbeeld vanwege Azure Resource Manager-sjablonen of andere scenario's waarin de instelling mogelijk niet is opgenomen. Als bepaalde acties niet werken, zoals de actie JavaScript-code uitvoeren of als de werkstroom niet meer werkt, controleert u of de APP_KIND app-instelling bestaat en is ingesteld op workflowapp. Zie de APP_KIND app-instelling voor meer informatie.

Containerimplementatie

Als u liever containerhulpprogramma's en implementatieprocessen gebruikt, kunt u uw logische apps in containers plaatsen en implementeren in Logic Apps met Azure Arc. Voer voor dit scenario de volgende taken op hoog niveau uit wanneer u uw infrastructuur instelt:

  • Stel een Docker-register in voor het hosten van uw containerinstallatiekopieën.

  • Als u uw logische app in een container wilt plaatsen, voegt u het volgende Dockerfile toe aan de hoofdmap van uw logische app-project en volgt u de stappen voor het bouwen en publiceren van een installatiekopieën naar uw Docker-register, bijvoorbeeld zelfstudie: Containerinstallatiekopieën bouwen en implementeren in de cloud met Azure Container Registry-taken.

    Notitie

    Als u SQL als opslagprovider gebruikt, moet u ervoor zorgen dat u versie 3.3.1 of hoger van een Azure Functions-installatiekopieën gebruikt.

    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
    
  • Informeer de resourceprovider dat u een logische app in Kubernetes maakt.

  • Wijs in uw implementatiesjabloon het Docker-register en de containerinstallatiekopieën aan waar u de implementatie wilt uitvoeren. Azure Logic Apps met één tenant gebruikt deze informatie om de containerinstallatiekopieën op te halen uit uw Docker-register.

  • Neem een App Service-plan op bij uw implementatie. Raadpleeg App Service-plan opnemen met implementatie voor meer informatie.

Neem in uw Arm-sjabloon (Azure Resource Manager-sjabloon) de volgende waarden op:

Artikel JSON-eigenschap Beschrijving
Locatie location Zorg ervoor dat u dezelfde resourcelocatie (Azure-regio) gebruikt als uw aangepaste locatie en Kubernetes-omgeving. De resourcelocaties voor uw logische app, aangepaste locatie en Kubernetes-omgeving moeten allemaal hetzelfde zijn.

Opmerking: deze waarde is niet hetzelfde als de naam voor uw aangepaste locatie.

App-soort kind Het type app dat u implementeert, zodat het Azure-platform uw app kan identificeren. Voor Azure Logic Apps ziet deze informatie eruit als in het volgende voorbeeld: kubernetes,functionapp,workflowapp,container
Uitgebreide locatie extendedLocation Dit object vereist de "name" aangepaste locatie voor uw Kubernetes-omgeving en moet zijn "type" ingesteld op "CustomLocation".
Containernaam linuxFxVersion De naam voor uw container, die als volgt is opgemaakt: DOCKER\|<container-name>
Resource-id van hostingplan serverFarmId De resource-id van het gekoppelde App Service-plan, opgemaakt als volgt:

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

Opslag verbindingsreeks AzureWebJobsStorage De verbindingsreeks voor uw opslagaccount

Belangrijk: Wanneer u implementeert in een Docker-container, moet u de verbindingsreeks opgeven voor uw opslagaccount in uw ARM-sjabloon. Voor productiescenario's of omgevingen moet u ervoor zorgen dat u dergelijke geheimen en gevoelige informatie beveiligt en beveiligt, bijvoorbeeld met behulp van een sleutelkluis.

Als u wilt verwijzen naar uw Docker-register en containerinstallatiekopieën, neemt u deze waarden op in uw sjabloon:

Artikel JSON-eigenschap Beschrijving
URL van Docker-registerserver DOCKER_REGISTRY_SERVER_URL De URL voor de Docker-registerserver
Docker-registerserver DOCKER_REGISTRY_SERVER_USERNAME De gebruikersnaam voor toegang tot de Docker-registerserver
Wachtwoord voor Docker-registerserver DOCKER_REGISTRY_SERVER_PASSWORD Het wachtwoord voor toegang tot de Docker-registerserver

ARM-sjabloon

In het volgende voorbeeld wordt een voorbeeld van een Logic Apps-resourcedefinitie met Azure Arc beschreven die u in uw ARM-sjabloon kunt gebruiken. Raadpleeg de documentatie over de sjabloonindeling Microsoft.Web/sites (ARM-sjabloon) voor meer informatie.

{
   "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>"
      }
   }
}

Notitie

Voorheen was nodede standaardwaarde van de FUNCTIONS_WORKER_RUNTIME-instelling . dotnet Is nu de standaardwaarde voor alle nieuwe en bestaande geïmplementeerde logische standaard-apps, zelfs voor apps met een andere waarde. Deze wijziging mag niet van invloed zijn op de runtime van uw werkstroom en alles moet op dezelfde manier werken als voorheen. Zie de FUNCTIONS_WORKER_RUNTIME app-instelling voor meer informatie.

App Service-plan met implementatie opnemen

Of u nu een standaard- of containerimplementatie hebt, u moet een App Service-plan opnemen bij uw implementatie. Hoewel dit plan minder relevant wordt voor een Kubernetes-omgeving, is voor zowel de standaard- als containerimplementatie nog steeds een App Service-plan vereist.

Terwijl andere opties voor het maken van de Azure-resource doorgaans voor dit plan verwerken, moet u de Azure-resource expliciet maken voor het plan als uw implementaties gebruikmaken van 'infrastructuur als code'-sjablonen. De resource van het hostingplan verandert niet, alleen de sku informatie.

Neem in uw Arm-sjabloon (Azure Resource Manager-sjabloon) de volgende waarden op:

Artikel JSON-eigenschap Beschrijving
Locatie location Zorg ervoor dat u dezelfde resourcelocatie (Azure-regio) gebruikt als uw aangepaste locatie en Kubernetes-omgeving. De resourcelocaties voor uw logische app, aangepaste locatie en Kubernetes-omgeving moeten allemaal hetzelfde zijn.

Opmerking: deze waarde is niet hetzelfde als de naam voor uw aangepaste locatie.

Soort kind Het type App Service-plan dat moet worden geïmplementeerd kubernetes,linux
Uitgebreide locatie extendedLocation Dit object vereist de "name" aangepaste locatie voor uw Kubernetes-omgeving en moet zijn "type" ingesteld op "CustomLocation".
Naam van hostingabonnement name De naam voor het App Service-plan
Planlaag sku: tier De App Service-planlaag. Dit is K1
Plannaam sku: name De naam van het App Service-plan. Dit is Kubernetes

ARM-sjabloon

In het volgende voorbeeld wordt een voorbeeld van een Resourcedefinitie voor Een App Service-plan beschreven die u kunt gebruiken met uw app-implementatie. Raadpleeg de documentatie over microsoft.Web /serverfarms-sjabloonindeling (ARM-sjabloon) voor meer informatie.

{
   "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')]"
      }
   }
}

Standaardaanpassingsgedrag wijzigen

Met Logic Apps met Azure Arc wordt de schaal voor uw logische apps automatisch beheerd op basis van het aantal taken in de back-endopslagwachtrij. U kunt echter het standaardaanpassingsgedrag wijzigen.

In een logische app geeft de werkstroomdefinitie de reeks acties op die moeten worden uitgevoerd. Wanneer een werkstroom wordt geactiveerd, maakt de Azure Logic Apps-runtime een taak voor elk actietype in de werkstroomdefinitie. De runtime organiseert deze taken vervolgens in een job sequencer. Deze sequencer organiseert het uitvoeren van de taken voor de werkstroomdefinitie, maar de onderliggende Azure Logic Apps-taakindelingsengine voert elke taak uit.

Voor stateful werkstromen gebruikt de taakindelingsengine berichten uit de opslagwachtrij om taken in de takenreeksen te plannen. Achter de schermen bewaken taak-dispatchers (of exemplaren van dispatchermedewerkers) deze taakwachtrijen. De indelingsengine maakt gebruik van een standaard minimum- en maximumaantal werkrolexemplaren om de taakwachtrijen te bewaken. Voor staatloze werkstromen behoudt de orchestration-engine de actiestatussen volledig in het geheugen.

Als u het standaardaanpassingsgedrag wilt wijzigen, geeft u verschillende minimum- en maximumaantal werkrolexemplaren op waarmee de taakwachtrijen worden bewaakt.

Vereisten voor het wijzigen van schalen

In uw Kubernetes-cluster met Azure Arc moet de keda.enabled eigenschap zijn ingesteld trueop uw eerder gemaakte App Service-bundelextensie. Raadpleeg de vereisten op het hoogste niveau voor meer informatie.

Drempelwaarde voor schalen wijzigen

In Logic Apps met Azure Arc activeert de lengte van de taakwachtrij een schaalgebeurtenis en wordt een drempelwaarde ingesteld voor hoe vaak schalen plaatsvindt voor uw logische app. U kunt de lengte van de wachtrij wijzigen, waarvoor de standaardwaarde is ingesteld op 20 taken. Als u minder vaak wilt schalen, verhoogt u de wachtrijlengte. Als u vaker wilt schalen, verlaagt u de lengte van de wachtrij. Voor dit proces is mogelijk enige proefversie en fout vereist.

Als u de lengte van de wachtrij wilt wijzigen, stelt u in het hoofdbestand van het logische app-project host.json de Runtime.ScaleMonitor.KEDA.TargetQueueLength eigenschap in, bijvoorbeeld:

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

Maximale doorvoer wijzigen

In een bestaande logische app-resource kunt u het maximum aantal werkrolexemplaren wijzigen, waarop de standaardwaarde is ingesteld 2. Deze waarde bepaalt de bovengrens voor het aantal werkrolinstanties dat de taakwachtrijen kan bewaken.

Als u dit maximum wilt wijzigen, gebruikt u de Azure CLI (alleen logische app maken) en Azure Portal.

Azure-CLI

Als u een nieuwe logische app wilt maken, voert u de opdracht az logicapp createuit, met de volgende parameters:

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]

Als u het maximumaantal exemplaren wilt configureren, gebruikt u de --settings parameter:

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

Azure Portal

Voeg in de instellingen van uw logische app met één tenant de instellingswaarde toe of bewerk deze door de K8SE_APP_MAX_INSTANCE_COUNT volgende stappen uit te voeren:

  1. Zoek en open uw logische app op basis van één tenant in Azure Portal.

  2. Selecteer Configuratie in het menu van de logische app onder Instellingen.

  3. Voeg in het deelvenster Configuratie onder Toepassingsinstellingen een nieuwe toepassingsinstelling toe of bewerk de bestaande waarde als deze al is toegevoegd.

    1. Selecteer Nieuwe toepassingsinstelling en voeg de K8SE_APP_MAX_INSTANCE_COUNT instelling toe met de gewenste maximumwaarde.

    2. Bewerk de bestaande waarde voor de K8SE_APP_MAX_INSTANCE_COUNT instelling.

  4. Sla de wijzigingen op wanneer u klaar bent.

Minimale doorvoer wijzigen

In een bestaande logische app-resource kunt u het minimum aantal werkrolexemplaren wijzigen, waarvoor de standaardwaarde is ingesteld 1op. Deze waarde bepaalt de ondergrens voor het aantal werkrolinstanties dat de taakwachtrijen kan bewaken. Verhoog deze waarde voor hoge beschikbaarheid of prestaties.

Als u dit minimum wilt wijzigen, gebruikt u de Azure CLI of Azure Portal.

Azure-CLI

Voer voor een bestaande logische app-resource de opdracht uit az logicapp scale, met de volgende parameters:

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

Als u een nieuwe logische app wilt maken, voert u de opdracht az logicapp createuit, met de volgende parameters:

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

Wijzig in de instellingen van uw logische app met één tenant de waarde van de eigenschap Uitschalen door de volgende stappen uit te voeren:

  1. Zoek en open uw logische app op basis van één tenant in Azure Portal.

  2. Selecteer in het menu van de logische app onder Instellingen de optie Uitschalen.

  3. Sleep in het deelvenster Uitschalen de schuifregelaar voor minimale exemplaren naar de gewenste waarde.

  4. Sla de wijzigingen op wanneer u klaar bent.

Problemen oplossen

Probeer de volgende opties voor meer informatie over uw geïmplementeerde logische apps:

App-instellingen en -configuratie openen

Voer de opdracht uit az logicapp config appsettingsmet de volgende parameters om toegang te krijgen tot uw app-instellingen:

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

Als u een app-instelling wilt configureren, voert u de opdracht az logicapp config appsettings setuit, met de volgende parameters. Zorg ervoor dat u de parameter gebruikt met de --settings naam en waarde van uw instelling.

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

Als u een app-instelling wilt verwijderen, voert u de opdracht az logicapp config appsettings deleteuit, met de volgende parameters. Zorg ervoor dat u de --setting-names parameter gebruikt met de naam van de instelling die u wilt verwijderen.

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

Eigenschappen van logische apps weergeven

Als u uw app-gegevens en -eigenschappen wilt weergeven, voert u de opdracht uit az logicapp show, met de volgende parameters:

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

Werkstroomactiviteit bewaken

Volg deze stappen om de activiteit voor een werkstroom in uw logische app weer te geven:

  1. Zoek en open uw geïmplementeerde logische app in Azure Portal.

  2. Selecteer werkstromen in het menu van de logische app en selecteer vervolgens uw werkstroom.

  3. Selecteer Controleren in het werkstroommenu.

Logboeken verzamelen

Als u geregistreerde gegevens over uw logische app wilt ophalen, schakelt u Application Insights in voor uw logische app als deze nog niet is ingeschakeld.

Volgende stappen