Fix concurrent error in cosmosdb example (#191)
* fix concurrent error in cosmosdb example * change to random_string to reduce the collision rate * fix 101-cosmos-db-free-tier account name too long issue --------- Co-authored-by: zjhe <hezijie@microsoft.com>
This commit is contained in:
parent
c4d4d696a5
commit
2f73fa933f
@ -9,8 +9,21 @@ resource "azurerm_resource_group" "example" {
|
||||
location = var.location
|
||||
}
|
||||
|
||||
resource "random_string" "db_account_name" {
|
||||
count = var.cosmosdb_account_name == null ? 1 : 0
|
||||
|
||||
length = 20
|
||||
upper = false
|
||||
special = false
|
||||
numeric = false
|
||||
}
|
||||
|
||||
locals {
|
||||
cosmosdb_account_name = try(random_string.db_account_name[0].result, var.cosmosdb_account_name)
|
||||
}
|
||||
|
||||
resource "azurerm_cosmosdb_account" "example" {
|
||||
name = var.cosmosdb_account_name
|
||||
name = local.cosmosdb_account_name
|
||||
location = var.cosmosdb_account_location
|
||||
resource_group_name = azurerm_resource_group.example.name
|
||||
offer_type = "Standard"
|
||||
@ -74,7 +87,9 @@ resource "azurerm_cosmosdb_sql_role_definition" "example" {
|
||||
resource_group_name = azurerm_resource_group.example.name
|
||||
account_name = azurerm_cosmosdb_account.example.name
|
||||
type = "CustomRole"
|
||||
assignable_scopes = ["/subscriptions/${data.azurerm_client_config.current.subscription_id}/resourceGroups/${azurerm_resource_group.example.name}/providers/Microsoft.DocumentDB/databaseAccounts/${azurerm_cosmosdb_account.example.name}"]
|
||||
assignable_scopes = [
|
||||
"/subscriptions/${data.azurerm_client_config.current.subscription_id}/resourceGroups/${azurerm_resource_group.example.name}/providers/Microsoft.DocumentDB/databaseAccounts/${azurerm_cosmosdb_account.example.name}"
|
||||
]
|
||||
|
||||
permissions {
|
||||
data_actions = ["Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read"]
|
||||
|
@ -4,4 +4,8 @@ output "cosmosdb_account_id" {
|
||||
|
||||
output "cosmosdb_sql_database_id" {
|
||||
value = azurerm_cosmosdb_sql_database.example.id
|
||||
}
|
||||
|
||||
output "cosmosdb_account_name" {
|
||||
value = azurerm_cosmosdb_account.example.name
|
||||
}
|
@ -12,7 +12,7 @@ variable "location" {
|
||||
|
||||
variable "cosmosdb_account_name" {
|
||||
type = string
|
||||
default = "default-account-name"
|
||||
default = null
|
||||
description = "Cosmos db account name"
|
||||
}
|
||||
|
||||
|
@ -3,8 +3,21 @@ resource "azurerm_resource_group" "example" {
|
||||
location = var.location
|
||||
}
|
||||
|
||||
resource "random_string" "db_account_name" {
|
||||
count = var.cosmosdb_account_name == null ? 1 : 0
|
||||
|
||||
length = 20
|
||||
upper = false
|
||||
special = false
|
||||
numeric = false
|
||||
}
|
||||
|
||||
locals {
|
||||
cosmosdb_account_name = try(random_string.db_account_name[0].result, var.cosmosdb_account_name)
|
||||
}
|
||||
|
||||
resource "azurerm_cosmosdb_account" "example" {
|
||||
name = var.cosmosdb_account_name
|
||||
name = local.cosmosdb_account_name
|
||||
location = var.cosmosdb_account_location
|
||||
resource_group_name = azurerm_resource_group.example.name
|
||||
offer_type = "Standard"
|
||||
|
@ -4,4 +4,8 @@ output "cosmosdb_account_id" {
|
||||
|
||||
output "cosmosdb_sql_database_id" {
|
||||
value = azurerm_cosmosdb_sql_database.example.id
|
||||
}
|
||||
|
||||
output "cosmosdb_account_name" {
|
||||
value = azurerm_cosmosdb_account.example.name
|
||||
}
|
@ -12,7 +12,7 @@ variable "location" {
|
||||
|
||||
variable "cosmosdb_account_name" {
|
||||
type = string
|
||||
default = "default-account-name"
|
||||
default = null
|
||||
description = "Cosmos db account name"
|
||||
}
|
||||
|
||||
|
@ -3,8 +3,21 @@ resource "azurerm_resource_group" "example" {
|
||||
location = var.location
|
||||
}
|
||||
|
||||
resource "random_string" "db_account_name" {
|
||||
count = var.cosmosdb_account_name == null ? 1 : 0
|
||||
|
||||
length = 20
|
||||
upper = false
|
||||
special = false
|
||||
numeric = false
|
||||
}
|
||||
|
||||
locals {
|
||||
cosmosdb_account_name = try(random_string.db_account_name[0].result, var.cosmosdb_account_name)
|
||||
}
|
||||
|
||||
resource "azurerm_cosmosdb_account" "example" {
|
||||
name = var.cosmosdb_account_name
|
||||
name = local.cosmosdb_account_name
|
||||
location = var.cosmosdb_account_location
|
||||
resource_group_name = azurerm_resource_group.example.name
|
||||
offer_type = "Standard"
|
||||
|
@ -4,4 +4,8 @@ output "cosmosdb_account_id" {
|
||||
|
||||
output "cosmosdb_sql_database_id" {
|
||||
value = azurerm_cosmosdb_sql_database.main.id
|
||||
}
|
||||
|
||||
output "cosmosdb_account_name" {
|
||||
value = azurerm_cosmosdb_account.example.name
|
||||
}
|
@ -12,7 +12,7 @@ variable "location" {
|
||||
|
||||
variable "cosmosdb_account_name" {
|
||||
type = string
|
||||
default = "default-cosmosdb-user"
|
||||
default = null
|
||||
description = "Cosmos db account name"
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@ resource "azurerm_resource_group" "example" {
|
||||
}
|
||||
|
||||
resource "azurerm_cosmosdb_account" "example" {
|
||||
name = "${random_pet.prefix.id}-cosmosdb-account"
|
||||
name = random_pet.prefix.id
|
||||
location = var.cosmosdb_account_location
|
||||
resource_group_name = azurerm_resource_group.example.name
|
||||
offer_type = "Standard"
|
||||
|
@ -4,4 +4,8 @@ output "cosmosdb_account_id" {
|
||||
|
||||
output "cosmosdb_sql_database_id" {
|
||||
value = azurerm_cosmosdb_sql_database.main.id
|
||||
}
|
||||
|
||||
output "cosmosdb_account_name" {
|
||||
value = azurerm_cosmosdb_account.example.name
|
||||
}
|
@ -4,4 +4,8 @@ output "cosmosdb_account_id" {
|
||||
|
||||
output "cosmosdb_sql_database_id" {
|
||||
value = azurerm_cosmosdb_sql_database.main.id
|
||||
}
|
||||
|
||||
output "cosmosdb_account_name" {
|
||||
value = azurerm_cosmosdb_account.example.name
|
||||
}
|
@ -4,4 +4,8 @@ output "cosmosdb_account_id" {
|
||||
|
||||
output "cosmosdb_sql_database_id" {
|
||||
value = azurerm_cosmosdb_sql_database.main.id
|
||||
}
|
||||
|
||||
output "cosmosdb_account_name" {
|
||||
value = azurerm_cosmosdb_account.example.name
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user