【问题标题】:Point root domain to Azure Function将根域指向 Azure Function
【发布时间】:2021-06-17 21:53:18
【问题描述】:

在我们的项目要求中,我们需要处理一些重定向,其中请求以example.com/some-uri 的形式出现,并基于此some-uri 被重定向到各个地方。

由于我们所有现有的应用程序都已托管在 Azure 中(数百种服务、数据库、应用程序等),Azure Functions 似乎是一个非常合理的选择。工作负载非常简单:将传入的 uri 与表匹配并发出 301 重定向到相应的目标。

很遗憾,Azure Function 没有公共 IP 地址,我无法在根域上使用 CNAME(即,我无法使用 DNS 语法@ CNAME somefunction.something.azure.net

我不想为了处理这些重定向而为应用服务付费。我期望的请求数量完全在函数调用的免费分配范围内,因此我基本上是免费获得的。

如何将 example.com 域的根目录指向该函数?

【问题讨论】:

    标签: azure dns azure-functions


    【解决方案1】:

    要完成这个问题,答案是,这是不可能的。裸域记录不能是CNAME,并且没有创建A记录的函数的IP地址。

    编辑:事实证明,这是可能的,但不是直接的。创建 Azure Functions 应用时,可以选择“消费计划”或“应用服务计划”。使用应用服务计划,在 B1 层及更高层上,您确实会获得与其关联的静态 IP 地址。此外,您甚至可以使用保留的 IP 地址。

    【讨论】:

    • 问题是当您可以使用网络应用程序时是否值得麻烦。
    • 问题是当您可以使用网络应用程序时是否值得麻烦。
    【解决方案2】:

    据我所知,目前有一种方法可以将您的“域根”(example.com) 绑定到 Azure Function App。

    我通过将它与为我管理域和 ssl 主题的(预)服务解耦来为我解决了这个问题(如 Cloudflare

    如果您想继续使用 Azure,Azure API Management 可能是您的选择。

    【讨论】:

    • 是的,我所有的研究都指向“这是不可能的”答案。 API 管理在这里不会帮到我 - 出于完全相同的原因。另外,我需要有多个根域指向我的函数。我最终可能会做的是启动一个单独的网络应用程序(它确实有一个公共 IP 地址),然后使用它而不是一个函数。看起来,我每月花费不到 60 英镑。
    • clouflare 和其他几个确实允许 CNAME 用于 @ 记录,但是它会破坏电子邮件传递,这不是一个选项。
    【解决方案3】:

    对于其他偶然发现此线程的人,Azure 函数应用现在支持使用 A 记录的根域,即使在消费层也是如此。文档中的更多信息:https://docs.microsoft.com/en-gb/azure/app-service/app-service-web-tutorial-custom-domain

    编辑:事实证明......它没有。我一定对 Function Apps 的自定义域选项卡中的 IP 地址字段的工具提示感到困惑,其中显示“使用此 IP 地址配置 A 记录的 DNS 设置”。然后,当您单击“添加自定义域”并尝试添加 A 记录时,它会显示“基于消费的功能应用程序不支持 A 记录。”

    我已经使用 Azure 静态 Web 应用来托管我的一些网站,并且在后台有一个函数应用作为您应用的 API。静态 Web 应用程序支持 A 记录,因此这是一种让您的函数位于根域之后的方法。但是,免费层中的静态 Web 应用程序有限制,非免费层不像消费计划那样按用量付费。

    【讨论】:

    • 您提到的链接中没有出现一次“消费”。另外,我看到他们在那里选择了App Service Plan,这也表明它不适用于消费计划。
    • 你是绝对正确的。我修改了答案。
    【解决方案4】:

    我在我的 azure 函数中创建了一个代理,它映射函数应用程序根路径

    https://.azurewebsites.net/

    用我的天蓝色函数丑陋的路径

    https://.azurewebsites.net/api/?

    您可能必须使用 Route templateRequest override 配置才能将您的路径参数发送到 azure 函数

    可以在自定义域配置中找到Azure函数公网IP

    【讨论】:

    • 我认为你没有抓住重点。仍然必须有一个 DNS 条目来指向该函数 - 并且没有办法将根(裸)域指向该函数的 CNAME。
    • 啊好的根域对不起我的坏
    • 你试过了吗? docs.microsoft.com/en-us/azure/dns/dns-web-sites-custom-domain Azure Function 只是一个专门的应用服务,也有自定义域。当我阅读您的问题时,我正在尝试此操作,但我的 DNS 暂时没有传播 CNAME 记录:-)
    • 没有网站,所以没有创建A记录的ip地址。
    猜你喜欢
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 2020-05-05
    • 2018-05-18
    • 1970-01-01
    • 2021-11-27
    相关资源
    最近更新 更多