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:
- Wat is Logic Apps met Azure Arc?
- Eén tenant versus multitenant in Azure Logic Apps
- Overzicht van Azure Arc
- Overzicht van Azure Kubernetes Service
- Wat is Kubernetes met Azure Arc?
- Aangepaste locaties in Kubernetes met Azure Arc
- App Service, Functions en Logic Apps in Azure Arc (preview)
- Een Kubernetes-cluster met ondersteuning voor Azure Arc configureren voor het uitvoeren van App Service, Functions en Logic Apps (preview)
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 create
moet 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:
Maak een app-registratie met behulp van de
az ad sp create
opdracht.Als u alle details wilt bekijken, voert u de
az ad sp show
opdracht uit.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:
Maak een nieuwe Microsoft Entra-app-registratie met behulp van Azure Portal.
Nadat het maken is voltooid, zoekt u de nieuwe app-registratie in de portal.
Selecteer Overzicht in het registratiemenu en sla de waarden voor de client-id, tenant-id en clientgeheim op.
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.
Als u deze extensie niet hebt, raadpleegt u de installatiehandleiding voor uw besturingssysteem of platform.
Als u niet zeker weet of u de nieuwste versie hebt, volgt u de stappen om uw omgeving en CLI-versie te controleren.
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
Meld u aan bij het Azure-portaal. Controleer of uw abonnement actief is door de volgende opdracht uit te voeren:
az login
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.
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 create
uit 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 create
uit, 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 create
uit, 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 show
uit, 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-zip
uit, 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 start
uit, 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 restart
uit, 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 delete
uit, 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
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')" }
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.
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.
Selecteer onder API-verbindingen een verbinding, in
office365
dit voorbeeld.Selecteer in het menu van de verbinding onder Instellingen de optie Toegangsbeleid>toevoegen.
Zoek en selecteer uw eerder opgeslagen client-id in het zoekvak in het deelvenster Toegangsbeleid toevoegen.
Wanneer u klaar bent, selecteert u Toevoegen.
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:
- Informeer de resourceprovider dat u een logische app in Kubernetes maakt.
- 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,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:
|
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 dotnet
FUNCTIONS_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:
|
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 node
de 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 true
op 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 create
uit, 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:
Zoek en open uw logische app op basis van één tenant in Azure Portal.
Selecteer Configuratie in het menu van de logische app onder Instellingen.
Voeg in het deelvenster Configuratie onder Toepassingsinstellingen een nieuwe toepassingsinstelling toe of bewerk de bestaande waarde als deze al is toegevoegd.
Selecteer Nieuwe toepassingsinstelling en voeg de
K8SE_APP_MAX_INSTANCE_COUNT
instelling toe met de gewenste maximumwaarde.Bewerk de bestaande waarde voor de
K8SE_APP_MAX_INSTANCE_COUNT
instelling.
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 1
op. 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 create
uit, 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:
Zoek en open uw logische app op basis van één tenant in Azure Portal.
Selecteer in het menu van de logische app onder Instellingen de optie Uitschalen.
Sleep in het deelvenster Uitschalen de schuifregelaar voor minimale exemplaren naar de gewenste waarde.
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 appsettings
met 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 set
uit, 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 delete
uit, 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:
Zoek en open uw geïmplementeerde logische app in Azure Portal.
Selecteer werkstromen in het menu van de logische app en selecteer vervolgens uw werkstroom.
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.