为什么对于 azure 函数,传入的 HTTP 请求不能使用入站 IP 地址来调用单个函数

why for azure function, Incoming HTTP requests can't use the inbound IP address to call individual functions

在防火墙后面访问 azure function http trigger 的情况,但是我们不能像 Microsoft documentation 那样使用 ip 访问 http 端点,有人知道为什么吗? azure http 触发器是如何设计的? 我想用 ip 地址调用 http 触发器,我该怎么做

Azure 使用 name-based 虚拟主机,这意味着多个 Web 应用程序(和功能)托管在同一个服务器池中并共享相同的 IP 地址。因此,Azure 需要额外的 属性 来确定在将 HTTP 请求发送到 IP 地址时应调用哪个函数,这是通过设置 HTTP“主机”header.[=12 来实现的=]

要获取函数的入站 IP 运行 在终端中执行以下操作

nslookup <YourName>.azurewebsites.net

假设此处返回的 IP 地址是 20.51.3.70,然后您可以向该 IP 发送 HTTP 请求,但您必须指定“主机”header,如下所示:

curl -i -H "Host: <YourName>.azurewebsites.net" http://20.51.3.70/api/<FunctionName>?code=<APIKey>