在我们的项目要求中,我们需要处理许多重定向,其中请求以example.com/some-uri
的形式出现,并基于此some-uri
重定向到各个地方。
由于我们所有现有的应用程序已经托管在Azure中(数百种服务,数据库,应用程序等),因此Azure Functions似乎是一个非常合理的选择。工作量非常简单:将传入的uri与表进行匹配,并发出301重定向到相应的目标。
不幸的是,使用Azure Function时没有公共IP地址,并且我不能在根域上使用CNAME(也就是说,我不能使用DNS语法@ CNAME somefunction.something.azure.net
)
我不想只为处理这些重定向而付费的应用程序服务。我期望的请求数量完全在函数调用的免费分配范围内,因此,我将基本上免费获得该请求。
如何将example.com域的根指向该函数?
答案 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)