使用terraform将多个版本集和每个版本集下的多个API转换为Azure APIM,目前我在正文中看到了一个错误

jk9hmnmh  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(186)

我已经在API资源中使用depends_on版本集,但仍然收到以下错误
错误-未来#等待完成:已超过重试次数:状态代码=400 --原始错误:代码=“ValidationError”消息=“一个或多个字段包含不正确的值:“详细信息=[{“代码”:“ValidationError”,“消息”:“未设置ApiVersionSetId时无法设置版本名称。",“目标”:“ApiVersion

iibxawm4

iibxawm41#

我尝试使用terraform创建APIM,并将版本设置为该apim。每当您尝试创建多个版本的APIM时,azure都会为该特定的apim创建一个版本集。

  • 您需要将该版本集ID提交给APIM。

请参阅:azurerm_api_management_api_version_set | Resources | hashicorp/azurerm | Terraform Registry

resource "azurerm_api_management_api_version_set" "example" {
  name                = "kaexample-apimapi"
  resource_group_name      = data.azurerm_resource_group.example.name
  api_management_name = azurerm_api_management.example.name
  display_name        = "ExampleAPIVersionSet"
  versioning_scheme   = "Segment"
}

resource "azurerm_api_management" "example" {
  name                = "kaexample-apim"
  location            = data.azurerm_resource_group.example.location
  resource_group_name = data.azurerm_resource_group.example.name
  publisher_name      = "My Company"
  publisher_email     = "xxxx@gmail.com"

  sku_name = "Developer_1"
}

resource "azurerm_api_management_api" "example" {
  name                = "kaexample-api"
  resource_group_name = data.azurerm_resource_group.example.name
  api_management_name = azurerm_api_management.example.name
  revision            = "1"
  display_name        = "My Example API"
  path                = "example"
  protocols           = ["https"]
  version             = "v1"
  version_set_id      = azurerm_api_management_api_version_set.example.id

  import {
    content_format = "<>"
    content_value  = "http://xxxxapi.azurewebsites.net/?format=json"
  }
}

如果版本集未更新,请使用具有多个版本的api的terraform导入功能将其导入

第一个月第一个月
参考:Tutorial - Publish versions of your API using Azure API Management | Microsoft Learn

相关问题