Azure Logic App Naming Conventions: Consumption vs Standard
Naming Azure Logic Apps with CAF. Consumption workflows are resource-group scoped (1 to 43 characters); Standard logic apps are Microsoft.Web hostnames (globally unique, 2 to 60). Plus Terraform.
Use the CAF prefix
logicfor Logic Apps, for examplelogic-orders-prod-eus-001. Which rules apply depends on the hosting model: a Consumption logic app is a workflow resource, 1 to 43 characters, resource-group scoped. A Standard logic app runs on Microsoft.Web (like a Function App), so its name becomes a globally uniqueazurewebsites.nethostname, 2 to 60 characters.
Logic App naming has a hidden fork that trips people up: there are two hosting models, and they are two completely different Azure resource types with different naming rules. Get the model right and the rules follow.
Two hosting models, two sets of rules
| Consumption | Standard | |
|---|---|---|
| Resource type | Microsoft.Logic/workflows | Microsoft.Web/sites (kind: workflowapp) |
| CAF prefix | logic | logic |
| Length | 1 to 43 | 2 to 60 |
| Characters | Alphanumerics, hyphens, underscores, periods, parentheses | Alphanumerics and hyphens |
| Scope of uniqueness | Resource group | Global (becomes a hostname) |
| Becomes a hostname? | No | Yes: <name>.azurewebsites.net |
A Standard logic app is hosted on the same platform as App Service and Functions, which is why its name is a public DNS hostname and has to be globally unique. A Consumption logic app is a plain workflow resource scoped to its resource group, so its only real constraint is the tight 43-character limit.
The CAF pattern
Both models use the same prefix:
logic-{workload}-{environment}-{region}-{instance}
Examples:
| Scenario | Name |
|---|---|
| Order processing workflow, production | logic-orders-prod-eus-001 |
| Invoice sync, dev | logic-invoicesync-dev-eus-001 |
| Onboarding automation, production | logic-onboarding-prod-eus-001 |
Consumption logic apps
The 43-character limit is the thing to watch, it is tighter than most resources. With a 6-character logic- prefix you have 37 left, so a company prefix plus a long workload can overflow. Drop the region or company before shortening the workload:
logic-contoso-orderprocessing-prod-eus-001 ← 43 chars, at the edge
logic-orderprocessing-prod-001 ← dropped company and region
Characters are liberal (hyphens, underscores, periods, parentheses all allowed), so readability is easy. The name is resource-group scoped, so it only needs to be unique within its resource group.
Standard logic apps
A Standard logic app is a Microsoft.Web/sites resource, so it behaves exactly like a web or function app: the name becomes <name>.azurewebsites.net, must be globally unique, and is 2 to 60 characters with only alphanumerics and hyphens. Check availability before deploying, and treat the name as internet-visible. Like a Function App, it also needs a storage account and an App Service (or Workflow Standard) plan, name those with the usual st and asp prefixes. See the App Service and Function naming guide for the full hostname rules that apply here too.
Related integration resources
A Logic App rarely stands alone. Its companions:
| Resource | CAF prefix | Example |
|---|---|---|
| Integration account | ia | ia-payments-prod-eus-001 |
| API connection | con | con-servicebus-prod-eus-001 |
| Service Bus namespace | sbns | sbns-payments-prod-eus-001 |
The triggers and actions inside a workflow are named within the app, not as Azure resources, so they follow your team’s readability preference rather than CAF.
Naming in Terraform
Consumption:
resource "azurerm_logic_app_workflow" "orders" {
name = "logic-orders-${var.environment}-${var.region}-001"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
}
Standard (hosted like a function app, needs a plan and storage account):
resource "azurerm_logic_app_standard" "orders" {
name = "logic-orders-${var.environment}-${var.region}-001"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
app_service_plan_id = azurerm_service_plan.main.id
storage_account_name = azurerm_storage_account.logic.name
storage_account_access_key = azurerm_storage_account.logic.primary_access_key
}
Common mistakes
Exceeding 43 characters on Consumption. It is one of the tightest limits in Azure. Design for it.
Assuming a Standard logic app name is private. It is a public hostname the moment you deploy. Check availability early.
Not distinguishing the two models. They are different resource types with different rules. Decide Consumption versus Standard before you name anything.
Summary
- Both models use the
logicprefix and the standard CAF pattern - Consumption:
Microsoft.Logic/workflows, 1 to 43 characters, resource-group scoped, liberal characters - Standard:
Microsoft.Web/sites, 2 to 60 characters, globally unique hostname, plus a storage account and plan - Watch the 43-character Consumption limit
Full rules are on the Logic App naming page. AzureNamer generates Logic App names and every companion resource. See the complete CAF guide for the pattern behind the prefix.
Keep reading
Azure API Management Naming Conventions: Service, APIs, and Products
CAF naming for Azure API Management. The service is a globally unique azure-api.net endpoint (1 to 50 chars); APIs, products, backends, and named values inside are function-named. Patterns and examples.
Read →Azure Service Bus Naming Conventions: Namespaces, Queues, and Topics
CAF naming for Azure Service Bus. The namespace is a globally unique servicebus.windows.net endpoint (6 to 50 chars); queues, topics, and subscriptions inside are relaxed. Patterns and examples.
Read →Azure Container Registry Naming: Rules, Limits, and CAF Patterns
Azure Container Registry name requirements: 5 to 50 characters, lowercase alphanumeric only, no hyphens, globally unique. The CAF pattern, examples, and Terraform and Bicep.
Read →Try AzureNamer
Generate CAF compliant names for all 200+ Azure resource types, free, no login required.
Open the Generator →