Logic Apps Hybrid – den kompletta guiden
När passar Logic Apps Hybrid?
Logic Apps Hybrid är rätt val när ni har data som inte får lämna ert nät men ändå vill utnyttja Azure-ekosystemet (managed connectors, utveckling i VS Code, styrning via Arc).
Arkitektur
Arkitekturen förklaras bäst i två diagram. Det första visar var saker bor: den fysiska topologin och gränsen mellan Azure och ert lokala nät. Det andra visar vad som händer över tid: den faktiska sekvensen från driftsättning till loggning när ett workflow körs.
Topologi: var komponenterna bor
Diagrammet nedan är uppdelat i två zoner med en brandväggslinje emellan.
Överst: Azure-sidan, kontrollplanet som hanterar styrning, secrets, loggning och managed connectors.
Under: ert lokala nät, där själva arbetet händer, inklusive Logic Apps-poddarna, SQL-databasen och SMB-utdelningen.
De två zonerna kopplas ihop av en enda linje: utgående TCP 443 från klustret till Azure. All verksamhetsdata stannar i den nedre zonen.
Diagram 1 — Infrastruktur-topologi. Hela dataplanet (Logic Apps-podar, SQL, SMB) ligger i ert nät. Azure-sidan hanterar konfiguration, observability och managed connectors via :443 utgående.
Runtime-flöde när ett workflow körs
När topologin är på plats kan ni följa vad som händer från att ni trycker “deploy” i VS Code till att workflow:et loggar sitt första resultat. Diagrammet numrerar de tio stegen i ordning.
Steg 1–6 är driftsättning och initiering: Arc tar emot definitionen, Container Apps-tillägget startar en pod-replika, poden monterar artefakt-volymen via SMB CSI-drivrutinen, läser anslutningssträngen från Key Vault och initierar SQL-schemana.
Steg 7–10 är själva körningen: SQL-persistens av körtillstånd och historik, läsning av transformer och scheman från artefakt-volymen, utgående anrop till managed connectors, och podd-loggar som Container Apps-tilläggets logProcessor skickar vidare till Log Analytics.
Notera markeringen längst ner: Log Analytics-arbetsytan måste vara kopplad redan vid installationen av tillägget. Det går inte att lägga till i efterhand.
Diagram 2 — Runtime-flöde. Sekvens från driftsättning till loggning. Initieringsfasen (1–6) förbereder poden, triggerbarriären skiljer init från körning, och körningsfasen (7–10) visar hur workflow-körningar persisteras i SQL, läser artefakter från SMB-volymen, anropar managed connectors och skickar loggar till Log Analytics via Container Apps-tillägget.
Tre saker att ha i minnet:
- Verksamhetsdata stannar on-prem. Workflow-körtillstånd och historik persisteras i er SQL-databas, och artefakter (transformer, scheman, DLL:er) ligger på er SMB-utdelning. Ingen verksamhetsdata lagras i Azure. Poden gör dock utgående anrop till Azure för managed connectors, för att läsa secrets från Key Vault och för att skicka loggar till Log Analytics.
- All kontrollplanstrafik är utgående på TCP 443. Arc-agenten, Container Apps-tillägget och själva poden initierar utgående sessioner från klustret till Azure-endpoints; svaren kommer tillbaka på samma session. Inga inkommande portar öppnas från Azure mot ert nät. Inom ert interna nät behöver poden däremot nätverksväg till SQL (TCP 1433) och SMB (TCP 445). Exponerar ni Envoy-ingressen (publik eller intern LB) tar den emot inkommande HTTP-trafik från sina egna klienter, men inte från Azure.
- Upp till 24 timmars frånkoppling stöds av Microsoft. Workflows som bara använder inbyggda connectors och lokala resurser (SQL, SMB, ingress-trafik) fortsätter köra även om anslutningen till Azure går ner. Workflows som anropar managed connectors, Key Vault eller andra Azure-tjänster misslyckas under frånkoppling. Podd-loggar buffras lokalt och skickas till Log Analytics när anslutningen är tillbaka; körhistoriken ligger redan säkert i er SQL-databas och påverkas inte.
Förberedelser innan ni sätter upp Logic Apps Hybrid
Innan installationssekvensen måste fyra områden vara på plats: Kubernetes-plattform, SQL, SMB-utdelning och Azure-sidan. Bocka av listan innan ni går vidare.
| ✓ | Område | Vad ni behöver |
|---|---|---|
| ☐ | Kubernetes-kluster | AKS i Azure (enklast, kräver ExpressRoute/VPN till on-prem SQL och SMB), eller AKS on Azure Local / Arc-enabled K8s on Windows Server om podden ska köra on-prem. Autoscaler aktiverad, kubectl + helm installerat |
| ☐ | SQL-databas | SQL Server on-prem, Azure SQL Database eller Managed Instance. SQL-auth-konto (managed identity stöds inte för storage provider) |
| ☐ | SMB-share | Windows-filutdelning med unik sökväg per Logic App, AD-konto med läs/skriv-rätt, namnupplösning från klustret |
| ☐ | Azure-prenumeration | Rätt att registrera resource providers |
| ☐ | Key Vault | För SQL connection strings, SMB-creds, certifikat |
| ☐ | Log Analytics-workspace | Skapas innan Container Apps-tillägget installeras (kan inte ändras senare) |
| ☐ | Resource providers | Microsoft.ExtendedLocation, Microsoft.Kubernetes, Microsoft.KubernetesConfiguration, Microsoft.App, Microsoft.OperationalInsights |
Detaljerna per område:
Kubernetes-plattform
Microsoft stöder Logic Apps Hybrid på tre namngivna Arc-plattformar. Valet påverkar var podden fysiskt kör — och därmed hur trafiken till er on-prem SQL och SMB-utdelning ser ut.
- ✅ AKS (Azure Kubernetes Service) — rekommenderas för de flesta. Hanterat kontrollplan, inbyggd autoskalning, snabbast väg till POC och minst underhåll. Viktigt att förstå: klustret och därmed Logic Apps-podden körs i Azure. Varje workflow-anrop som läser eller skriver till on-prem SQL (TCP 1433) eller SMB (TCP 445) går från Azure ut till ert nät. Det kräver en stabil, privat nätverksväg — ExpressRoute eller Site-to-Site VPN — och ni får latens och egress-kostnader per anrop. Verksamhetsdata lagras fortfarande on-prem, men den är inte längre “nära” podden.
- AKS on Azure Local (tidigare Azure Stack HCI 23H2). Klustret körs on-prem på er HCI-hårdvara. Podden sitter i samma datacenter som SQL och SMB, så anropen går över ert interna LAN — ingen korsning av Azure-gränsen för datatrafik. Välj detta om ni redan har HCI-infrastruktur, har regulatoriska krav på att compute stannar on-prem, eller vill undvika latens/egress mot SQL och SMB.
- Arc-enabled Kubernetes on Windows Server. Klustret körs on-prem på Windows Server med Linux-noder (eller stöd för Windows-noder via Arc). Samma on-prem-fördelar som Azure Local men utan HCI-kravet. Välj detta om ni har en Windows-först-drift och vill köra K8s på befintlig hårdvara.
Tumregel:
- Vill ni ha äkta on-prem-drift av hela integrationsplattformen (podd + data)? Välj en av de två Arc-alternativen ovan.
- Är det enbart data-residency ni behöver och ni accepterar ExpressRoute/VPN-beroendet? AKS i Azure är enklast.
Krav oavsett plattform: autoskalning konfigurerad (en POC kan börja med min 1 och max 6 noder och trimmas efter last), kubectl och helm installerade på er driftsättningsmaskin. Aktuell lista över stödda Kubernetes-distributioner finns i Microsofts Limitations-avsnitt — Supported Azure Arc-enabled Kubernetes clusters.
SQL-databas
Använd befintlig SQL. Hybrid stöder fyra alternativ:
| Alternativ | Passar när | Notering |
|---|---|---|
| SQL Server on-prem | Ni har egen licensierad SQL-instans | BizTalks medföljande SQL-runtime-rättigheter gäller endast BizTalks egna databaser — verifiera med ert Microsoft-avtal innan ni återanvänder instansen för Logic Apps |
| Azure SQL Database | Ingen on-prem SQL, OK med molnlagring | Mot Hybrid-filosofin, men stöds |
| Azure SQL Managed Instance | Lift-and-shift SQL Server med VNET | Alternativ för större miljöer |
| SQL Server enabled by Azure Arc | On-prem SQL som projiceras in i Azure för styrning | Ger enhetlig hantering mellan Azure-sidan och on-prem |
SQL-autentisering krävs. Managed identity stöds inte för storage provider. Anslutningssträngen måste innehålla användarnamn och lösenord och förvaras i Key Vault. Detta är ett hårt krav från Microsoft.
SMB-filutdelning (artefakt-lagring)
Artefaktlagringen är platsen där transformer, scheman och DLL:er lever. Logic Apps-podden monterar utdelningen vid start och läser artefakter under körning. Två alternativ:
- Windows-filutdelning on-prem. Vanligast, återanvänder AD-uppgifter
- Azure Files. Microsoft listar detta som ett testalternativ. Passar för POC eller om ni kör AKS i Azure, men går emot Hybrid-filosofin för produktion
Krav: unik sökväg per Logic App (inte per miljö), administratörsrättigheter på Windows-servern för att skapa utdelningen och sätta behörigheter (engångsjobb), ett AD-konto med läs/skriv-rätt som CSI-drivrutinen använder för att montera utdelningen, namnuppslagning av SMB-värden från klustret.
Azure-sidan
- Prenumeration med rätt att registrera resource providers:
Microsoft.ExtendedLocation,Microsoft.Kubernetes,Microsoft.KubernetesConfiguration,Microsoft.App,Microsoft.OperationalInsights - Key Vault för SQL-anslutningssträngar, SMB-uppgifter och eventuella certifikat
- Container Registry (ACR i Azure, eller en privat lokal spegling om ni sitter bakom proxy). Notera att Hybrid inte kan köras fullständigt air-gapped — Arc-agenten kräver utgående TCP 443 mot Azure, och Logic Apps-runtime-imagen pullas från MCR
- Log Analytics-arbetsyta. Måste anges vid installation av Container Apps-tillägget och kan inte läggas till i efterhand (se steg 5)
Resource provider-registrering:
# Sätt rätt prenumerationskontext först
az account set --subscription "<subscription-id-eller-namn>"
# Registrera providers (--wait blockerar tills status = Registered,
# vilket krävs innan Arc-connect och extension-installation i steg 3 och 5)
az provider register --namespace Microsoft.ExtendedLocation --wait
az provider register --namespace Microsoft.Kubernetes --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
az provider register --namespace Microsoft.App --wait
az provider register --namespace Microsoft.OperationalInsights --wait
# Verifiera att alla fem är Registered
for ns in Microsoft.ExtendedLocation Microsoft.Kubernetes Microsoft.KubernetesConfiguration Microsoft.App Microsoft.OperationalInsights; do
echo -n "$ns: "
az provider show --namespace $ns --query registrationState -o tsv
done
Behörigheter: vem behöver vad
Hybrid-installationen kräver rättigheter i fyra separata system. Bocka av behörigheterna innan ni börjar. Halvvägs in i sekvensen är det för sent att öppna en serviceticket.
Azure RBAC (prenumerations- och resursgruppsnivå)
Minsta behörighet för personen som kör installationen:
| Scope | Roll | Varför |
|---|---|---|
| Prenumeration | Contributor på prenumerationsnivå eller kombinationen nedan | Krävs för att registrera resource providers och skapa resursgrupper |
| Prenumeration | Custom role med Microsoft.Resources/providers/register/action + Microsoft.Resources/subscriptions/resourceGroups/write |
Alternativ om Contributor är för brett — det finns ingen smalare inbyggd roll för RP-registrering |
| Resursgrupp | Contributor | Skapa AKS, Key Vault, Log Analytics-arbetsyta, custom location, connected environment |
| Resursgrupp | Azure Kubernetes Service Cluster Admin Role | Hämta kubeconfig via az aks get-credentials --admin |
| AKS-klustret | Azure Arc Kubernetes Cluster Admin | Projicera klustret in i Azure Arc och installera Container Apps-tillägget |
| Custom location | Contributor på custom location-resursen (tilldelas automatiskt till den som kör az customlocation create). Loggar ni in med service principal eller begränsad Entra-användare: kör dessutom az connectedk8s enable-features --features cluster-connect custom-locations --custom-locations-oid <oid> för att aktivera custom locations på klustret |
Driftsätta connected environment och Logic Apps mot platsen |
| Key Vault | Key Vault Administrator (för att skapa och sätta secrets) + Key Vault Secrets User (för Logic App:ens managed identity) | Lagra och läsa anslutningssträngar och SMB-uppgifter |
| Log Analytics | Log Analytics Contributor | Skapa arbetsyta, läsa shared key |
Microsoft Entra ID (tidigare Azure AD)
Hybrid-körningen kan inte använda managed identity för managed API connections (hårt krav från Microsoft). Ni måste därför skapa en app-registrering i Entra vars client ID och client secret används av Logic Apps-runtimen för att autentisera connector-anrop. Samma app-registrering används om ni vill göra zip-deploy från VS Code i stället för SMB-deploy.
| Behörighet | Varför |
|---|---|
| Application Administrator eller Cloud Application Administrator | Skapa app-registrering i Entra-tenanten |
| Owner på den skapade appen (tilldelas automatiskt till skaparen) | Skapa client secret som sparas i Logic App:ens miljövariabler (WORKFLOWAPP_AAD_CLIENTID, WORKFLOWAPP_AAD_OBJECTID, WORKFLOWAPP_AAD_TENANTID, WORKFLOWAPP_AAD_CLIENTSECRET) eller som Container Apps-secret |
Inga Microsoft Graph-behörigheter och ingen tenant-admin-consent behövs — appen används enbart som client credential för Logic Apps-runtimen, inte för att anropa Graph.
Om er Entra-admin är en separat person: lämna över client-id, object-id, tenant-id och client secret innan ni börjar steg 10.
Kubernetes RBAC (inuti klustret)
| Behörighet | Varför |
|---|---|
cluster-admin ClusterRole på AKS |
Installera CSI-drivrutinen, skapa namespace, applicera extension-resurser |
Fullständig åtkomst till kube-system namespace |
SMB CSI-drivrutinen installeras där |
| Behörighet att skapa CRD:er (cluster-scope) | Container Apps-tillägget och Arc-agenten registrerar flera CRD:er för att projicera klustret, containerappar och Logic Apps-revisioner till Azure |
Efter installationen kan ni snäva in dagligdriftsrollerna, men själva installationen kräver full admin.
SQL Server (on-prem, Azure SQL eller Arc-enabled SQL)
| Behörighet | Vem | Varför |
|---|---|---|
dbcreator på server-nivå |
Installationskontot | Skapa den tomma storage-databasen (engångsjobb; kan även ersättas av att en DBA skapar databasen manuellt) |
db_owner på storage-databasen vid första körning |
Logic Apps runtime-kontot (SQL-auth) | Runtimen skapar schema (tabeller, stored procs, index) automatiskt vid första start. Anslutningssträngen lagras i Key Vault |
db_ddladmin + db_datareader + db_datawriter i steady-state (alternativt behålla db_owner) |
Logic Apps runtime-kontot | Körhistorik, tillstånd, triggers. db_ddladmin behövs löpande eftersom runtime-uppgraderingar kan lägga till tabeller |
| Brandväggsregel för klustrets utgående IP (eller Private Endpoint) på TCP 1433 | Nätverksansvarig | Klustret måste nå SQL |
Managed identity är inte ett alternativ här. Microsoft har låst storage provider till SQL-auth.
SMB-share (Windows-filutdelning eller Azure Files)
| Behörighet | Vem | Varför |
|---|---|---|
| Lokal admin på filservern (eller share Owner) | Installationskontot på Windows-servern | Skapa den gemensamma utdelningen samt en unik undermapp per Logic App innan första deployment (MS Learn: samma path får inte återanvändas) |
| Läs/skriv på share-nivå (drift) | AD-servicekonto som Logic Apps-podden använder | Läser transformer, scheman och DLL:er under körning |
| NTFS: Modify på artefaktmappen | Samma servicekonto | Loggar och tillfälliga filer |
| SMB-port 445 öppen från kluster till filserver | Nätverksansvarig | Annars misslyckas mount |
On-prem nätverk och brandvägg
- Utgående TCP 443 från klustret till Azure-endpoints (Arc, ARM, Container Registry, Log Analytics, managed connectors). Se Azure Arc-nätverkskrav för fullständig FQDN-lista.
- TCP 1433 från kluster till SQL Server (om on-prem)
- TCP 445 från kluster till SMB-servern
- DNS-upplösning av både Azure-endpoints och on-prem hostnames från klusternoderna
Sammanfattning. Vem ska ni ha i rummet:
- Azure-admin med Subscription Contributor
- Entra-admin med
Application Administrator(skapar app-registrering för managed-connection auth) - DBA med server-admin på SQL-instansen
- AD/fil-admin som kan skapa servicekonto och sätta share-/NTFS-rättigheter
- Nätverks-/brandväggs-admin som kan öppna 443/1433/445 och DNS
- Kubernetes-operatör med cluster-admin
I mindre organisationer är det samma person i flera roller, men besluten och godkännandena måste ändå finnas på plats innan installationen startar.
📘 Microsoft Learn: Prerequisites for Logic Apps hybrid deployment · 📘 Azure Arc-enabled Kubernetes — network requirements · 📘 Azure built-in roles
Installationssekvens: från tomt kluster till första workflow
Kör stegen i ordning. Varje steg beskrivs med vad som händer, varför, exakt kommando och hur ni verifierar att det gick rätt. Räkna med 2–4 timmar för hela sekvensen första gången, och under en timme när ni har gjort det en gång tidigare.
Klicka på ett steg för att hoppa direkt dit
Guiden är uppbyggd som en sekvens – kör stegen i ordning. Använd knapparna nedan om du redan är igång och vill hoppa till ett specifikt steg.
💡 Så här läser du installationssekvensen: Varje steg nedan är en drop-down. Klicka på rubriken för att expandera steget och se kommandon, förklaringar och hur ni verifierar att det gick rätt. Då kan ni följa guiden i er egen takt och hoppa tillbaka till rätt steg när ni behöver.
-
Steg 1: Skapa Kubernetes-kluster med autoscaler
Vad: Ett AKS-kluster med 1–6 noder som autoskalar baserat på belastning från poddarna.
Varför: Container Apps-tillägget och KEDA kräver ett kluster som kan växa när workflows belastar miljön. 1 nod som POC-minimum och 6 som skyddstak.
Kommando (AKS i Azure):
az group create --name rg-logicapps-hybrid --location swedencentral az aks create \ --resource-group rg-logicapps-hybrid \ --name aks-logicapps \ --enable-cluster-autoscaler \ --node-count 1 \ --min-count 1 \ --max-count 6 \ --node-vm-size Standard_D4s_v5 \ --generate-ssh-keys az aks get-credentials --resource-group rg-logicapps-hybrid --name aks-logicapps --adminTips — produktionssättning: För produktion, höj
--min-counttill minst 2 så att klustret överlever att en nod går ner under patchning eller hårdvarufel.--node-count 1är endast lämpligt för POC.Verifiera:
kubectl get nodes # Expected: 1 node Ready -
Steg 2: Installera SMB CSI-drivrutin
Vad: Ett Helm-chart som låter Kubernetes montera SMB-utdelningar som volymer i poddar.
Varför: Logic Apps-poddarna måste kunna montera er artefaktutdelning. Det är den standardiserade vägen.
Kommando:
helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts helm install csi-driver-smb csi-driver-smb/csi-driver-smb \ --namespace kube-system \ --version v1.18.0 # v1.18.0 är golvnivån som Container Apps on Arc-dokumentationen # kräver (Limitations). Logic Apps Hybrid-sidan visar v1.15.0 i sitt # eget install-exempel, men eftersom Container Apps on Arc faktiskt # driver SMB-mountsen i Hybrid är v1.18.0 den striktare — och rätta — # lägsta nivån. Senare versioner (v1.20.1 var senaste stabila vid # publicering) fungerar; pinna alltid en version i produktion.Verifiera:
kubectl rollout status deployment csi-smb-controller -n kube-system # Expected: deployment "csi-smb-controller" successfully rolled out kubectl get pods -n kube-system -l app=csi-smb-controller # Expected: csi-smb-controller-<hash> 3/3 Running -
Steg 3: Anslut klustret till Azure Arc
Vad: Projicerar ert Kubernetes-kluster in i Azure så att det visas som en Arc-resurs.
Varför: Utan Arc finns ingen kontrollväg mellan Azure och klustret. Arc är en förutsättning för allt som följer.
Kommando:
az extension add --name connectedk8s --upgrade --yes az extension add --name k8s-extension --upgrade --yes az extension add --name customlocation --upgrade --yes az extension add --name containerapp --upgrade --yes az connectedk8s connect \ --resource-group rg-logicapps-hybrid \ --name arc-logicapps \ --location swedencentralVerifiera:
az connectedk8s show --resource-group rg-logicapps-hybrid --name arc-logicapps \ --query connectivityStatus -o tsv # Expected: Connected📘 Connect an existing Kubernetes cluster · 📘 az connectedk8s connect-referens
-
Steg 4: Skapa Log Analytics-arbetsyta ⚠
⚠ Varning. Det här steget går inte att göra om i efterhand. Log Analytics-arbetsytan måste anges när Container Apps-tillägget installeras (steg 5). Missar ni det, eller vill ni byta arbetsyta senare, måste ni avinstallera hela tillägget och installera om, vilket innebär driftstopp för alla workflows.
Vad: En Azure Log Analytics-arbetsyta dit Container Apps-tillägget skickar podd-loggar, autoskalningshändelser och diagnostik från tillägget.
Varför: Hela observabilitetsstacken för Hybrid kräver en utpekad arbetsyta. Arbetsytans ID och nyckel skickas som parametrar vid installationen av tillägget.
Kommando:
az monitor log-analytics workspace create \ --resource-group rg-logicapps-hybrid \ --workspace-name law-logicapps \ --location swedencentral LAW_ID=$(az monitor log-analytics workspace show \ --resource-group rg-logicapps-hybrid \ --workspace-name law-logicapps \ --query customerId -o tsv) LAW_KEY=$(az monitor log-analytics workspace get-shared-keys \ --resource-group rg-logicapps-hybrid \ --workspace-name law-logicapps \ --query primarySharedKey -o tsv) # Container Apps-tillägget förväntar sig base64-kodade värden. # Linux, macOS eller Git Bash/WSL på Windows: LAW_ID_ENC=$(printf '%s' "$LAW_ID" | base64 | tr -d '\n') LAW_KEY_ENC=$(printf '%s' "$LAW_KEY" | base64 | tr -d '\n')I stock PowerShell på Windows finns inte
printf/tr. Använd i stället:$LAW_ID_ENC = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($LAW_ID)) $LAW_KEY_ENC = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($LAW_KEY))Verifiera: Spara
LAW_ID_ENCochLAW_KEY_ENCsäkert. Ni behöver dem i nästa steg. Om ni skickar råa (icke base64-kodade) värden till tillägget startar det, men ingen loggning når Log Analytics. -
Steg 5: Installera Container Apps-tillägget
Vad: Ett Microsoft-tillägg som installerar KEDA-autoskalare, Envoy-ingress, Logic Apps-runtime och functions-servrar i klustret.
Varför: Detta är motorn som faktiskt kör Logic Apps Standard-workflows on-prem.
Kommando (stäm alltid av mot Microsofts aktuella
az k8s-extension create-referens för Container Apps-tillägget, flaggorna uppdateras löpande):az k8s-extension create \ --resource-group rg-logicapps-hybrid \ --name logicapps-ext \ --cluster-type connectedClusters \ --cluster-name arc-logicapps \ --extension-type 'Microsoft.App.Environment' \ --release-train stable \ --auto-upgrade-minor-version true \ --scope cluster \ --release-namespace logicapps \ --configuration-settings \ "Microsoft.CustomLocation.ServiceAccount=default" \ "appsNamespace=logicapps" \ "clusterName=arc-logicapps" \ "keda.enabled=true" \ "keda.logicAppsScaler.enabled=true" \ "keda.logicAppsScaler.replicaCount=1" \ "containerAppController.api.functionsServerEnabled=true" \ "envoy.externalServiceAzureILB=false" \ "functionsProxyApiConfig.enabled=true" \ "envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group=rg-logicapps-hybrid" \ "logProcessor.appLogs.destination=log-analytics" \ --configuration-protected-settings \ "logProcessor.appLogs.logAnalyticsConfig.customerId=$LAW_ID_ENC" \ "logProcessor.appLogs.logAnalyticsConfig.sharedKey=$LAW_KEY_ENC"Om ni kör AKS i Azure: annotationen
envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-groupär obligatorisk för AKS-underlag (Microsoft-krav) och pekar på klustrets nod-RG (typisktMC_rg-logicapps-hybrid_aks-logicapps_swedencentral). Värdet i kommandot ovan är en placeholder. Byt till er faktiska nod-RG. För en intern LB (bara åtkomlig inom VNET:et), sättenvoy.externalServiceAzureILB=trueoch lägg dessutom till annotationen:envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-internal=trueVerifiera:
kubectl get pods -n logicapps # Alla poddar ska vara Running. Med --name logicapps-ext får ni bland annat: # logicapps-ext-k8se-containerapp-controller-* # logicapps-ext-k8se-envoy-* # logicapps-ext-k8se-envoy-controller-* # logicapps-ext-k8se-keda-operator-* # logicapps-ext-k8se-keda-metrics-apiserver-* # logicapps-ext-k8se-event-processor-* # logicapps-ext-k8se-http-scaler-* # logicapps-ext-k8se-log-processor-* (DaemonSet, en per nod) # logicapps-ext-k8se-activator-*, logicapps-ext-k8se-billing-*, logicapps-ext-k8se-mdm-* # dapr-operator-*, dapr-sentry-*, dapr-placement-server-*, dapr-metrics-*Tips — CoreDNS per Kubernetes-distribution: På AKS i Azure konfigurerar tillägget CoreDNS automatiskt (Microsoft dokumenterar det uttryckligen). På AKS on Azure Local kör ni
az containerapp arc setup-core-dns --distro AksAzureLocalefter att tillägget är installerat. CLI:t stöder i dagsläget endastAksAzureLocalsom--distro-värde — andra Arc-distroar (Arc-enabled K8s on Windows Server, upstream Kubernetes, OpenShift) kräver manuell redigering av CoreDNS-ConfigMap:kubectl -n kube-system edit configmap coredns-custom. Utan detta kan inte designer och workflow-callbacks lösa*.k4apps.io-FQDN:er i klustret.📘 Container Apps on Azure Arc · 🐙 Azure/logicapps — scripts/hybrid
-
Steg 6: Skapa custom location
Vad: En Azure-resurs som pekar på ert kluster och tillägget, och som fungerar som driftsättningsmål för connected environments.
Varför: Logic Apps kan inte driftsättas direkt till ett kluster, utan endast till en custom location som känner till klustret.
Kommando:
CLUSTER_ID=$(az connectedk8s show \ --resource-group rg-logicapps-hybrid \ --name arc-logicapps \ --query id -o tsv) EXT_ID=$(az k8s-extension show \ --resource-group rg-logicapps-hybrid \ --cluster-name arc-logicapps \ --cluster-type connectedClusters \ --name logicapps-ext \ --query id -o tsv) az customlocation create \ --resource-group rg-logicapps-hybrid \ --name cl-logicapps \ --host-resource-id $CLUSTER_ID \ --cluster-extension-ids $EXT_ID \ --namespace logicapps \ --location swedencentralVerifiera:
az customlocation show --resource-group rg-logicapps-hybrid --name cl-logicapps \ --query provisioningState -o tsv # Expected: Succeeded -
Steg 7: Skapa connected environment
Vad: En Logic Apps-specifik runtime-miljö på er custom location.
Varför: Workflows driftsätts till en connected environment, inte direkt till klustret.
Kommando:
CL_ID=$(az customlocation show \ --resource-group rg-logicapps-hybrid \ --name cl-logicapps \ --query id -o tsv) az containerapp connected-env create \ --resource-group rg-logicapps-hybrid \ --name cae-logicapps \ --custom-location $CL_ID \ --location swedencentralVerifiera:
az containerapp connected-env show \ --resource-group rg-logicapps-hybrid \ --name cae-logicapps \ --query provisioningState -o tsv # Expected: Succeeded -
Steg 8: Konfigurera SQL + SMB
Vad: Skapa SQL-databas och SMB-utdelningskonfiguration så att Logic Apps-poddarna kan ansluta.
Varför: Detta är dataplanet. Utan SQL finns ingen workflow-state. Utan SMB finns ingen artefaktlagring.
Kommando (SQL, Azure SQL exempel):
az sql server create \ --resource-group rg-logicapps-hybrid \ --name sql-logicapps-hybrid \ --location swedencentral \ --admin-user sqladmin \ --admin-password "<strong-password>" az sql db create \ --resource-group rg-logicapps-hybrid \ --server sql-logicapps-hybrid \ --name logicapps-state \ --edition GeneralPurpose \ --compute-model Serverless \ --family Gen5 \ --capacity 2Logic Apps-runtime skapar
dt,dc,dq-scheman automatiskt vid första start.SMB-utdelning: konfigurera en Windows-filutdelning (eller Azure Files) med:
- Unik sökväg för varje Logic App:
\\fileserver\share\{logicapp-name} - AD-konto med läs- och skrivrättigheter
- Sökväg och uppgifter läggs i Key Vault
Verifiera: Testa SMB-anslutning från klustret:
kubectl run smb-test --rm -i --tty --image=alpine -- sh # Inne i podden: apk add samba-client smbclient //fileserver/share -U "domain\\user" - Unik sökväg för varje Logic App:
-
Steg 9: Sätt upp Key Vault-referenser
Vad: Lagra SQL-anslutningssträng, SMB-uppgifter och certifikat i Azure Key Vault så att workflows kan referera till dem via
@{...}-syntax.Varför: Hemligheter ska aldrig hårdkodas i app-inställningar. Key Vault-referenser ger central rotation och åtkomstkontroll.
Kommando:
az keyvault create \ --resource-group rg-logicapps-hybrid \ --name kv-logicapps-hybrid \ --location swedencentral \ --enable-rbac-authorization true # RBAC-läge är Microsofts nuvarande rekommendation. Har ni redan skapat # ett valv i access policy-läge, migrera med: # az keyvault update --name kv-logicapps-hybrid --enable-rbac-authorization true SQL_CONN="Server=tcp:sql-logicapps-hybrid.database.windows.net,1433;Initial Catalog=logicapps-state;User ID=sqladmin;Password=<strong-password>;Encrypt=True" az keyvault secret set \ --vault-name kv-logicapps-hybrid \ --name SqlConnectionString \ --value "$SQL_CONN" az keyvault secret set \ --vault-name kv-logicapps-hybrid \ --name SmbUsername \ --value "domain\\serviceaccount" az keyvault secret set \ --vault-name kv-logicapps-hybrid \ --name SmbPassword \ --value "<smb-password>" # Ge Entra-app-registreringen (från Behörigheter-avsnittet) läsrätt på secrets. # I Hybrid kan podden inte använda managed identity mot managed connections # eller Key Vault — den autentiserar med app-registreringens client credentials. APP_SP_ID=$(az ad sp show --id <app-client-id> --query id -o tsv) KV_ID=$(az keyvault show --name kv-logicapps-hybrid --query id -o tsv) az role assignment create \ --role "Key Vault Secrets User" \ --assignee-object-id $APP_SP_ID \ --assignee-principal-type ServicePrincipal \ --scope $KV_IDTips — nätverksåtkomst: Om ni har begränsat Key Vaults nätverksregler (public access off, eller IP-filter), måste klustrets utgående IP allowlistas på TCP 443 eller så behöver ni ett Private Endpoint. Annars får runtimen timeout på
@Microsoft.KeyVault(...)-referenser.Verifiera:
az keyvault secret list --vault-name kv-logicapps-hybrid --query "[].name" -o tsv # Expected (ordning kan variera): # SmbPassword # SmbUsername # SqlConnectionString # Kontrollera att app-registreringen har rätt roll: az role assignment list --assignee $APP_SP_ID --scope $KV_ID \ --query "[].roleDefinitionName" -o tsv # Expected: Key Vault Secrets User -
Steg 10: Driftsätt första workflow
Vad: Skapa ett HTTP-triggat exempelworkflow och driftsätt det till er connected environment.
Varför: Verifiera att hela kedjan (Arc, tillägg, SQL, SMB och Key Vault) fungerar från början till slut.
Rekommenderad väg, VS Code:
- Installera VS Code-tillägget Azure Logic Apps (Standard).
- Create New Project → Stateful Workflow. Skapa en enkel HTTP-trigger som returnerar
200 OK. - Kör
Logic Apps: Deploy to Logic Appi kommandopaletten och välj er connected environment (cae-logicapps). I exemplet nedan heter Logic App:enla-hello-hybrid. - Koppla SQL- och SMB-secrets i app-inställningarna som Key Vault-referenser:
@Microsoft.KeyVault(SecretUri=https://kv-logicapps-hybrid.vault.azure.net/secrets/SqlConnectionString/).
Alternativ, Azure Portal: skapa en Logic App (Standard), välj Hybrid som plan och peka mot er connected environment. VS Code är den väg som Microsoft dokumenterar mest detaljerat för Hybrid.
Verifiera:
kubectl get pods -n logicapps | grep la-hello-hybrid # Expected: la-hello-hybrid-* RunningHämta trigger-URL:en från Azure Portal → Logic App → Overview / Workflow URL, eller via VS Code-tillägget. Trigga workflowet med
curl, kontrollera att körningen blir grön i Run history i Azure Portal, och verifiera att tabeller finns i SQL under schemanadt,dcochdq(de exakta tabellnamnen är interna för runtime-versionen och därför inte något ni ska ta beroende av i egen kod). Klart. Ni har en körande Logic Apps Hybrid-installation.
Tre vanliga misstag som kan stjäla veckor från er installation
Tre vanliga fallgropar som återkommer i Hybrid-POC:er. Lär er dem innan ni börjar. Det tar tio minuter att läsa och kan spara flera dagars felsökning.
Verktygstips: Microsofts officiella
troubleshoot.ps1iAzure/logicapps/scripts/hybridsamlar automatiskt in nod-kapacitet, Arc-agentstatus,microsoft-app-environment-k8se-*-poddarnas hälsa, envoy LB-anslutning på port 443, CoreDNS-konfig och workflowapp-deploymenten. Kör den först när något går sönder — den sparar timmar av manuellkubectl describe.
1. Log Analytics kopplas inte in vid installation, måste göras om från grunden
Symtom: Ni installerar Container Apps-tillägget utan logAnalyticsConfig.customerId och sharedKey. Loggar dyker aldrig upp i Azure Monitor. Ni försöker lägga till arbetsytan i efterhand via az k8s-extension update. Det misslyckas tyst. Kommandot returnerar OK, men ingen loggning sker.
Orsak: Loggkonfigurationen sätts i tilläggets init-container, som bara körs vid första installationen. update ändrar parametrarna men kör inte om init-containern.
Lösning: Avinstallera tillägget helt (az k8s-extension delete) och installera om med rätt LAW-parametrar. Workflow-historik i SQL och artefakter på SMB-utdelningen överlever (de ligger externt), men custom location och connected environment måste återskapas och samtliga workflows redriftsättas. Räkna med driftstopp och flera timmars ombyggnad. Det är därför vi betonar detta i steg 4.
Förebygg: Skapa arbetsytan innan ni rör tillägget. Spara LAW_ID och LAW_KEY som miljövariabler. Lägg in dem i ett skript så ni aldrig kör installationen utan dem.
2. SMB-utdelning med fel behörigheter. Poddar startar inte
Symtom: Logic Apps-podden startar, försöker montera SMB-utdelningen och hamnar i CrashLoopBackOff. kubectl describe pod visar “Failed to mount volume: permission denied”.
Orsak: AD-kontot ni använde vid installationen har läsrättigheter men inte ändrarättigheter på utdelningen. Logic Apps behöver kunna skriva temporära filer dit.
Lösning:
# På Windows-filservern:
icacls "D:\logicapps-share" /grant "domain\serviceaccount:(OI)(CI)M" /T
M = modify, (OI)(CI) = objekt och containers, /T = rekursivt.
Glöm inte SMB-sharets egna behörigheter — NTFS Modify hjälper inte om själva utdelningen är exporterad som read-only. Kontrollera både Share permissions och Security på utdelningen.
Förebygg: Testa SMB-anslutningen från en testpodd innan ni gör första driftsättningen (se verifieringen i steg 8).
3. KEDA-autoskalaren är inte konfigurerad. Scale-to-zero fungerar inte
Symtom: Era Logic Apps-poddar går aldrig ner till 0 repliker när de är inaktiva. Runtime-debiteringen (vCPU-sekund och GB-minut) tickar på för varje replika även utan trafik, och poddarna håller nodkapacitet som annars kunde användas av andra workloads.
Orsak: KEDA-autoskalaren installeras av Container Apps-tillägget, men triggerkonfigurationen kommer inte automatiskt. Utan triggers vet KEDA inte vad den ska skala mot.
Lösning: Skala-konfigurationen ligger på den underliggande Container App-resursen (inte i workflow.json). Sätt scale.rules[] på revisionen — antingen via ARM/Bicep, az containerapp update, eller via portalen: Logic App → Scale → Add scale rule → HTTP. YAML-formen på Container App-resursen ser ut så här:
scale:
minReplicas: 0
maxReplicas: 10
rules:
- name: http-rule
http:
metadata:
concurrentRequests: "10"
Förebygg: Bestäm minReplicas utifrån cold-start-tolerans. minReplicas: 0 krävs för verklig scale-to-zero; för produktions-workflows som inte tål första-träff-latensen, höj till 1. Kostnadseffekten för Hybrid är mestadels runtime-debiteringen (vCPU-sekund och GB-minut) — själva noden betalar ni redan för via AKS eller er egen hårdvara.
Verifiera att Logic Apps Hybrid fungerar
Kör dessa fyra verifieringar för att bekräfta att installationen är klar:
1. Alla poddar kör
kubectl get pods -n logicapps
Förväntat: alla poddar i status Running, ingen i Pending/CrashLoopBackOff.
2. SQL-scheman skapade
Anslut till er SQL-instans och kör:
SELECT TABLE_SCHEMA, COUNT(*) AS tables
FROM INFORMATION_SCHEMA.TABLES
GROUP BY TABLE_SCHEMA;
Förväntat: dt, dc, dq-scheman finns, vardera med flera tabeller.
3. Log Analytics tar emot loggar
Kör denna KQL-query i Azure Portal → Log Analytics workspace → Logs:
ContainerAppConsoleLogs_CL
| where ContainerAppName_s startswith "la-"
| take 20
Förväntat: minst en rad per driftsatt Logic App under de senaste 24 timmarna.
4. Exempelworkflow körs från början till slut
Trigga ert exempelworkflow med curl (steg 10). Kontrollera i Azure Portal → Logic App → Run history att körningen blev grön. Den auktoritativa statusen finns i Run history — Microsoft dokumenterar inte de interna tabellnamnen i dt/dc/dq, så ni ska inte skriva egna queries mot dem (schemat kan ändras mellan runtime-versioner). Komplettera med en räkning i SQL för att bekräfta att tabellerna fylls:
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA IN ('dt','dc','dq')
ORDER BY TABLE_SCHEMA, TABLE_NAME;
Förväntat: flera tabeller per schema, och nya rader som tillkommit efter er körning (titta på sys.dm_db_index_usage_stats eller gör en COUNT(*) före och efter).
Om alla fyra är gröna har ni en fungerande Logic Apps Hybrid. Ni kan börja bygga integrationer.
Produktionshärdning för Logic Apps Hybrid: vad ni behöver kontrollera
Innan ni släpper på trafik i miljön, stäm av den här listan. Punkterna är sammanställda från Logic Apps- och Container Apps on Arc-dokumentationen samt Azure Well-Architected Frameworks pelare (Reliability, Security, Operational Excellence) — Microsoft publicerar i dagsläget ingen egen WAF-service-guide för Logic Apps Hybrid, så pelarna är den auktoritativa källan för kvalitetskrav. Ingen punkt är “nice-to-have” i en produktionssättning.
Reliability
| Kontroll | Varför |
|---|---|
| Zonredundant eller georeplikerad state-SQL (inte Serverless GP 2 vCore utan HA) | En enda AZ-förlust tar annars ner hela Hybrid-miljön |
| SMB-utdelning bakom Scale-Out File Server (SOFS) på Windows Failover Cluster, alternativt Azure Files Premium med GRS | En enda filserver blir SPOF. DFS-R är inte en HA-lösning för aktiva skriv-shares — det är replikering och låser inte öppna filer korrekt |
Security
| Kontroll | Varför |
|---|---|
| Private Endpoints för Azure SQL och Key Vault; publik åtkomst avstängd | Anslutningssträngar på publika endpoints bryter mot Hybrids premiss om att data stannar i nätet |
| Key Vault RBAC, soft-delete och purge protection | Skydd mot oavsiktlig radering och lateral åtkomst |
LAW sharedKey lagrad som Key Vault-referens, inte i klartext |
Shared keys ska roteras, och hårdkodade nycklar kan inte roteras |
| Rotationsschema för SQL-admin och SMB-servicekonto | Statiska uppgifter är en audit-miss |
| Arc cluster RBAC och cluster-connect, begränsa vem som kan driftsätta via custom location | Utan RBAC kan vem som helst med åtkomst till resursgruppen skicka kod till klustret |
| IP-restriktioner på workflow-triggers (Access control) | Ett HTTP-triggat workflow är annars öppet mot internet |
Operational Excellence
| Kontroll | Varför |
|---|---|
| Infrastructure-as-code (Bicep/Terraform) för hela 10-stegssekvensen | Imperativa az-kommandon går inte att reproducera mellan miljöer |
Lås tilläggsversionen (auto-upgrade-minor-version=false i produktion) |
Automatiska minor-uppgraderingar kan införa regressioner i er pågående trafik |
| Namespace-hygien: separata namespaces per miljö, ResourceQuotas och LimitRanges | Annars kan ett urspårat workflow slå ut hela klustret |
SHOULD-nivå (rekommenderat)
KEDA-trimning (min/max repliker, HTTP-skalningsregler), retry- och idempotensmönster, blue/green-driftsättning via två connected environments, SQL-dimensionering mot samtidig körvolym, tak för LAW-ingestion (Basic Logs på pratglada tabeller). Se:
- Logic Apps — business continuity & disaster recovery
- Securing Logic Apps
- AKS core concepts — cluster components
- Container Apps on Azure Arc — operations
Nästa steg: från POC till produktion med Logic Apps Hybrid
En körande POC är en början, inte slutet. Innan ni går i produktion:
- Observabilitet. Sätt upp App Insights-integration, definiera KQL-frågor för SLA-mätning och larm på fel
- DR-strategi. SQL-backup (point-in-time restore i minst 7 dagar), SMB-replikering och dokumenterad återställningsprocedur
- Multi-cluster. Separera dev/test/prod och överväg multi-region för kritiska workflows
- CI/CD. Gå från portal-driftsättningar till pipeline-driftsättningar (Azure DevOps, GitHub Actions) med automatiserade tester
- Kostnadsuppföljning. Tagga alla resurser, sätt budgetlarm och följ vCPU- och minnesförbrukning per workflow
Vill ni accelerera er Logic Apps Hybrid-implementation?
Contica är Microsofts specialistpartner inom Azure-integrationer och BizTalk-migrering. Med vår CTO som Azure MVP och direkta kontaktytor mot Microsofts produktteam kan vi hjälpa er att komma rätt från start – och hålla er där.
KOSTNADSFRI RÅDGIVNING
Arkitektur, plattformsval och förutsättningar – innan ni investerar en enda timme i implementation.
SPECIALIST-PAKET
Färdiga paketeringar anpassade efter er miljö och mognadsnivå – från POC till produktionssättning.
MICROSOFT-FINANSIERING
Vi hjälper er undersöka om Microsoft kan finansiera delar av projektet. Normalfallet startar från $15 000.
Vi kan även sammankalla ett möte med Microsofts projektgrupp för er räkning – en möjlighet som kräver rätt partnerrelation att utnyttja.
Resurser
Microsoft Learn
- Set up Logic Apps hybrid deployment — prerequisites
- Create single-tenant Standard workflow on Azure Arc
- Connect Kubernetes to Azure Arc
- Container Apps on Azure Arc overview
- Azure Arc custom locations
- SQL storage for Logic Apps Standard
GitHub
- Azure/logicapps — scripts/hybrid (setup- och troubleshoot-skript)
- kubernetes-csi/csi-driver-smb — SMB CSI-drivrutin
- kedacore/keda — KEDA autoscaler
Vanliga frågor om Logic Apps Hybrid
Behöver vi Azure Stack HCI för Logic Apps Hybrid?
Det beror på var podden måste köras. Om ni kan låta Logic Apps-podden köra i Azure räcker AKS i Azure — SQL och SMB stannar då on-prem (nådda via ExpressRoute/VPN), men själva meddelandebearbetningen går genom Azure. Om ni har regulatoriska eller datasuveränitetskrav som säger att även podden måste köras i ert eget datacenter behöver ni en Arc-ansluten Kubernetes-distribution som körs on-prem — typiskt AKS on Azure Local (tidigare Azure Stack HCI) eller ett annat Arc-stött kluster (OpenShift, vanilj-K8s). Välj alltså först data-path, sedan distro.
Hur länge kan klustret vara frånkopplat från Azure?
Upp till 24 timmar utan dataförlust. Workflows fortsätter köra lokalt, körhistoriken buffras lokalt, och när anslutningen återställs synkroniseras allt upp till Log Analytics och Arc. Längre än 24 timmar riskerar ni att missa kritiska uppdateringar från kontrollplanet.
Vilka portar måste öppnas in till vårt nät?
Inga portar öppnas från internet mot ert nät. Trafiken mot Azures kontrollplan initieras utgående på TCP 443 från klustret, och svaren kommer tillbaka på samma session. Om podden körs on-prem räcker det; om podden körs i Azure (AKS-i-Azure) måste er on-prem-brandvägg däremot tillåta inkommande TCP 1433 (SQL) och TCP 445 (SMB) från Azure-subnätet via ExpressRoute/VPN. Envoy-ingressen (publik eller intern LB) tar dessutom emot inkommande HTTP från sina klienter. Säkerhetsfördelen jämfört med traditionell SaaS-integration är att ingenting exponeras publikt mot internet.
Kan vi använda befintlig on-prem SQL Server?
Ja. Logic Apps Hybrid stöder SQL Server on-prem, Azure SQL Database, Azure SQL Managed Instance och Arc-enabled SQL. Ni behöver bara en databas där Logic Apps-runtime kan skapa schemana dt, dc och dq. Befintlig BizTalk-SQL kan ofta återanvändas (i en separat databas på samma instans).
Stöds managed identity?
Nej, inte för Hybrid. Container Apps på Arc stöder inte managed identities för apparna, och Microsofts Hybrid-dokumentation listar dessutom managed identity-autentisering för connector-operationer som icke-stödd. I praktiken innebär det att både storage provider (SQL-anslutningen) och managed connectors kräver andra autentiseringsmetoder: anslutningssträngar och service principals, förvarade i Key Vault.
Kan vi migrera befintliga BizTalk-workflows direkt?
Nej, BizTalk-orkestreringar måste portas om till Logic Apps workflow-definition, och Logic Apps har heller ingen pipeline-modell — custom pipeline-komponenter (DLL:er) portas därför inte. Däremot lever de rena dataartefakterna vidare: XSD-scheman återanvänds direkt, och XSLT-maps (också de som skapades via BizTalks .btm-mappar, som kompileras till XSLT) kan driftsättas till Logic Apps Hybrid via SMB-utdelningen. Custom .NET-logik från pipelines behöver skrivas om som Logic Apps-actions eller flyttas till Azure Functions. Det gör migrationen enklare än en omskrivning från grunden, men inte en ren “lift-and-shift”.
Vilka Azure-regioner stöds?
Regionstödet byggs ut löpande — verifiera alltid aktuell lista på MS Learn innan ni planerar, eftersom regioner tillkommer utan varsel. Aktuell lista finns i Microsofts Limitations-avsnitt — Supported Azure regions (per april 2026: Central US, East Asia, East US, North Central US, Southeast Asia, Sweden Central, UK South, West Europe, West US). Sweden Central är normalt rätt val för svenska kunder.
Hur mycket kostar det i månaden?
Två kostnadsposter: (1) workflow-körning debiteras per vCPU-sekund och GB-minut för Logic Apps-containrarna, (2) er egen K8s-hårdvara (om on-prem) eller AKS-nodkostnaden (om Azure). Resurstilldelning (vCPU och minne per replika) och antal repliker konfigureras i Logic App-manifestet. Se Microsofts prissida för aktuella taxor. Kontakta oss för en uppskattning utifrån er volym och infrastruktur.
Har ni frågor om uppsättningen eller vill diskutera er BizTalk-migration? Kontakta Contica →
Dela detta inlägg
Fler inlägg att sätta tänderna i


