首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在用Terraform在Azure上的cosmosdb帐户中创建sqldb时的问题

在用Terraform在Azure上的cosmosdb帐户中创建sqldb时的问题
EN

Stack Overflow用户
提问于 2022-09-15 02:31:02
回答 1查看 102关注 0票数 0

目标:用地形创建cosmosdb帐户和sqldb

我尝试了什么:

代码语言:javascript
复制
resource "azurerm_cosmosdb_account" "cosmosaccount" {
  name                = "cosmosdb"
  location            = var.location
  resource_group_name = var.rg_name  
  offer_type          = var.cosmosdb_offer_type
  kind                = var.cosmosdb_kind
  is_virtual_network_filter_enabled = "true"
  ip_range_filter     = var.ip_range_filter

  capabilities {
    name = "EnableTable"
  }

  enable_automatic_failover = false

  consistency_policy {
    consistency_level       = var.cosmosdb_consistancy_level
    max_interval_in_seconds = 5
    max_staleness_prefix    = 100
  }

  geo_location {
    location          = var.location
    failover_priority = 0
  }

  virtual_network_rule  {
    id                = var.subnet_id
    ignore_missing_vnet_service_endpoint = true
  }
}


resource "azurerm_cosmosdb_sql_database" "comosdbsqldb" {
  name                = "driving"
  resource_group_name = azurerm_cosmosdb_account.cosmosaccount.resource_group_name
  account_name        = azurerm_cosmosdb_account.cosmosaccount.name
  throughput          = 500  
  depends_on = [azurerm_cosmosdb_account.cosmosaccount]  
}


resource "azurerm_cosmosdb_sql_container" "mdhistcontainer" {
  name                  = "metadata_history"
  resource_group_name   = azurerm_cosmosdb_account.cosmosaccount.resource_group_name
  account_name          = azurerm_cosmosdb_account.cosmosaccount.name
  database_name         = azurerm_cosmosdb_sql_database.comosdbsqldb.name
  partition_key_path    = "/definition/id"
  partition_key_version = 1
  throughput            = 500

  indexing_policy {
    indexing_mode = "consistent"

    included_path {
      path = "/*"
    }

    included_path {
      path = "/included/?"
    }

    excluded_path {
      path = "/excluded/?"
    }
  }

  unique_key {
    paths = ["/definition/idlong", "/definition/idshort"]
  }
  depends_on = [azurerm_cosmosdb_sql_database.comosdbsqldb]
}

我面临的问题:

  • 成功创建了cosmosdb帐户,但未能创建sqldb

我正在收到的错误:

代码语言:javascript
复制
Error: checking for presence of Sql Database: (Name "driving" / Database Account Name "cosmosaccount" / 
Resource Group "xxxxxxxxxxxx"): documentdb.SQLResourcesClient#GetSQLDatabase: 
Failure responding to request: StatusCode=405 -- Original Error: autorest/azure: Service returned an error. 
Status=405 Code="MethodNotAllowed" Message="Requests for API sql are not supported for this account.
\r\nActivityId: 2d79ca83-9534-46e8-a7cf-cef1fd76e752, Microsoft.Azure.Documents.Common/2.14.0"
│ 
│   with module.cosmosdb.azurerm_cosmosdb_sql_database.comosdbsqldb,
│   on ../modules/cosmosdb/main.tf line 46, in resource "azurerm_cosmosdb_sql_database" "comosdbsqldb":
│   46: resource "azurerm_cosmosdb_sql_database" "comosdbsqldb"

我也给了DocumentDBContributor角色服务主体,但仍然会出现这个错误。下面是关于语法的文档。我好像是在跟踪那个https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/cosmosdb_sql_database

请建议如何修复此错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-15 03:23:51

我认为您之所以会出现此错误,是因为您正在创建一个Cosmos DB帐户,目标是Table,并试图在该帐户中创建一个具有自定义名称的数据库。

代码语言:javascript
复制
  capabilities {
    name = "EnableTable"
  }

使用表API,您不能创建任何名称的数据库。帐户中只能有一个数据库,并且它的名称是固定的。数据库的名称应该是TablesDB

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73725014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档