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 ftpPublishBasicAuthenticationEnabled: Output<Boolean>? = null, val httpsOnly: Output<Boolean>? = null, val identity: Output<StandardIdentityArgs>? = null, val location: Output<String>? = null, val name: Output<String>? = null, val publicNetworkAccess: Output<String>? = null, val resourceGroupName: Output<String>? = null, val scmPublishBasicAuthenticationEnabled: Output<Boolean>? = 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, val vnetContentShareEnabled: Output<Boolean>? = 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: "example",
location: "West Europe",
});
const exampleAccount = new azure.storage.Account("example", {
name: "examplestorageaccount",
resourceGroupName: example.name,
location: example.location,
accountTier: "Standard",
accountReplicationType: "LRS",
});
const exampleServicePlan = new azure.appservice.ServicePlan("example", {
name: "example-service-plan",
location: example.location,
resourceGroupName: example.name,
osType: "Windows",
skuName: "WS1",
});
const exampleStandard = new azure.logicapps.Standard("example", {
name: "example-logic-app",
location: example.location,
resourceGroupName: example.name,
appServicePlanId: exampleAzurermAppServicePlan.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="example",
location="West Europe")
example_account = azure.storage.Account("example",
name="examplestorageaccount",
resource_group_name=example.name,
location=example.location,
account_tier="Standard",
account_replication_type="LRS")
example_service_plan = azure.appservice.ServicePlan("example",
name="example-service-plan",
location=example.location,
resource_group_name=example.name,
os_type="Windows",
sku_name="WS1")
example_standard = azure.logicapps.Standard("example",
name="example-logic-app",
location=example.location,
resource_group_name=example.name,
app_service_plan_id=example_azurerm_app_service_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 = "example",
Location = "West Europe",
});
var exampleAccount = new Azure.Storage.Account("example", new()
{
Name = "examplestorageaccount",
ResourceGroupName = example.Name,
Location = example.Location,
AccountTier = "Standard",
AccountReplicationType = "LRS",
});
var exampleServicePlan = new Azure.AppService.ServicePlan("example", new()
{
Name = "example-service-plan",
Location = example.Location,
ResourceGroupName = example.Name,
OsType = "Windows",
SkuName = "WS1",
});
var exampleStandard = new Azure.LogicApps.Standard("example", new()
{
Name = "example-logic-app",
Location = example.Location,
ResourceGroupName = example.Name,
AppServicePlanId = exampleAzurermAppServicePlan.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/v6/go/azure/appservice"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/logicapps"
"github.com/pulumi/pulumi-azure/sdk/v6/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("example"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
Name: pulumi.String("examplestorageaccount"),
ResourceGroupName: example.Name,
Location: example.Location,
AccountTier: pulumi.String("Standard"),
AccountReplicationType: pulumi.String("LRS"),
})
if err != nil {
return err
}
_, err = appservice.NewServicePlan(ctx, "example", &appservice.ServicePlanArgs{
Name: pulumi.String("example-service-plan"),
Location: example.Location,
ResourceGroupName: example.Name,
OsType: pulumi.String("Windows"),
SkuName: pulumi.String("WS1"),
})
if err != nil {
return err
}
_, err = logicapps.NewStandard(ctx, "example", &logicapps.StandardArgs{
Name: pulumi.String("example-logic-app"),
Location: example.Location,
ResourceGroupName: example.Name,
AppServicePlanId: pulumi.Any(exampleAzurermAppServicePlan.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.ServicePlan;
import com.pulumi.azure.appservice.ServicePlanArgs;
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("example")
.location("West Europe")
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("examplestorageaccount")
.resourceGroupName(example.name())
.location(example.location())
.accountTier("Standard")
.accountReplicationType("LRS")
.build());
var exampleServicePlan = new ServicePlan("exampleServicePlan", ServicePlanArgs.builder()
.name("example-service-plan")
.location(example.location())
.resourceGroupName(example.name())
.osType("Windows")
.skuName("WS1")
.build());
var exampleStandard = new Standard("exampleStandard", StandardArgs.builder()
.name("example-logic-app")
.location(example.location())
.resourceGroupName(example.name())
.appServicePlanId(exampleAzurermAppServicePlan.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: example
location: West Europe
exampleAccount:
type: azure:storage:Account
name: example
properties:
name: examplestorageaccount
resourceGroupName: ${example.name}
location: ${example.location}
accountTier: Standard
accountReplicationType: LRS
exampleServicePlan:
type: azure:appservice:ServicePlan
name: example
properties:
name: example-service-plan
location: ${example.location}
resourceGroupName: ${example.name}
osType: Windows
skuName: WS1
exampleStandard:
type: azure:logicapps:Standard
name: example
properties:
name: example-logic-app
location: ${example.location}
resourceGroupName: ${example.name}
appServicePlanId: ${exampleAzurermAppServicePlan.id}
storageAccountName: ${exampleAccount.name}
storageAccountAccessKey: ${exampleAccount.primaryAccessKey}
appSettings:
FUNCTIONS_WORKER_RUNTIME: node
WEBSITE_NODE_DEFAULT_VERSION: ~18

For Container Mode)

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "example",
location: "West Europe",
});
const exampleAccount = new azure.storage.Account("example", {
name: "examplestorageaccount",
resourceGroupName: example.name,
location: example.location,
accountTier: "Standard",
accountReplicationType: "LRS",
});
const examplePlan = new azure.appservice.Plan("example", {
name: "example-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: "example-logic-app",
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="example",
location="West Europe")
example_account = azure.storage.Account("example",
name="examplestorageaccount",
resource_group_name=example.name,
location=example.location,
account_tier="Standard",
account_replication_type="LRS")
example_plan = azure.appservice.Plan("example",
name="example-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="example-logic-app",
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 = "example",
Location = "West Europe",
});
var exampleAccount = new Azure.Storage.Account("example", new()
{
Name = "examplestorageaccount",
ResourceGroupName = example.Name,
Location = example.Location,
AccountTier = "Standard",
AccountReplicationType = "LRS",
});
var examplePlan = new Azure.AppService.Plan("example", new()
{
Name = "example-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 = "example-logic-app",
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/v6/go/azure/appservice"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/logicapps"
"github.com/pulumi/pulumi-azure/sdk/v6/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("example"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
Name: pulumi.String("examplestorageaccount"),
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("example-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("example-logic-app"),
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("example")
.location("West Europe")
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("examplestorageaccount")
.resourceGroupName(example.name())
.location(example.location())
.accountTier("Standard")
.accountReplicationType("LRS")
.build());
var examplePlan = new Plan("examplePlan", PlanArgs.builder()
.name("example-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("example-logic-app")
.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: example
location: West Europe
exampleAccount:
type: azure:storage:Account
name: example
properties:
name: examplestorageaccount
resourceGroupName: ${example.name}
location: ${example.location}
accountTier: Standard
accountReplicationType: LRS
examplePlan:
type: azure:appservice:Plan
name: example
properties:
name: example-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: example-logic-app
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, ftpPublishBasicAuthenticationEnabled: Output<Boolean>? = null, httpsOnly: Output<Boolean>? = null, identity: Output<StandardIdentityArgs>? = null, location: Output<String>? = null, name: Output<String>? = null, publicNetworkAccess: Output<String>? = null, resourceGroupName: Output<String>? = null, scmPublishBasicAuthenticationEnabled: Output<Boolean>? = 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, vnetContentShareEnabled: Output<Boolean>? = 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 is set to true this 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

A 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

Whether the FTP basic authentication publishing profile is 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 publicNetworkAccess: Output<String>? = null

Whether Public Network Access should be enabled or not. Possible values are Enabled and Disabled. Defaults to Enabled.

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

Whether the default SCM basic authentication publishing profile is enabled. Defaults to true.

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 ~4.

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

Specifies whether allow routing traffic between the Logic App and Storage Account content share through a virtual network. Defaults to false.

Functions

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