DEV Community

Cover image for Logic Apps Automation runs on Container Apps: what the portal doesn't tell you
Daniel Jonathan
Daniel Jonathan

Posted on AI-assisted

Logic Apps Automation runs on Container Apps: what the portal doesn't tell you

Logic Apps Automation is in preview. This post explains how an automation app gets created in a managed environment, what that creates underneath, and how its versions and scaling work. I created a project and two apps in UK South to check this against Azure's resources.


The short version

  • You create a project, then add apps to it. Each app becomes its own Azure Container App.
  • Every change to an app's revision creates a new version. The active version takes the traffic.
  • Each app has its own scale settings, so each scales on its own rules. The docs for Container Apps describe this design. I haven't measured it on Automation yet.
  • The runtime is a tagged image on Microsoft Container Registry. You choose the tag in the portal, or point at a custom image.

How you create an app

Microsoft's project quickstart covers creating a project, and the application quickstart covers creating an app from the Apps page.

  1. Create a project. Azure creates a resource of type Microsoft.Logic/automationProjects in the resource group you choose. In my case that was la-auto-rg in UK South.
  2. Create an app in the project. The app is a Microsoft.Logic/automationProjects/applications resource. It takes about 1.5 minutes to go from Provisioning to Succeeded, which matches the docs' "a minute or two".
  3. Add workflows. Adding a workflow to the app changes it, so it creates a new version.

Resource group la-auto-rg containing the la-auto-demo Automation Environment in UK South

The project resource has no plan or networking properties of its own. The docs say a project has "its own compute, networking, security, and governance," but they don't say where that compute is.

The portal and the docs use different names for the same thing. The docs say "project", while the portal's breadcrumb reads Environment > App > Workflow. The Azure portal shows the project as Automation Environment, and its blade lists the apps. The Azure portal also gives it Properties, Locks, Alerts, Metrics and Logs, so you can monitor and lock it like any other Azure resource.

Auto Apps list for la-auto-demo showing hello-world and my2-app, both Ready


Each app becomes a Container App

The app's appResourceId points to a Container App, not to a Standard site on an App Service Plan:

Microsoft.App/containerapps/autoapp-f9e90f8b1cb2      (hello-world)
Microsoft.App/containerapps/autoapp-234077aeb7bd      (my2-app)
  resource group: la-auto-demo-rg-625cf32
  subscription:   30a69ef7… (not the project's subscription)
Enter fullscreen mode Exit fullscreen mode

Each app gets its own Container App, with its own name and managed identity. Both container apps are in the same resource group, la-auto-demo-rg-625cf32, which is in a subscription other than the project's. I read this from the two resource IDs. I can't open that subscription to see what else is in it.

The overview compares an application to a Standard logic app.

Marczak compares the visual designers of Automation and Standard, and finds the UI different but the options mostly the same. His hosting comparison describes Automation as Microsoft-managed hosting capacity, against customer-provisioned capacity for Standard. InfoQ's coverage says each project gets an isolated compute boundary, and presents that as a current feature.


Versions are revisions

Each app's Container App keeps its versions as revisions. A change to a revision's scale rules or image creates a new revision, and the old revision stays in place, so you can roll back by moving traffic (Container Apps scaling docs). Not every setting creates a revision. The revision change types page lists which ones do.

In the app's Configuration tab, the portal hides zero-replica revisions by default. Select Showing all revisions to see them all. hello-world has 14 revisions, and the active one is autoapp-f9e90f8b1cb2--0000013.

hello-world Configuration tab with Showing all revisions selected, listing 14 revisions with the active one at 15:55 and 100% traffic

The first revision has a random suffix, cdkde5s. The later ones are numbered from 0000001, and every one uses the stable04 image.


Each app has its own scale settings

The Configuration tab sets each app's scale limits and timing:

Setting Value
Minimum replicas 0
Maximum replicas 10
Cooldown period 300 seconds
Polling interval 30 seconds

In Container Apps, scale rules are set per revision, so each app's rules apply only to its own revisions. Each app here has its own Container App, so it should scale independently. Microsoft's comparison page says Automation's compute "scales to zero", and these settings are what control that.

my2-app Configuration tab with minimum 0, maximum 10, cooldown 300 seconds, polling 30 seconds, and one active revision at 1/1 replicas

I tested the scaling with 15 parallel requests to each app, one app at a time:

  • hello-world (agent workflow): all 15 returned 200, taking 75 to 102 seconds each. Its replicas went from 2/2 to 9/9, out of a maximum of 10.
  • my2-app (a 9-second workflow): all 15 returned 200 in about 9 seconds each. Its replicas stayed at 2/2.

my2-app Configuration tab with one active revision at 2/2 replicas, read during the hello-world burst

Runtime version

The app's Configuration tab lists the runtime versions. Each one is a tagged image on Microsoft Container Registry under azurelogicapps/otto-base:

Version Image Status
stable04 mcr.microsoft.com/azurelogicapps/otto-base:stable04 Current
1.211.3563.1 mcr.microsoft.com/azurelogicapps/otto-base:1.211.3563.1 Available
1.211.3557.2 mcr.microsoft.com/azurelogicapps/otto-base:1.211.3557.2 Available
1.211.3541.4 mcr.microsoft.com/azurelogicapps/otto-base:1.211.3541.4 Available
Custom image Any full registry/repository:tag reference Available

Runtime version list showing stable04 as current, three numbered versions, and a custom image option

The registry also has stable05, latest and validation, which the portal doesn't list. stable05 is newer than stable04. I haven't tested those three. The portal doesn't check custom images, so confirm the tag exists on MCR first.


A quick check that it runs

I built a small BODMAS agent in the automation designer, with an arithmeticmcp tool on gpt-5-mini. It solved (2 ^ 3) + 10 through the app's HTTP trigger, with HTTP 200 and the answer 18.

Monitoring view of a succeeded BodmasAgent run: trigger 0 ms, Workflow_Agent over 3 iterations on gpt-5-mini, and a Response step returning 200

Most of the time goes to the model, not the tool. The two MCP tool calls took 835 ms and 494 ms. Each of the three iterations took 3.3 to 4.8 seconds. When you measure cold start, measure it apart from model latency.


Analytics: hello-world, last 24 hours

The app's Analytics tab reports these figures for the last 24 hours:

Metric Value
Total runs 44, none in progress
Succeeded 41
Failed 3
Success rate 93.2%
Run latency p50 42.0 s, p95 1 min 31 s, p99 1 min 32 s

hello-world Analytics tab for 24 hours: 44 total runs, 3 failed, 93.2% success rate, and the execution trends chart

The failures show as one spike on the Execution trends chart, at about 12 PM on the chart's time axis. The chart doesn't state its time zone, so I haven't matched the spike to a specific run. The 44 runs include my load tests and agent test runs, so these totals mix test and non-test traffic. The 60-run batch ran on a different app, so it isn't counted here. The summary cards may lag the chart, which shows more activity than the 44 runs suggest.

What the docs don't cover

The docs state that the compute is dedicated and scales to zero. They don't cover:

  • Which Container Apps back each app, and the resource group and subscription they sit in.
  • How long a cold start takes, and how long an idle app takes to scale to zero.
  • Revisions, traffic splitting, and the fact that the portal hides zero-replica revisions.
  • Runtime image names, tags and how to choose one.
  • The managed identities on the project and app.

Top comments (0)