如何查找Azure功能应用程序IP以进行白名单

时间:2018-04-24 10:00:06

标签: azure azure-functions

我开发了一个PowerShell脚本,可以在一天内使用MX记录DNS向指定用户发送邮件。邮件成功发送,但所有邮件都进入垃圾邮件文件夹。

Exchange团队已分析邮件标头,并回复说发件人IP地址需要列入白名单。

如何查找Azure功能IP或IP范围,因为我正在使用功能应用程序的消费计划。

此致 K Senthilrajan

3 个答案:

答案 0 :(得分:1)

Azure功能背后的背景是Azure应用服务。那么,你如何找到它使用的IP地址?

App Service设置页面中有包含 当前 出站IP地址的部分,请参阅

Azure App Service - Outbound IP Addresses

但请记住,由于该平台是PaaS服务,它可能会在没有任何通知的情况下转移到其他硬件并获得完全不同的出站IP地址集。

有关详细信息,请参阅{Azure支持的this twitter对话。讨论的结论是IP范围不是静态的,可能会发生变化。

了解Azure功能可能使用的IP的唯一可靠方法是引用Microsoft Azure发布的包含entire IP range of all data centers的XML文档,这使得此任务难以实现

答案 1 :(得分:0)

我使用这种技术来动态识别IP

会定期调用运行状况端点,并将返回的IP列入白名单。


app.get("/health", function(req, res) {
    unirest
    .get('https://<fn-appname>.azurewebsites.net/ipinfo')
    .headers({'Accept': 'application/json', 'Content-Type': 'application/json'})
    .send()
    .then((response) => {
        res.send(response.body);
      });

});

app.get("/ipinfo", function(req, res) {
    const ipaddress=req.headers['x-forwarded-for'];
    res.send({ip_address:ipaddress});
});


答案 2 :(得分:0)

不幸的是,自从金的回答以来,情况已经发生了变化。现在,您必须通过Azure资源管理器进入JSON文件,以查找可能的出站IP地址。根据{{​​3}}:

  1. 登录current Microsoft documentation
  2. 选择订阅> {您的订阅} > 提供者> Microsoft.Web > 站点< / strong>。
  3. 在JSON面板中,找到一个id属性以功能应用程序名称结尾的网站。
  4. 请参见 outboundIpAddresses possibleOutboundIpAddresses

或者,您也可以通过Az Powershell模块执行此操作:

az webapp show-资源组 --name --query outboundIpAddresses --output tsv

az webapp show-资源组 --name --query PossibleOutboundIpAddresses-输出tsv