将根域指向Azure函数

时间:2018-11-01 11:13:13

标签: azure dns azure-functions

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

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

不幸的是,使用Azure Function时没有公共IP地址,并且我不能在根域上使用CNAME(也就是说,我不能使用DNS语法@ CNAME somefunction.something.azure.net

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

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

4 个答案:

答案 0 :(得分:1)

据我所知,目前存在将您的“域根”(example.com)绑定到Azure Function应用的方法。

我通过为我管理域和ssl主题的(预)服务(例如Cloudflare)将其解耦,从而为我解决了这个问题

如果您想保留在Azure上,也许Azure API Management是您的选择。

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

对于遇到此问题的其他人,Azure Function Apps 现在支持使用 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 应用程序具有局限性,并且非免费层不像消费计划那样按使用量付费。

答案 3 :(得分:0)

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

https:// .azurewebsites.net /

使用我的azure函数的丑陋路径

https:// .azurewebsites.net / api /

您可能必须使用路由模板请求覆盖配置,才能将path参数发送到azure函数

enter image description here

您可以在自定义域配置中找到Azure功能公用IP

enter image description here

enter image description here