【发布时间】:2021-11-19 23:06:59
【问题描述】:
我已经使用以下代码在 Azure 中创建了一个 API。
resource "azurerm_api_management_api" "api-foo" {
name = "Example"
resource_group_name = data.azurerm_resource_group.rg.name
api_management_name = data.azurerm_api_management.apim_service.name
revision = "1"
display_name = "example-foo"
path = "apifoo"
protocols = ["https", "http"]
description = "some text here"
import {
content_format = "openapi-link"
content_value = "https://publicapi.azurewebsites.net/swagger/v1/swagger.json"
}
}
也是根级别策略。
resource "azurerm_api_management_api_policy" "api-foo" {
api_name = azurerm_api_management_api.api-foo.name
api_management_name = data.azurerm_api_management.apim_service.name
resource_group_name = data.azurerm_resource_group.rg.name
#operation_id = azurerm_api_management_api_operation.api-foo.operation_id
xml_content = <<XML
<policies>
<inbound>
<set-backend-service base-url="https://publicapi.azurewebsites.net" />
<base />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
XML
}
现在我有了更多带有新端点的 swager 定义,我想将它们添加到同一个 Api 中,但我不知道如何使用 terraform 来实现这一点。也不想删除我已经拥有的那个。如果我用新的 swager 文件替换 content_value,我将删除我已有的文件。
有没有办法做到这一点?另外,创建后如何在输出中获取操作 ID?我希望新操作的 ID 与某些策略相关联,而不是作为根级别。只是操作策略级别(必须为此新策略创建一个新模块)
【问题讨论】:
标签: azure terraform azure-api-management