通过 terraform 为应用服务创建自定义域
Posted
技术标签:
【中文标题】通过 terraform 为应用服务创建自定义域【英文标题】:Create custom domain for app services via terraform 【发布时间】:2018-07-16 11:31:44 【问题描述】:我正在通过 terraform 创建 azure 应用服务,并遵循此站点上的文档: https://www.terraform.io/docs/providers/azurerm/r/app_service.html
这是 terraform 脚本的 sn-p:
resource "azurerm_app_service" "app"
name = "app-name"
location = "$azurerm_resource_group.test.location"
resource_group_name = "$azurerm_resource_group.test.name"
app_service_plan_id = "ommitted"
site_config
java_version = "1.8"
java_container = "TOMCAT"
java_container_version = "8.5"
我的应用服务也需要子域,但我无法在 terraform 中找到任何帮助:
截至目前,应用服务的网址为: https://abc.azure-custom-domain.cloud
我希望我的网址是: https://*.abc.azure-custom-domain.cloud
我知道这可以通过门户完成,但他们有什么方法可以通过 terraform 完成吗?
【问题讨论】:
据我所知,这是不可能的。您需要在 Portal 上进行。 我将其添加为答案。希望它能帮助更多的人。 我认为使用 ARM 模板和 Terraform 的组合应该可以工作 【参考方案1】:这是不可能的。您可以使用您提供的link。如果没有参数,则terraform不支持该参数。
您需要在 Azure 门户上进行。
【讨论】:
【参考方案2】:我遇到了同样的问题,不得不在短期内使用 PowerSHell 来克服它。也许你可以让 Terraform 触发 PSHell 脚本……我还没试过!!!
PSHell 如下:-
$fqdn="www.yourwebsite.com"
$webappname="yourwebsite.azurewebsites.net"
Set-AzureRmWebApp -Name <YourAppServiceName> -ResourceGroupName <TheResourceGroupOfYourAppService> -HostNames @($fqdn,$webappname)
重要提示:确保为您尝试设置的自定义域配置 DNS FIRST,即 CNAME 或 TXT 记录,否则 PSHell 甚至 Azure 门户手动方法都会失败。
【讨论】:
【参考方案3】:现在可以使用app_service_custom_hostname_binding(自 2018 年 4 月 6 日 PR#1087 起)
resource "azurerm_app_service_custom_hostname_binding" "test"
hostname = "www.mywebsite.com"
app_service_name = "$azurerm_app_service.test.name"
resource_group_name = "$azurerm_resource_group.test.name"
【讨论】:
是否可以将其链接到应用服务插槽而不是应用服务?没有用于应用服务插槽自定义主机名绑定的模块 嗨,and_apo,有一个问题可以跟踪此功能请求:github.com/terraform-providers/terraform-provider-azurerm/… 我们使用了在拥有 arm 模板资源的问题中建议的解决方法来管理插槽主机名绑定,它似乎有效好吧。以上是关于通过 terraform 为应用服务创建自定义域的主要内容,如果未能解决你的问题,请参考以下文章
通过 terraform 创建 Azure App 服务时抛出错误此处不应出现名为“zone_redundant”的参数
使用 Terraform 创建一个 Azure Active Directory 自定义域
无法使用 Terraform 在自定义 VPC 中创建 Elastic Beanstalk 应用程序