我正在尝试使用terraform实现一些api管理策略。我创建了一个api_management和api_management_api,到目前为止没有任何问题,我确实使用xml_content向api添加了一个策略,并且它可以很好地创建base policy..but。如果我想创建多个策略,我会收到一个错误,说明该策略已经存在。
我的地形结构如下:
resource "azurerm_api_management_api" "example" {
api_management_name = azurerm_api_management.example.name
display_name = "Api name ${var.env}"
name = "api-name-${var.env}"
path = "apiName${var.env}"
protocols = ["http"]
resource_group_name = azurerm_resource_group.example.name
revision = "1"
}
resource "azurerm_api_management_api_policy" "base-policy" {
api_management_name = azurerm_api_management.example.name
api_name = azurerm_api_management_api.example.name
resource_group_name = azurerm_resource_group.example.name
xml_content = file("./policy.xml")
}
resource "azurerm_api_management_api_policy" "base-policy-random" {
api_management_name = azurerm_api_management.example.name
api_name = azurerm_api_management_api.example.name
resource_group_name = azurerm_resource_group.example.name
xml_content = file("./policy_2.xml")
}当我应用这个terraform时,我得到以下错误:
A resource with the ID "/subscriptions/ID/resourceGroups/example/providers/Microsoft.ApiManagement/service/example/apis/example/policies/policy" already exists - to be managed via Terraform this resource needs to be imported into the State. Please see the resource documentation for "azurerm_api_management_api_policy" for more information.目前在我的API策略中,我只应用了base策略,我想创建第二个策略,例如名为policy_two,但据我所知,terraform试图创建第二个名为base的策略,这就是它失败的原因。所以我想知道如何指定策略名称?
我希望我已经把我的问题讲得够清楚了,非常感谢你们抽出时间。
发布于 2021-07-02 13:07:15
一个接口只能有一个BasePolicy。
这是在API管理中设计的。
但是您可以为每个operation“operation_id”指定一个策略:
resource "azurerm_api_management_api_operation" "example" {
#...
}
resource "azurerm_api_management_api_operation_policy" "example" {
api_name = azurerm_api_management_api_operation.example.api_name
api_management_name = azurerm_api_management_api_operation.example.api_management_name
resource_group_name = azurerm_api_management_api_operation.example.resource_group_name
operation_id = azurerm_api_management_api_operation.example.operation_id
xml_content = <<XML
<policies>
<inbound>
<find-and-replace from="xyz" to="abc" />
</inbound>
</policies>
XML
}https://stackoverflow.com/questions/68210335
复制相似问题