问题描述
在中国区Azure上,创建Container App服务,发现默认的应用程序URL只有前半段,并不是一个完整的域名。这是什么情况呢?
正常的Container App的URL格式为:<container app name>.<environment>.<region>.azurecontainerapps.cn。如:mymoreappinone04.icysand-c9bc5d4e.chinanorth3.azurecontainerapps.cn
问题解答
在中国区Azure中,需要为应用自定义域名,并且必须要ICP备案才能公开全网访问。所以Container App在设计之初就不提供默认域名。强制自定义域名。这一点是与Global最大的不同。
根据文档步骤(https://learn.microsoft.com/zh-cn/azure/container-apps/custom-domains-certificates#add-a-custom-domain-and-certificate),自定义域名后,即可看见全称域名。
DNS
- 自定义 DNS:如果 VNet 使用自定义 DNS 服务器而非默认的 Azure 提供的 DNS 服务器,请将 DNS 服务器配置为将未解析的 DNS 查询转发给
168.63.129.16
。 Azure 递归解析程序使用此 IP 地址解析请求。 配置 NSG 或防火墙时,请勿阻止地址168.63.129.16
,否则容器应用环境将无法正常运行。- VNet 范围入口:如果计划在内部环境中使用 VNet 范围 入口 ,请通过以下方式之一配置域:
- 非自定义域:如果不打算使用自定义域,请创建专用 DNS 区域,将容器应用环境的默认域解析为容器应用环境的静态 IP 地址。 可以使用 Azure 专用 DNS或自己的 DNS 服务器。 如果使用 Azure 专用 DNS,请创建一个名为 的专用 DNS 区域,作为容器应用环境的默认域 (
<UNIQUE_IDENTIFIER>.<REGION_NAME>.azurecontainerapps.io
) 记录A
。 该A
记录包含容器应用环境的名称和*<DNS Suffix>
静态 IP 地址。- 自定义域:如果计划使用自定义域并使用外部容器应用环境,请使用可公开解析的域将 自定义域和证书添加到 容器应用。 如果使用内部容器应用环境,则不会验证 DNS 绑定,因为只能从虚拟网络内部访问群集。 此外,创建将顶点域解析为容器应用环境的静态 IP 地址的专用 DNS 区域。 可以使用 Azure 专用 DNS或自己的 DNS 服务器。 如果使用 Azure 专用 DNS,请创建一个名为顶点域的专用 DNS 区域,其中包含指向容器应用环境的静态 IP 地址的
A
记录。容器应用环境的静态 IP 地址可在容器应用页的“自定义 DNS 后缀”Azure 门户或使用 Azure CLI
az containerapp env list
命令获取。
参考资料
中国区 Azure REST 终结点 : https://learn.microsoft.com/zh-cn/azure/reliability/sovereign-cloud-china#azure-in-china-rest-endpoints