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:
- Vad är Azure Arc-aktiverade Logic Apps?
- Enskild klientorganisation jämfört med flera klienter i Azure Logic Apps
- Översikt över Azure Arc
- Översikt över Azure Kubernetes Service
- Vad är Azure Arc-aktiverad Kubernetes?
- Anpassade platser i Azure Arc-aktiverade Kubernetes
- App Service, Functions och Logic Apps i Azure Arc (förhandsversion)
- Konfigurera ett Azure Arc-aktiverat Kubernetes-kluster för att köra App Service, Functions och Logic Apps (förhandsversion)
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 create
ska 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:
Skapa en appregistrering med hjälp
az ad sp create
av kommandot .Om du vill granska all information kör du
az ad sp show
kommandot.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:
Skapa en ny Microsoft Entra-appregistrering med hjälp av Azure Portal.
När du har skapat den hittar du den nya appregistreringen i portalen.
På registreringsmenyn väljer du Översikt och sparar klient-ID, klient-ID och klienthemlighetsvärden.
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.
Om du inte har det här tillägget kan du läsa installationsguiden för ditt operativsystem eller din plattform.
Om du inte är säker på att du har den senaste versionen följer du stegen för att kontrollera din miljö och CLI-version.
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
Logga in på Azure-portalen. Kontrollera att din prenumeration är aktiv genom att köra följande kommando:
az login
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.
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 create
med 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 create
med 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 show
med 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-zip
med 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 stop
med 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 restart
med 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 delete
med 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
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')" }
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.
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.
Under API-anslutningar väljer du en anslutning, som finns
office365
i det här exemplet.På anslutningens meny går du till Inställningar och väljer Åtkomstprinciper>Lägg till.
I fönstret Lägg till åtkomstprincip går du till sökrutan och letar upp och väljer ditt tidigare sparade klient-ID.
När du är klar väljer du Lägg till.
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:
- Meddela resursprovidern att du skapar en logikapp i Kubernetes.
- 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 namnet på din 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:
|
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 dotnet
FUNCTIONS_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 namnet på din 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:
|
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 node
standardvä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 namnet på din 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 create
med 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:
I Azure Portal letar du upp och öppnar din logikapp baserad på en klientorganisation.
På logikappmenyn går du till Inställningar och väljer Konfiguration.
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.
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.Redigera det befintliga värdet för inställningen
K8SE_APP_MAX_INSTANCE_COUNT
.
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 scale
med 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 create
med 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:
I Azure Portal letar du upp och öppnar din logikapp baserad på en klientorganisation.
På logikappmenyn går du till Inställningar och väljer Skala ut.
Dra skjutreglaget för minsta instanser till önskat värde i fönstret Skala ut.
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 appsettings
med 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 set
med 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 delete
med 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 show
med 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:
I Azure Portal letar du upp och öppnar den distribuerade logikappen.
På logikappmenyn väljer du Arbetsflöden och sedan ditt arbetsflöde.
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.