LinuxFunctionAppSlot

class LinuxFunctionAppSlot : KotlinCustomResource

Manages a Linux Function App Slot.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleAccount = new azure.storage.Account("example", {
name: "linuxfunctionappsa",
resourceGroupName: example.name,
location: example.location,
accountTier: "Standard",
accountReplicationType: "LRS",
});
const exampleServicePlan = new azure.appservice.ServicePlan("example", {
name: "example-app-service-plan",
resourceGroupName: example.name,
location: example.location,
osType: "Linux",
skuName: "Y1",
});
const exampleLinuxFunctionApp = new azure.appservice.LinuxFunctionApp("example", {
name: "example-linux-function-app",
resourceGroupName: example.name,
location: example.location,
servicePlanId: exampleServicePlan.id,
storageAccountName: exampleAccount.name,
siteConfig: {},
});
const exampleLinuxFunctionAppSlot = new azure.appservice.LinuxFunctionAppSlot("example", {
name: "example-linux-function-app-slot",
functionAppId: exampleLinuxFunctionApp.id,
storageAccountName: exampleAccount.name,
siteConfig: {},
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_account = azure.storage.Account("example",
name="linuxfunctionappsa",
resource_group_name=example.name,
location=example.location,
account_tier="Standard",
account_replication_type="LRS")
example_service_plan = azure.appservice.ServicePlan("example",
name="example-app-service-plan",
resource_group_name=example.name,
location=example.location,
os_type="Linux",
sku_name="Y1")
example_linux_function_app = azure.appservice.LinuxFunctionApp("example",
name="example-linux-function-app",
resource_group_name=example.name,
location=example.location,
service_plan_id=example_service_plan.id,
storage_account_name=example_account.name,
site_config={})
example_linux_function_app_slot = azure.appservice.LinuxFunctionAppSlot("example",
name="example-linux-function-app-slot",
function_app_id=example_linux_function_app.id,
storage_account_name=example_account.name,
site_config={})
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-resources",
Location = "West Europe",
});
var exampleAccount = new Azure.Storage.Account("example", new()
{
Name = "linuxfunctionappsa",
ResourceGroupName = example.Name,
Location = example.Location,
AccountTier = "Standard",
AccountReplicationType = "LRS",
});
var exampleServicePlan = new Azure.AppService.ServicePlan("example", new()
{
Name = "example-app-service-plan",
ResourceGroupName = example.Name,
Location = example.Location,
OsType = "Linux",
SkuName = "Y1",
});
var exampleLinuxFunctionApp = new Azure.AppService.LinuxFunctionApp("example", new()
{
Name = "example-linux-function-app",
ResourceGroupName = example.Name,
Location = example.Location,
ServicePlanId = exampleServicePlan.Id,
StorageAccountName = exampleAccount.Name,
SiteConfig = null,
});
var exampleLinuxFunctionAppSlot = new Azure.AppService.LinuxFunctionAppSlot("example", new()
{
Name = "example-linux-function-app-slot",
FunctionAppId = exampleLinuxFunctionApp.Id,
StorageAccountName = exampleAccount.Name,
SiteConfig = null,
});
});
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/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-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
Name: pulumi.String("linuxfunctionappsa"),
ResourceGroupName: example.Name,
Location: example.Location,
AccountTier: pulumi.String("Standard"),
AccountReplicationType: pulumi.String("LRS"),
})
if err != nil {
return err
}
exampleServicePlan, err := appservice.NewServicePlan(ctx, "example", &appservice.ServicePlanArgs{
Name: pulumi.String("example-app-service-plan"),
ResourceGroupName: example.Name,
Location: example.Location,
OsType: pulumi.String("Linux"),
SkuName: pulumi.String("Y1"),
})
if err != nil {
return err
}
exampleLinuxFunctionApp, err := appservice.NewLinuxFunctionApp(ctx, "example", &appservice.LinuxFunctionAppArgs{
Name: pulumi.String("example-linux-function-app"),
ResourceGroupName: example.Name,
Location: example.Location,
ServicePlanId: exampleServicePlan.ID(),
StorageAccountName: exampleAccount.Name,
SiteConfig: &appservice.LinuxFunctionAppSiteConfigArgs{},
})
if err != nil {
return err
}
_, err = appservice.NewLinuxFunctionAppSlot(ctx, "example", &appservice.LinuxFunctionAppSlotArgs{
Name: pulumi.String("example-linux-function-app-slot"),
FunctionAppId: exampleLinuxFunctionApp.ID(),
StorageAccountName: exampleAccount.Name,
SiteConfig: &appservice.LinuxFunctionAppSlotSiteConfigArgs{},
})
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.appservice.LinuxFunctionApp;
import com.pulumi.azure.appservice.LinuxFunctionAppArgs;
import com.pulumi.azure.appservice.inputs.LinuxFunctionAppSiteConfigArgs;
import com.pulumi.azure.appservice.LinuxFunctionAppSlot;
import com.pulumi.azure.appservice.LinuxFunctionAppSlotArgs;
import com.pulumi.azure.appservice.inputs.LinuxFunctionAppSlotSiteConfigArgs;
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-resources")
.location("West Europe")
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("linuxfunctionappsa")
.resourceGroupName(example.name())
.location(example.location())
.accountTier("Standard")
.accountReplicationType("LRS")
.build());
var exampleServicePlan = new ServicePlan("exampleServicePlan", ServicePlanArgs.builder()
.name("example-app-service-plan")
.resourceGroupName(example.name())
.location(example.location())
.osType("Linux")
.skuName("Y1")
.build());
var exampleLinuxFunctionApp = new LinuxFunctionApp("exampleLinuxFunctionApp", LinuxFunctionAppArgs.builder()
.name("example-linux-function-app")
.resourceGroupName(example.name())
.location(example.location())
.servicePlanId(exampleServicePlan.id())
.storageAccountName(exampleAccount.name())
.siteConfig()
.build());
var exampleLinuxFunctionAppSlot = new LinuxFunctionAppSlot("exampleLinuxFunctionAppSlot", LinuxFunctionAppSlotArgs.builder()
.name("example-linux-function-app-slot")
.functionAppId(exampleLinuxFunctionApp.id())
.storageAccountName(exampleAccount.name())
.siteConfig()
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleAccount:
type: azure:storage:Account
name: example
properties:
name: linuxfunctionappsa
resourceGroupName: ${example.name}
location: ${example.location}
accountTier: Standard
accountReplicationType: LRS
exampleServicePlan:
type: azure:appservice:ServicePlan
name: example
properties:
name: example-app-service-plan
resourceGroupName: ${example.name}
location: ${example.location}
osType: Linux
skuName: Y1
exampleLinuxFunctionApp:
type: azure:appservice:LinuxFunctionApp
name: example
properties:
name: example-linux-function-app
resourceGroupName: ${example.name}
location: ${example.location}
servicePlanId: ${exampleServicePlan.id}
storageAccountName: ${exampleAccount.name}
siteConfig: {}
exampleLinuxFunctionAppSlot:
type: azure:appservice:LinuxFunctionAppSlot
name: example
properties:
name: example-linux-function-app-slot
functionAppId: ${exampleLinuxFunctionApp.id}
storageAccountName: ${exampleAccount.name}
siteConfig: {}

Import

A Linux Function App Slot can be imported using the resource id, e.g.

$ pulumi import azure:appservice/linuxFunctionAppSlot:LinuxFunctionAppSlot example "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Web/sites/site1/slots/slot1"

Properties

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

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

Link copied to clipboard

an auth_settings block as detailed below.

Link copied to clipboard

an auth_settings_v2 block as detailed below.

Link copied to clipboard

a backup block as detailed below.

Link copied to clipboard

Should built in logging be enabled. Configures AzureWebJobsDashboard app setting based on the configured storage setting. Defaults to true.

Link copied to clipboard

Should the Function App Slot use Client Certificates.

Link copied to clipboard

Paths to exclude when using client certificates, separated by ;

Link copied to clipboard

The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are Required, Optional, and OptionalInteractiveUser. Defaults to Optional.

Link copied to clipboard

a connection_string block as detailed below.

Link copied to clipboard

Force disable the content share settings.

Link copied to clipboard

The identifier used by App Service to perform domain ownership verification via DNS TXT record.

Link copied to clipboard

The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans. Defaults to 0.

Link copied to clipboard
val defaultHostname: Output<String>

The default hostname of the Linux Function App Slot.

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

Is the Linux Function App Slot enabled. Defaults to true.

Link copied to clipboard

Are the default FTP Basic Authentication publishing credentials enabled. Defaults to true.

Link copied to clipboard
val functionAppId: Output<String>

The ID of the Linux Function App this Slot is a member of. Changing this forces a new resource to be created.

Link copied to clipboard

The runtime version associated with the Function App Slot. Defaults to ~4.

Link copied to clipboard

The ID of the App Service Environment used by Function App Slot.

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

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

Link copied to clipboard
val id: Output<String>
Link copied to clipboard

An identity block as detailed below.

Link copied to clipboard

The User Assigned Identity ID used for accessing KeyVault secrets. The identity must be assigned to the application in the identity block. For more information see - Access vaults with a user-assigned identity

Link copied to clipboard
val kind: Output<String>

The Kind value for this Linux Function App Slot.

Link copied to clipboard
val name: Output<String>

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

Link copied to clipboard

A comma separated list of outbound IP addresses as a string. For example 52.23.25.3,52.143.43.12.

Link copied to clipboard

A list of outbound IP addresses. For example ["52&#46;23&#46;25&#46;3", "52&#46;143&#46;43&#46;12"]

Link copied to clipboard

A comma separated list of possible outbound IP addresses as a string. For example 52.23.25.3,52.143.43.12,52.143.43.17. This is a superset of outbound_ip_addresses. For example ["52&#46;23&#46;25&#46;3", "52&#46;143&#46;43&#46;12","52&#46;143&#46;43&#46;17"].

Link copied to clipboard

A list of possible outbound IP addresses, not all of which are necessarily in use. This is a superset of outbound_ip_address_list. For example ["52&#46;23&#46;25&#46;3", "52&#46;143&#46;43&#46;12"].

Link copied to clipboard

Should public network access be enabled for the Function App. Defaults to true.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val servicePlanId: Output<String>?

The ID of the Service Plan in which to run this slot. If not specified the same Service Plan as the Linux Function App will be used.

Link copied to clipboard

a site_config block as detailed below.

Link copied to clipboard

A site_credential block as defined below.

Link copied to clipboard

The access key which will be used to access the storage account for the Function App Slot.

Link copied to clipboard

The backend storage account name which will be used by this Function App Slot.

Link copied to clipboard

One or more storage_account blocks as defined below.

Link copied to clipboard

The Key Vault Secret ID, optionally including version, that contains the Connection String to connect to the storage account for this Function App.

Link copied to clipboard

Should the Function App Slot use its Managed Identity to access storage.

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

A mapping of tags which should be assigned to the Linux Function App.

Link copied to clipboard
val urn: Output<String>
Link copied to clipboard

Whether backup and restore operations over the linked virtual network are enabled. Defaults to false.

Link copied to clipboard
Link copied to clipboard

Specifies whether traffic for the image pull should be routed over virtual network. Defaults to false.

Should the default WebDeploy Basic Authentication publishing credentials enabled. Defaults to true.