|
param name string |
|
param location string = resourceGroup().location |
|
param tags object = {} |
|
|
|
|
|
param applicationInsightsName string = '' |
|
param appServicePlanId string |
|
param keyVaultName string = '' |
|
param managedIdentity bool = !empty(keyVaultName) |
|
param storageAccountName string |
|
|
|
|
|
@allowed([ |
|
'dotnet', 'dotnetcore', 'dotnet-isolated', 'node', 'python', 'java', 'powershell', 'custom' |
|
]) |
|
param runtimeName string |
|
param runtimeNameAndVersion string = '${runtimeName}|${runtimeVersion}' |
|
param runtimeVersion string |
|
|
|
|
|
@allowed([ |
|
'~4', '~3', '~2', '~1' |
|
]) |
|
param extensionVersion string = '~4' |
|
|
|
|
|
param kind string = 'functionapp,linux' |
|
|
|
|
|
param allowedOrigins array = [] |
|
param alwaysOn bool = true |
|
param appCommandLine string = '' |
|
param appSettings object = {} |
|
param clientAffinityEnabled bool = false |
|
param enableOryxBuild bool = contains(kind, 'linux') |
|
param functionAppScaleLimit int = -1 |
|
param linuxFxVersion string = runtimeNameAndVersion |
|
param minimumElasticInstanceCount int = -1 |
|
param numberOfWorkers int = -1 |
|
param scmDoBuildDuringDeployment bool = true |
|
param use32BitWorkerProcess bool = false |
|
|
|
module functions 'appservice.bicep' = { |
|
name: '${name}-functions' |
|
params: { |
|
name: name |
|
location: location |
|
tags: tags |
|
allowedOrigins: allowedOrigins |
|
alwaysOn: alwaysOn |
|
appCommandLine: appCommandLine |
|
applicationInsightsName: applicationInsightsName |
|
appServicePlanId: appServicePlanId |
|
appSettings: union(appSettings, { |
|
AzureWebJobsStorage: 'DefaultEndpointsProtocol=https;AccountName=${storage.name};AccountKey=${storage.listKeys().keys[0].value};EndpointSuffix=${environment().suffixes.storage}' |
|
FUNCTIONS_EXTENSION_VERSION: extensionVersion |
|
FUNCTIONS_WORKER_RUNTIME: runtimeName |
|
}) |
|
clientAffinityEnabled: clientAffinityEnabled |
|
enableOryxBuild: enableOryxBuild |
|
functionAppScaleLimit: functionAppScaleLimit |
|
keyVaultName: keyVaultName |
|
kind: kind |
|
linuxFxVersion: linuxFxVersion |
|
managedIdentity: managedIdentity |
|
minimumElasticInstanceCount: minimumElasticInstanceCount |
|
numberOfWorkers: numberOfWorkers |
|
runtimeName: runtimeName |
|
runtimeVersion: runtimeVersion |
|
runtimeNameAndVersion: runtimeNameAndVersion |
|
scmDoBuildDuringDeployment: scmDoBuildDuringDeployment |
|
use32BitWorkerProcess: use32BitWorkerProcess |
|
} |
|
} |
|
|
|
resource storage 'Microsoft.Storage/storageAccounts@2021-09-01' existing = { |
|
name: storageAccountName |
|
} |
|
|
|
output identityPrincipalId string = managedIdentity ? functions.outputs.identityPrincipalId : '' |
|
output name string = functions.outputs.name |
|
output uri string = functions.outputs.uri |
|
|