【问题标题】:Tag an API in Azure API Management with Terraform使用 Terraform 在 Azure API 管理中标记 API
【发布时间】:2021-10-25 21:45:59
【问题描述】:

我正在尝试使用 Terraform 对我的 API 网关进行 IaC。我正常进行了所有配置,例如后端,产品和策略。但是阅读文档,我没有找到任何方法将标签设置为 API,只能创建一个新的。

resource "azurerm_api_management_api" "test" {
  name                  = "test*******"
  display_name          = "Test*******"
  api_management_name   = data.azurerm_api_management.example.name
  resource_group_name   = data.azurerm_api_management.example.resource_group_name
  revision              = "1"
  protocols             = ["https"]
  subscription_required = true
  path                  = "test****"

  subscription_key_parameter_names {
    header = "Ocp-Apim-Subscription-Key"
    query  = "subscription-key"
  }
}

我错过了什么吗? Terraform 是否支持此功能?在这种情况下使用 ARM 模板或 Powershell 更好吗?

【问题讨论】:

    标签: terraform azure-api-management terraform-provider-azure


    【解决方案1】:

    我已经在我的环境中测试过

    根据azurerm_api_management_api | Resources | hashicorp/azurerm | Terraform Registry 文档,没有选项可以使用 Terraform 在 Azure API 管理中为 API 设置标签。

    我们可以使用 terraform 使用以下代码为 Azure API 管理创建 API 标签:

    resource "azurerm_api_management_tag" "example" {
      api_management_id = "resource id of azure-api-management"
      name              = "tag-name"
    }
    

    现在,我们可以使用这个 powershell 命令在 Azure API 管理中为 API 设置上述标记:

    New-AzResource -ResourceGroupName "Resource-Group-Name" -ResourceType Microsoft.ApiManagement/service/apis/tags -ResourceName "api-management-name/api-name/tag-name" -Force 
    

    【讨论】:

      【解决方案2】:

      我们也缺少此功能。

      幸运的是,它最近被添加到version 0.92.0 的 azurerm Terraform 提供程序中:azurerm_api_management_api_tag

      您可以使用新资源将现有标签分配给 API:

      resource "azurerm_api_management_api" "example" {
        name                = "example-api"
        resource_group_name = azurerm_resource_group.example.name
        api_management_name = azurerm_api_management.example.name
        revision            = "1"
      }
      
      resource "azurerm_api_management_tag" "example" {
        api_management_id = data.azurerm_api_management.example.id
        name              = "example-tag"
        display_name      = "Example Tag"
      }
      
      resource "azurerm_api_management_api_tag" "example" {
        api_id = azurerm_api_management_api.example.id
        name   = "example-tag"
      }
      

      【讨论】:

        猜你喜欢
        • 2020-03-24
        • 2019-11-16
        • 2015-05-27
        • 1970-01-01
        • 2022-12-22
        • 1970-01-01
        • 1970-01-01
        • 2018-12-17
        • 2016-01-22
        相关资源
        最近更新 更多