使用 Terraform 在 Azure API Management 中标记 API
Tag an API in Azure API Management with Terraform
我正在尝试使用 Terraform IaC 我的 API 网关。我正常进行了所有配置,例如后端、产品和策略。但是阅读文档,我没有找到任何方法可以将标签设置为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 更好?
我已经在我的环境中测试过
根据 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
我们也缺少此功能。
幸运的是,它已添加到 version 0.92.0 recently: azurerm_api_management_api_tag
中的 azurerm Terraform 提供程序
您可以使用新资源将现有标签分配给 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"
}
我正在尝试使用 Terraform IaC 我的 API 网关。我正常进行了所有配置,例如后端、产品和策略。但是阅读文档,我没有找到任何方法可以将标签设置为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 更好?
我已经在我的环境中测试过
根据 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
我们也缺少此功能。
幸运的是,它已添加到 version 0.92.0 recently: azurerm_api_management_api_tag
中的 azurerm Terraform 提供程序您可以使用新资源将现有标签分配给 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"
}