StandardArgs

data class StandardArgs(val appServicePlanId: Output<String>? = null, val appSettings: Output<Map<String, String>>? = null, val bundleVersion: Output<String>? = null, val clientAffinityEnabled: Output<Boolean>? = null, val clientCertificateMode: Output<String>? = null, val connectionStrings: Output<List<StandardConnectionStringArgs>>? = null, val enabled: Output<Boolean>? = null, val httpsOnly: Output<Boolean>? = null, val identity: Output<StandardIdentityArgs>? = null, val location: Output<String>? = null, val name: Output<String>? = null, val resourceGroupName: Output<String>? = null, val siteConfig: Output<StandardSiteConfigArgs>? = null, val storageAccountAccessKey: Output<String>? = null, val storageAccountName: Output<String>? = null, val storageAccountShareName: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val useExtensionBundle: Output<Boolean>? = null, val version: Output<String>? = null, val virtualNetworkSubnetId: Output<String>? = null) : ConvertibleToJava<StandardArgs>

Manages a Logic App (Standard / Single Tenant)

Example Usage

With App Service Plan)

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "azure-functions-test-rg",
location: "West Europe",
});
const exampleAccount = new azure.storage.Account("example", {
name: "functionsapptestsa",
resourceGroupName: example.name,
location: example.location,
accountTier: "Standard",
accountReplicationType: "LRS",
});
const examplePlan = new azure.appservice.Plan("example", {
name: "azure-functions-test-service-plan",
location: example.location,
resourceGroupName: example.name,
kind: "elastic",
sku: {
tier: "WorkflowStandard",
size: "WS1",
},
});
const exampleStandard = new azure.logicapps.Standard("example", {
name: "test-azure-functions",
location: example.location,
resourceGroupName: example.name,
appServicePlanId: examplePlan.id,
storageAccountName: exampleAccount.name,
storageAccountAccessKey: exampleAccount.primaryAccessKey,
appSettings: {
FUNCTIONS_WORKER_RUNTIME: "node",
WEBSITE_NODE_DEFAULT_VERSION: "~18",
},
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="azure-functions-test-rg",
location="West Europe")
example_account = azure.storage.Account("example",
name="functionsapptestsa",
resource_group_name=example.name,
location=example.location,
account_tier="Standard",
account_replication_type="LRS")
example_plan = azure.appservice.Plan("example",
name="azure-functions-test-service-plan",
location=example.location,
resource_group_name=example.name,
kind="elastic",
sku={
"tier": "WorkflowStandard",
"size": "WS1",
})
example_standard = azure.logicapps.Standard("example",
name="test-azure-functions",
location=example.location,
resource_group_name=example.name,
app_service_plan_id=example_plan.id,
storage_account_name=example_account.name,
storage_account_access_key=example_account.primary_access_key,
app_settings={
"FUNCTIONS_WORKER_RUNTIME": "node",
"WEBSITE_NODE_DEFAULT_VERSION": "~18",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "azure-functions-test-rg",
Location = "West Europe",
});
var exampleAccount = new Azure.Storage.Account("example", new()
{
Name = "functionsapptestsa",
ResourceGroupName = example.Name,
Location = example.Location,
AccountTier = "Standard",
AccountReplicationType = "LRS",
});
var examplePlan = new Azure.AppService.Plan("example", new()
{
Name = "azure-functions-test-service-plan",
Location = example.Location,
ResourceGroupName = example.Name,
Kind = "elastic",
Sku = new Azure.AppService.Inputs.PlanSkuArgs
{
Tier = "WorkflowStandard",
Size = "WS1",
},
});
var exampleStandard = new Azure.LogicApps.Standard("example", new()
{
Name = "test-azure-functions",
Location = example.Location,
ResourceGroupName = example.Name,
AppServicePlanId = examplePlan.Id,
StorageAccountName = exampleAccount.Name,
StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,
AppSettings =
{
{ "FUNCTIONS_WORKER_RUNTIME", "node" },
{ "WEBSITE_NODE_DEFAULT_VERSION", "~18" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appservice"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/logicapps"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/storage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("azure-functions-test-rg"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
Name: pulumi.String("functionsapptestsa"),
ResourceGroupName: example.Name,
Location: example.Location,
AccountTier: pulumi.String("Standard"),
AccountReplicationType: pulumi.String("LRS"),
})
if err != nil {
return err
}
examplePlan, err := appservice.NewPlan(ctx, "example", &appservice.PlanArgs{
Name: pulumi.String("azure-functions-test-service-plan"),
Location: example.Location,
ResourceGroupName: example.Name,
Kind: pulumi.Any("elastic"),
Sku: &appservice.PlanSkuArgs{
Tier: pulumi.String("WorkflowStandard"),
Size: pulumi.String("WS1"),
},
})
if err != nil {
return err
}
_, err = logicapps.NewStandard(ctx, "example", &logicapps.StandardArgs{
Name: pulumi.String("test-azure-functions"),
Location: example.Location,
ResourceGroupName: example.Name,
AppServicePlanId: examplePlan.ID(),
StorageAccountName: exampleAccount.Name,
StorageAccountAccessKey: exampleAccount.PrimaryAccessKey,
AppSettings: pulumi.StringMap{
"FUNCTIONS_WORKER_RUNTIME": pulumi.String("node"),
"WEBSITE_NODE_DEFAULT_VERSION": pulumi.String("~18"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.storage.Account;
import com.pulumi.azure.storage.AccountArgs;
import com.pulumi.azure.appservice.Plan;
import com.pulumi.azure.appservice.PlanArgs;
import com.pulumi.azure.appservice.inputs.PlanSkuArgs;
import com.pulumi.azure.logicapps.Standard;
import com.pulumi.azure.logicapps.StandardArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("azure-functions-test-rg")
.location("West Europe")
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("functionsapptestsa")
.resourceGroupName(example.name())
.location(example.location())
.accountTier("Standard")
.accountReplicationType("LRS")
.build());
var examplePlan = new Plan("examplePlan", PlanArgs.builder()
.name("azure-functions-test-service-plan")
.location(example.location())
.resourceGroupName(example.name())
.kind("elastic")
.sku(PlanSkuArgs.builder()
.tier("WorkflowStandard")
.size("WS1")
.build())
.build());
var exampleStandard = new Standard("exampleStandard", StandardArgs.builder()
.name("test-azure-functions")
.location(example.location())
.resourceGroupName(example.name())
.appServicePlanId(examplePlan.id())
.storageAccountName(exampleAccount.name())
.storageAccountAccessKey(exampleAccount.primaryAccessKey())
.appSettings(Map.ofEntries(
Map.entry("FUNCTIONS_WORKER_RUNTIME", "node"),
Map.entry("WEBSITE_NODE_DEFAULT_VERSION", "~18")
))
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: azure-functions-test-rg
location: West Europe
exampleAccount:
type: azure:storage:Account
name: example
properties:
name: functionsapptestsa
resourceGroupName: ${example.name}
location: ${example.location}
accountTier: Standard
accountReplicationType: LRS
examplePlan:
type: azure:appservice:Plan
name: example
properties:
name: azure-functions-test-service-plan
location: ${example.location}
resourceGroupName: ${example.name}
kind: elastic
sku:
tier: WorkflowStandard
size: WS1
exampleStandard:
type: azure:logicapps:Standard
name: example
properties:
name: test-azure-functions
location: ${example.location}
resourceGroupName: ${example.name}
appServicePlanId: ${examplePlan.id}
storageAccountName: ${exampleAccount.name}
storageAccountAccessKey: ${exampleAccount.primaryAccessKey}
appSettings:
FUNCTIONS_WORKER_RUNTIME: node
WEBSITE_NODE_DEFAULT_VERSION: ~18

For Container Mode)

Note: You must set azure.appservice.Plan kind to Linux and reserved to true when used with linux_fx_version

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "azure-functions-test-rg",
location: "West Europe",
});
const exampleAccount = new azure.storage.Account("example", {
name: "functionsapptestsa",
resourceGroupName: example.name,
location: example.location,
accountTier: "Standard",
accountReplicationType: "LRS",
});
const examplePlan = new azure.appservice.Plan("example", {
name: "azure-functions-test-service-plan",
location: example.location,
resourceGroupName: example.name,
kind: "Linux",
reserved: true,
sku: {
tier: "WorkflowStandard",
size: "WS1",
},
});
const exampleStandard = new azure.logicapps.Standard("example", {
name: "test-azure-functions",
location: example.location,
resourceGroupName: example.name,
appServicePlanId: examplePlan.id,
storageAccountName: exampleAccount.name,
storageAccountAccessKey: exampleAccount.primaryAccessKey,
siteConfig: {
linuxFxVersion: "DOCKER|mcr.microsoft.com/azure-functions/dotnet:3.0-appservice",
},
appSettings: {
DOCKER_REGISTRY_SERVER_URL: "https://<server-name>.azurecr.io",
DOCKER_REGISTRY_SERVER_USERNAME: "username",
DOCKER_REGISTRY_SERVER_PASSWORD: "password",
},
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="azure-functions-test-rg",
location="West Europe")
example_account = azure.storage.Account("example",
name="functionsapptestsa",
resource_group_name=example.name,
location=example.location,
account_tier="Standard",
account_replication_type="LRS")
example_plan = azure.appservice.Plan("example",
name="azure-functions-test-service-plan",
location=example.location,
resource_group_name=example.name,
kind="Linux",
reserved=True,
sku={
"tier": "WorkflowStandard",
"size": "WS1",
})
example_standard = azure.logicapps.Standard("example",
name="test-azure-functions",
location=example.location,
resource_group_name=example.name,
app_service_plan_id=example_plan.id,
storage_account_name=example_account.name,
storage_account_access_key=example_account.primary_access_key,
site_config={
"linux_fx_version": "DOCKER|mcr.microsoft.com/azure-functions/dotnet:3.0-appservice",
},
app_settings={
"DOCKER_REGISTRY_SERVER_URL": "https://<server-name>.azurecr.io",
"DOCKER_REGISTRY_SERVER_USERNAME": "username",
"DOCKER_REGISTRY_SERVER_PASSWORD": "password",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "azure-functions-test-rg",
Location = "West Europe",
});
var exampleAccount = new Azure.Storage.Account("example", new()
{
Name = "functionsapptestsa",
ResourceGroupName = example.Name,
Location = example.Location,
AccountTier = "Standard",
AccountReplicationType = "LRS",
});
var examplePlan = new Azure.AppService.Plan("example", new()
{
Name = "azure-functions-test-service-plan",
Location = example.Location,
ResourceGroupName = example.Name,
Kind = "Linux",
Reserved = true,
Sku = new Azure.AppService.Inputs.PlanSkuArgs
{
Tier = "WorkflowStandard",
Size = "WS1",
},
});
var exampleStandard = new Azure.LogicApps.Standard("example", new()
{
Name = "test-azure-functions",
Location = example.Location,
ResourceGroupName = example.Name,
AppServicePlanId = examplePlan.Id,
StorageAccountName = exampleAccount.Name,
StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,
SiteConfig = new Azure.LogicApps.Inputs.StandardSiteConfigArgs
{
LinuxFxVersion = "DOCKER|mcr.microsoft.com/azure-functions/dotnet:3.0-appservice",
},
AppSettings =
{
{ "DOCKER_REGISTRY_SERVER_URL", "https://<server-name>.azurecr.io" },
{ "DOCKER_REGISTRY_SERVER_USERNAME", "username" },
{ "DOCKER_REGISTRY_SERVER_PASSWORD", "password" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appservice"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/logicapps"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/storage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("azure-functions-test-rg"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
Name: pulumi.String("functionsapptestsa"),
ResourceGroupName: example.Name,
Location: example.Location,
AccountTier: pulumi.String("Standard"),
AccountReplicationType: pulumi.String("LRS"),
})
if err != nil {
return err
}
examplePlan, err := appservice.NewPlan(ctx, "example", &appservice.PlanArgs{
Name: pulumi.String("azure-functions-test-service-plan"),
Location: example.Location,
ResourceGroupName: example.Name,
Kind: pulumi.Any("Linux"),
Reserved: pulumi.Bool(true),
Sku: &appservice.PlanSkuArgs{
Tier: pulumi.String("WorkflowStandard"),
Size: pulumi.String("WS1"),
},
})
if err != nil {
return err
}
_, err = logicapps.NewStandard(ctx, "example", &logicapps.StandardArgs{
Name: pulumi.String("test-azure-functions"),
Location: example.Location,
ResourceGroupName: example.Name,
AppServicePlanId: examplePlan.ID(),
StorageAccountName: exampleAccount.Name,
StorageAccountAccessKey: exampleAccount.PrimaryAccessKey,
SiteConfig: &logicapps.StandardSiteConfigArgs{
LinuxFxVersion: pulumi.String("DOCKER|mcr.microsoft.com/azure-functions/dotnet:3.0-appservice"),
},
AppSettings: pulumi.StringMap{
"DOCKER_REGISTRY_SERVER_URL": pulumi.String("https://<server-name>.azurecr.io"),
"DOCKER_REGISTRY_SERVER_USERNAME": pulumi.String("username"),
"DOCKER_REGISTRY_SERVER_PASSWORD": pulumi.String("password"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.storage.Account;
import com.pulumi.azure.storage.AccountArgs;
import com.pulumi.azure.appservice.Plan;
import com.pulumi.azure.appservice.PlanArgs;
import com.pulumi.azure.appservice.inputs.PlanSkuArgs;
import com.pulumi.azure.logicapps.Standard;
import com.pulumi.azure.logicapps.StandardArgs;
import com.pulumi.azure.logicapps.inputs.StandardSiteConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("azure-functions-test-rg")
.location("West Europe")
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("functionsapptestsa")
.resourceGroupName(example.name())
.location(example.location())
.accountTier("Standard")
.accountReplicationType("LRS")
.build());
var examplePlan = new Plan("examplePlan", PlanArgs.builder()
.name("azure-functions-test-service-plan")
.location(example.location())
.resourceGroupName(example.name())
.kind("Linux")
.reserved(true)
.sku(PlanSkuArgs.builder()
.tier("WorkflowStandard")
.size("WS1")
.build())
.build());
var exampleStandard = new Standard("exampleStandard", StandardArgs.builder()
.name("test-azure-functions")
.location(example.location())
.resourceGroupName(example.name())
.appServicePlanId(examplePlan.id())
.storageAccountName(exampleAccount.name())
.storageAccountAccessKey(exampleAccount.primaryAccessKey())
.siteConfig(StandardSiteConfigArgs.builder()
.linuxFxVersion("DOCKER|mcr.microsoft.com/azure-functions/dotnet:3.0-appservice")
.build())
.appSettings(Map.ofEntries(
Map.entry("DOCKER_REGISTRY_SERVER_URL", "https://<server-name>.azurecr.io"),
Map.entry("DOCKER_REGISTRY_SERVER_USERNAME", "username"),
Map.entry("DOCKER_REGISTRY_SERVER_PASSWORD", "password")
))
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: azure-functions-test-rg
location: West Europe
exampleAccount:
type: azure:storage:Account
name: example
properties:
name: functionsapptestsa
resourceGroupName: ${example.name}
location: ${example.location}
accountTier: Standard
accountReplicationType: LRS
examplePlan:
type: azure:appservice:Plan
name: example
properties:
name: azure-functions-test-service-plan
location: ${example.location}
resourceGroupName: ${example.name}
kind: Linux
reserved: true
sku:
tier: WorkflowStandard
size: WS1
exampleStandard:
type: azure:logicapps:Standard
name: example
properties:
name: test-azure-functions
location: ${example.location}
resourceGroupName: ${example.name}
appServicePlanId: ${examplePlan.id}
storageAccountName: ${exampleAccount.name}
storageAccountAccessKey: ${exampleAccount.primaryAccessKey}
siteConfig:
linuxFxVersion: DOCKER|mcr.microsoft.com/azure-functions/dotnet:3.0-appservice
appSettings:
DOCKER_REGISTRY_SERVER_URL: https://<server-name>.azurecr.io
DOCKER_REGISTRY_SERVER_USERNAME: username
DOCKER_REGISTRY_SERVER_PASSWORD: password

Import

Logic Apps can be imported using the resource id, e.g.

$ pulumi import azure:logicapps/standard:Standard logicapp1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/sites/logicapp1

Constructors

Link copied to clipboard
constructor(appServicePlanId: Output<String>? = null, appSettings: Output<Map<String, String>>? = null, bundleVersion: Output<String>? = null, clientAffinityEnabled: Output<Boolean>? = null, clientCertificateMode: Output<String>? = null, connectionStrings: Output<List<StandardConnectionStringArgs>>? = null, enabled: Output<Boolean>? = null, httpsOnly: Output<Boolean>? = null, identity: Output<StandardIdentityArgs>? = null, location: Output<String>? = null, name: Output<String>? = null, resourceGroupName: Output<String>? = null, siteConfig: Output<StandardSiteConfigArgs>? = null, storageAccountAccessKey: Output<String>? = null, storageAccountName: Output<String>? = null, storageAccountShareName: Output<String>? = null, tags: Output<Map<String, String>>? = null, useExtensionBundle: Output<Boolean>? = null, version: Output<String>? = null, virtualNetworkSubnetId: Output<String>? = null)

Properties

Link copied to clipboard
val appServicePlanId: Output<String>? = null

The ID of the App Service Plan within which to create this Logic App

Link copied to clipboard
val appSettings: Output<Map<String, String>>? = null

A map of key-value pairs for App Settings and custom values.

Link copied to clipboard
val bundleVersion: Output<String>? = null

If use_extension_bundle then controls the allowed range for bundle versions. Defaults to [1.*, 2.0.0).

Link copied to clipboard
val clientAffinityEnabled: Output<Boolean>? = null

Should the Logic App send session affinity cookies, which route client requests in the same session to the same instance?

Link copied to clipboard
val clientCertificateMode: Output<String>? = null

The mode of the Logic App's client certificates requirement for incoming requests. Possible values are Required and Optional.

Link copied to clipboard

An connection_string block as defined below.

Link copied to clipboard
val enabled: Output<Boolean>? = null

Is the Logic App enabled? Defaults to true.

Link copied to clipboard
val httpsOnly: Output<Boolean>? = null

Can the Logic App only be accessed via HTTPS? Defaults to false.

Link copied to clipboard
val identity: Output<StandardIdentityArgs>? = null

An identity block as defined below.

Link copied to clipboard
val location: Output<String>? = null

Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

Link copied to clipboard
val name: Output<String>? = null

Specifies the name of the Logic App Changing this forces a new resource to be created.

Link copied to clipboard
val resourceGroupName: Output<String>? = null

The name of the resource group in which to create the Logic App. Changing this forces a new resource to be created.

Link copied to clipboard
val siteConfig: Output<StandardSiteConfigArgs>? = null

A site_config object as defined below.

Link copied to clipboard
val storageAccountAccessKey: Output<String>? = null

The access key which will be used to access the backend storage account for the Logic App

Link copied to clipboard
val storageAccountName: Output<String>? = null

The backend storage account name which will be used by this Logic App (e.g. for Stateful workflows data). Changing this forces a new resource to be created.

Link copied to clipboard
val storageAccountShareName: Output<String>? = null
Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A mapping of tags to assign to the resource.

Link copied to clipboard
val useExtensionBundle: Output<Boolean>? = null

Should the logic app use the bundled extension package? If true, then application settings for AzureFunctionsJobHost__extensionBundle__id and AzureFunctionsJobHost__extensionBundle__version will be created. Defaults to true.

Link copied to clipboard
val version: Output<String>? = null

The runtime version associated with the Logic App. Defaults to ~3.

Link copied to clipboard
val virtualNetworkSubnetId: Output<String>? = null

Functions

Link copied to clipboard
open override fun toJava(): StandardArgs