0

我计划在 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
4

2 回答 2

2

要使用 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

于 2019-05-06T07:30:19.463 回答
1

要获得自定义主机名支持,请参阅此处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

于 2019-01-05T18:14:32.273 回答