201-web-app-postgres-keyvault patch (#179)

* fix example
This commit is contained in:
Dingjia Chen 2023-03-01 23:41:59 -06:00 committed by GitHub
parent 95a5b0cac4
commit 5e48773198
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 126 additions and 111 deletions

View File

@ -1,5 +1,10 @@
resource "azurerm_resource_group" "webAppMySqlRg" { resource "azurerm_resource_group" "web_app_mysql_rg" {
name = "${var.rg}" name = "${random_pet.prefix.id}-rg"
location = "${var.loc}" location = var.loc
tags = "${var.tags}" tags = var.tags
}
resource "random_pet" "prefix" {
prefix = var.prefix
length = 1
} }

View File

@ -1,29 +1,34 @@
resource "azurerm_mysql_server" "webAppBackend" { resource "azurerm_mysql_server" "web_app_backend" {
name = "${var.siteName}pgserver" name = "${replace(random_pet.prefix.id, "-", "")}pgserver"
location = "${azurerm_resource_group.webAppMySqlRg.location}" location = azurerm_resource_group.web_app_mysql_rg.location
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}" resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
tags = "${azurerm_resource_group.webAppMySqlRg.tags}" tags = azurerm_resource_group.web_app_mysql_rg.tags
administrator_login = "${var.administratorLogin}" administrator_login = "${var.prefix}-admin"
administrator_login_password = "${var.administratorLoginPassword}" administrator_login_password = random_password.password.result
version = "${var.mysqlVersion}"
ssl_enforcement = "Disabled" sku_name = var.database_sku_name
sku { storage_mb = var.database_sku_size_MB
name = "${var.databaseSkuName}" version = var.mysql_version
capacity = "${var.databaseDTU}"
tier = "${var.databaseSkuTier}" ssl_enforcement_enabled = false
family = "${var.databaseSkuFamily}" ssl_minimal_tls_version_enforced = "TLSEnforcementDisabled"
}
storage_profile {
storage_mb = "${var.databaseSkuSizeMB}"
}
} }
resource "azurerm_mysql_database" "webAppBackend" { resource "azurerm_mysql_database" "web_app_backend" {
name = "${var.siteName}database" name = "${replace(random_pet.prefix.id, "-", "")}database"
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}" resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
server_name = "${azurerm_mysql_server.webAppBackend.name}" server_name = azurerm_mysql_server.web_app_backend.name
charset = "utf8" charset = "utf8mb4"
collation = "utf8_unicode_ci" collation = "utf8mb4_unicode_ci"
}
resource "random_password" "password" {
length = 20
min_lower = 1
min_upper = 1
min_numeric = 1
min_special = 1
special = false
} }

View File

@ -1,15 +0,0 @@
output "webAppUrl" {
value = "${azurerm_app_service.webAppFrontend.default_site_hostname}"
}
output "databaseName" {
value = "${azurerm_mysql_database.webAppBackend.name}"
}
output "databaseServerName" {
value = "${azurerm_mysql_server.webAppBackend.fqdn}"
}
output "appServicePlanName" {
value = "${azurerm_app_service_plan.webAppFrontend.name}"
}

View File

@ -0,0 +1,24 @@
output "web_app_url" {
value = azurerm_app_service.main.default_site_hostname
}
output "database_name" {
value = azurerm_mysql_database.web_app_backend.name
}
output "database_server_name" {
value = azurerm_mysql_server.web_app_backend.fqdn
}
output "app_service_plan_name" {
value = azurerm_app_service_plan.web_app_frontend.name
}
output "mysql_server_admin_name" {
value = azurerm_mysql_server.web_app_backend.administrator_login
}
output "mysql_server_admin_password" {
sensitive = true
value = azurerm_mysql_server.web_app_backend.administrator_login_password
}

View File

@ -1,3 +1,18 @@
provider "azurerm" { terraform {
version = "~>1.17" required_version = ">= 1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 3.0, < 4.0"
}
random = {
source = "hashicorp/random"
version = ">= 3.0"
}
}
}
provider "azurerm" {
features {}
} }

View File

@ -1,12 +1,8 @@
rg = "mcg623webAppMysql"
loc = "eastus2" loc = "eastus2"
tags = { tags = {
type = "sample" type = "sample"
services = "MySql, WebApp, Azure database" services = "MySql, WebApp, Azure database"
} }
administratorLogin = "markg" service_plan_tier = "Standard"
siteName = "mcgecd69mysql" service_plan_size = "S1"
servicePlanTier = "Standard"
servicePlanSize = "S1"

View File

@ -1,65 +1,50 @@
variable "rg" { variable "prefix" {
description = "Azure resource group for all resources." type = string
} default = "pgkv"
description = "Prefix of the resource name"
variable "siteName" {
description = "Name of azure web app"
} }
variable "tags" { variable "tags" {
type = map(any)
default = {
type = "sample"
services = "MySql, WebApp, Azure database"
}
description = "Azure Tags for all resources." description = "Azure Tags for all resources."
default = {}
} }
variable "database_sku_name" {
variable "administratorLogin" { type = string
description = "Database administrator login name" default = "GP_Gen5_2"
description = "The name of the SKU, follows the tier + family + cores pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`)."
} }
variable "administratorLoginPassword" { variable "database_sku_size_MB" {
description = "Database administrator password" type = number
}
variable "databaseDTU" {
description = "Azure database for MySQL pricing tier"
default = 2
}
variable "databaseSkuName" {
description = "Azure database for MySQL sku name"
default = "GP_Gen4_2"
}
variable "databaseSkuFamily" {
description = "Azure database for MySQL sku family"
default = "Gen4"
}
variable "databaseSkuSizeMB" {
description = "Azure database for MySQL Sku Size"
default = 5120 default = 5120
description = "Azure database for MySQL Sku Size"
} }
variable "databaseSkuTier" { variable "mysql_version" {
description = "Azure database for MySQL pricing tier" type = string
default = "GeneralPurpose" default = "5.7"
}
variable "mysqlVersion" {
description = "MySQL version" description = "MySQL version"
default = "5.6"
} }
variable "loc" { variable "loc" {
type = string
default = "eastus"
description = "Location for all resources." description = "Location for all resources."
default = "eastus2"
} }
variable "servicePlanTier" { variable "service_plan_tier" {
type = string
default = "Standard"
description = "Azure managed application service plan pricing tier" description = "Azure managed application service plan pricing tier"
} }
variable "servicePlanSize" { variable "service_plan_size" {
type = string
default = "S1"
description = "Azure managed application service plan instance size" description = "Azure managed application service plan instance size"
} }

View File

@ -1,25 +1,25 @@
resource "azurerm_app_service_plan" "webAppFrontend" { resource "azurerm_app_service_plan" "web_app_frontend" {
name = "${var.siteName}serviceplan" name = "${replace(random_pet.prefix.id, "-", "")}serviceplan"
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}" resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
location = "${azurerm_resource_group.webAppMySqlRg.location}" location = azurerm_resource_group.web_app_mysql_rg.location
tags = "${azurerm_resource_group.webAppMySqlRg.tags}" tags = azurerm_resource_group.web_app_mysql_rg.tags
sku { sku {
tier = "${var.servicePlanTier}" tier = var.service_plan_tier
size = "${var.servicePlanSize}" size = var.service_plan_size
} }
} }
resource "azurerm_app_service" "webAppFrontend" { resource "azurerm_app_service" "main" {
name = "${var.siteName}" name = "${replace(random_pet.prefix.id, "-", "")}service"
location = "${azurerm_resource_group.webAppMySqlRg.location}" location = azurerm_resource_group.web_app_mysql_rg.location
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}" resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
tags = "${azurerm_resource_group.webAppMySqlRg.tags}" tags = azurerm_resource_group.web_app_mysql_rg.tags
app_service_plan_id = "${azurerm_app_service_plan.webAppFrontend.id}" app_service_plan_id = azurerm_app_service_plan.web_app_frontend.id
connection_string { connection_string {
name = "DefaultConnect" name = "DefaultConnect"
type = "MySql" type = "MySql"
value = "Database=${azurerm_mysql_database.webAppBackend.name};Data Source=${azurerm_mysql_server.webAppBackend.fqdn};User Id=${var.administratorLogin}@${azurerm_mysql_server.webAppBackend.name};Password=${var.administratorLoginPassword}" value = "Database=${azurerm_mysql_database.web_app_backend.name};Data Source=${azurerm_mysql_server.web_app_backend.fqdn};User Id=${random_pet.prefix.id}-admin@${azurerm_mysql_server.web_app_backend.name};Password=${random_password.password.result}"
} }
} }