Azure Function 出站 IP 地址问题

问题描述 投票:0回答:1

我遇到了一种情况,需要将一堆 Node.js 脚本从本地服务器上的计划任务移动到 Azure Functions。其中之一与供应商控制的服务器建立 SFTP 连接。供应商已将我们网络的公共 IP 列入白名单,但显然我的脚本在尝试从 Azure 连接时失败。

问题是我不知道让它们将所有可能的 azure 函数 ip 列入白名单是否是一个解决方案,因为它们似乎不一定是静态的。

是否有人有此类问题的经验,并且有任何解决方法可以最大限度地减少每次应用程序 IP 地址更改时与供应商的联系?我认为创建 NAT 网关似乎是迄今为止最好的解决方案,但我想知道是否有更好/更简单的解决方案。

提前致谢,

-JD

node.js azure azure-functions sftp nat
1个回答
0
投票

我想我找到了一个可行的解决方案。我将把它放在应用程序服务计划(而不是消费)下,这样我就可以访问 azure funcitons 高级网络功能。我创建了一个具有公共 IP 的 NAT 和 NAT 后面的虚拟网络。然后在功能应用程序中,添加虚拟网络。这可确保来自函数应用的所有网络流量都通过 NAT 公共 IP。微软有一篇很好的文章这里。我确认我的应用程序正在使用此脚本的公共 IP:

module.exports = async function (context, req) {
    context.log("Node.js HTTP trigger function processed a request.");

    try {
        const response = await fetch('https://ifconfig.me');
        if (!response.ok) {
            throw new Error(`HTTP error! status: ${response.status}`);
        }
        
        const responseMessage = await response.text();
        
        context.res = {
            status: 200,
            body: responseMessage
        };
    } catch (error) {
        context.res = {
            status: 500,
            body: error.message
        };
   

© www.soinside.com 2019 - 2024. All rights reserved.