diff --git a/infra/app/db.bicep b/infra/app/db.bicep index a21cc0f..580e38e 100644 --- a/infra/app/db.bicep +++ b/infra/app/db.bicep @@ -10,10 +10,24 @@ param sqlAdminPassword string @secure() param appUserPassword string +param databaseSkuName string +param databaseSkuTier string +param databaseSkuCapacity int + // Because databaseName is optional in main.bicep, we make sure the database name is set here. var defaultDatabaseName = 'Todo' var actualDatabaseName = !empty(databaseName) ? databaseName : defaultDatabaseName +// Default SKU Settings +var defaultDatabaseSkuName = 'Basic' +var actualDatabaseSkuName = !empty(databaseSkuName) ? databaseSkuName : defaultDatabaseSkuName + +var defaultDatabaseSkuTier = 'Basic' +var actualDatabaseSkuTier = !empty(databaseSkuTier) ? databaseSkuTier : defaultDatabaseSkuTier + +var defaultDatabaseSkuCapacity = 5 +var actualDatabaseSkuCapacity = databaseSkuCapacity > 0 ? databaseSkuCapacity : defaultDatabaseSkuCapacity + module sqlServer '../core/database/sqlserver/sqlserver.bicep' = { name: 'sqlserver' params: { @@ -24,6 +38,9 @@ module sqlServer '../core/database/sqlserver/sqlserver.bicep' = { keyVaultName: keyVaultName sqlAdminPassword: sqlAdminPassword appUserPassword: appUserPassword + databaseSkuName: actualDatabaseSkuName + databaseSkuTier: actualDatabaseSkuTier + databaseSkuCapacity: actualDatabaseSkuCapacity } } diff --git a/infra/core/database/sqlserver/sqlserver.bicep b/infra/core/database/sqlserver/sqlserver.bicep index 9d00ada..70f332d 100644 --- a/infra/core/database/sqlserver/sqlserver.bicep +++ b/infra/core/database/sqlserver/sqlserver.bicep @@ -14,6 +14,10 @@ param sqlAdminPassword string @secure() param appUserPassword string +param databaseSkuName string +param databaseSkuTier string +param databaseSkuCapacity int + resource sqlServer 'Microsoft.Sql/servers@2022-05-01-preview' = { name: name location: location @@ -29,6 +33,11 @@ resource sqlServer 'Microsoft.Sql/servers@2022-05-01-preview' = { resource database 'databases' = { name: databaseName location: location + sku: { + name: databaseSkuName + tier: databaseSkuTier + capacity: databaseSkuCapacity + } } resource firewall 'firewallRules' = { diff --git a/infra/main.bicep b/infra/main.bicep index 1d2006f..4c3afad 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -40,6 +40,10 @@ param sqlAdminPassword string @description('Application user password') param appUserPassword string +param databaseSkuName string = '' +param databaseSkuTier string = '' +param databaseSkuCapacity int = -1 + var abbrs = loadJsonContent('./abbreviations.json') var resourceToken = toLower(uniqueString(subscription().id, environmentName, location)) var tags = { 'azd-env-name': environmentName } @@ -103,7 +107,10 @@ module sqlServer './app/db.bicep' = { sqlAdminPassword: sqlAdminPassword appUserPassword: appUserPassword keyVaultName: keyVault.outputs.name - } + databaseSkuName: databaseSkuName + databaseSkuTier: databaseSkuTier + databaseSkuCapacity: databaseSkuCapacity + } } // Create an App Service Plan to group applications under the same payment plan and SKU diff --git a/infra/main.parameters.json b/infra/main.parameters.json index 84929e7..2a563fa 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -19,6 +19,15 @@ }, "useAPIM": { "value": "${USE_APIM=false}" + }, + "databaseSkuName": { + "value": "${DATABASE_SKU_NAME}" + }, + "databaseSkuTier": { + "value": "${DATABASE_SKU_TIER}" + }, + "databaseSkuCapacity": { + "value": "${DATABASE_SKU_CAPACITY}" } } } \ No newline at end of file