我计划在 terraform 的帮助下使用 azurerm_api_management。 https://www.terraform.io/docs/providers/azurerm/r/api_management.html
- 无法找到将其与我的后端服务的 vnet 和子网集成的参考。
- 我们如何向 azure api manager 提供我们自己的自定义域名,以便通过此 URL 访问这些 REST API,例如 api.dev.mycompany.com
我计划在 terraform 的帮助下使用 azurerm_api_management。 https://www.terraform.io/docs/providers/azurerm/r/api_management.html
要使用 Terraform 为 Api 管理拥有自己的域名(自定义域),我使用以下脚本为开发人员门户和代理(api)拥有自定义域名。您也可以为 Management 和 SCM 使用自己的名称。
此 scipt 要求您有一个 pfx(证书),letsencrypt.pfx
在与 Terraform 脚本相同的目录中命名。
resource "azurerm_api_management" "mngmnt" {
name = "ApiManagementTest"
location = "northeurope"
resource_group_name = "ApiManagement--rg"
publisher_name = "Api pubisher"
publisher_email = "contact@publisher.com"
hostname_configuration {
portal = [{
host_name = "api-portal.customdomain.com"
certificate = "${base64encode(file("letsencrypt.pfx"))}"
certificate_password = "topSecretPwd123"
}]
proxy = [{
host_name = "api.customdomain.com"
certificate = "${base64encode(file("letsencrypt.pfx"))}"
certificate_password = "topSecretPwd123"
}]
}
sku {
name = "Developer"
capacity = "1"
}
}
要让自定义域工作,您还必须记住将公共 DNS 中的 CNAME 记录添加到以下内容:
api-portal.customdomain.com -> [您的 Api 管理名称].portal.azure-api.net api.customdomain.com -> [您的 Api 管理名称].azure-api.net
使用我们脚本中的名称的示例,它将是:
api-portal.customdomain.com -> ApiManagementTest.portal.azure-api.net
api.customdomain.com -> ApiManagementTest.azure-api.net
要获得自定义主机名支持,请参阅此处https://www.terraform.io/docs/providers/azurerm/d/api_management.html参数 hostname_configuration 定义了如何为不同的 APIM 端点指定自定义主机名。
至于 VNET 集成,他们似乎正在努力:https ://github.com/terraform-providers/terraform-provider-azurerm/pull/2582