73 أسطر
1.8 KiB
Bicep
73 أسطر
1.8 KiB
Bicep
@description('The location into which your Azure resources should be deployed.')
|
|
param location string = resourceGroup().location
|
|
|
|
@description('Select the type of environment you want to provision. Allowed values are Production and Test.')
|
|
@allowed([
|
|
'Production'
|
|
'Test'
|
|
])
|
|
param environmentType string
|
|
|
|
@description('A unique suffix to add to resource names that need to be globally unique.')
|
|
@maxLength(13)
|
|
param resourceNameSuffix string = uniqueString(resourceGroup().id)
|
|
|
|
// Define the names for resources.
|
|
var appServiceAppName = 'toy-website-${resourceNameSuffix}'
|
|
var appServicePlanName = 'toy-website2'
|
|
var storageAccountName = 'mystorage${resourceNameSuffix}'
|
|
|
|
// Define the SKUs for each component based on the environment type.
|
|
var environmentConfigurationMap = {
|
|
Production: {
|
|
appServicePlan: {
|
|
sku: {
|
|
name: 'S1'
|
|
capacity: 1
|
|
}
|
|
}
|
|
storageAccount: {
|
|
sku: {
|
|
name: 'Standard_LRS'
|
|
}
|
|
}
|
|
}
|
|
Test: {
|
|
appServicePlan: {
|
|
sku: {
|
|
name: 'B1'
|
|
}
|
|
}
|
|
storageAccount: {
|
|
sku: {
|
|
name: 'Standard_GRS'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
resource appServicePlan 'Microsoft.Web/serverfarms@2021-01-15' = {
|
|
name: appServicePlanName
|
|
location: location
|
|
sku: environmentConfigurationMap[environmentType].appServicePlan.sku
|
|
}
|
|
|
|
resource appServiceApp 'Microsoft.Web/sites@2021-01-15' = {
|
|
name: appServiceAppName
|
|
location: location
|
|
properties: {
|
|
serverFarmId: appServicePlan.id
|
|
httpsOnly: true
|
|
}
|
|
}
|
|
|
|
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
|
|
name: storageAccountName
|
|
location: location
|
|
kind: 'StorageV2'
|
|
sku: environmentConfigurationMap[environmentType].storageAccount.sku
|
|
}
|
|
|
|
output appServiceAppName string = appServiceApp.name
|
|
output appServiceAppHostName string = appServiceApp.properties.defaultHostName
|