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:
lonegunmanb 2023-03-15 08:49:16 +08:00 committed by GitHub
parent c4d4d696a5
commit 2f73fa933f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 73 additions and 8 deletions

View File

@ -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"]

View File

@ -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
}

View File

@ -12,7 +12,7 @@ variable "location" {
variable "cosmosdb_account_name" {
type = string
default = "default-account-name"
default = null
description = "Cosmos db account name"
}

View File

@ -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"

View File

@ -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
}

View File

@ -12,7 +12,7 @@ variable "location" {
variable "cosmosdb_account_name" {
type = string
default = "default-account-name"
default = null
description = "Cosmos db account name"
}

View File

@ -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"

View File

@ -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
}

View File

@ -12,7 +12,7 @@ variable "location" {
variable "cosmosdb_account_name" {
type = string
default = "default-cosmosdb-user"
default = null
description = "Cosmos db account name"
}

View File

@ -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"

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}