开发者社区> shuaichang> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

函数计算+NAT网关,函数从此有IP

简介: 背景 函数计算(FC)作为用户逻辑执行者与传统serverful的执行者一大优势是百毫秒级别的动态伸缩。Serverless的方式在很多场景下无疑可以提高资源利用率为用户降低成本,然而高速动态的伸缩模式也带来了和传统执行方式的不同。
+关注继续查看

背景

函数计算(FC)作为用户逻辑执行者与传统serverful的执行者一大优势是百毫秒级别的动态伸缩。Serverless的方式在很多场景下无疑可以提高资源利用率为用户降低成本,然而高速动态的伸缩模式也带来了和传统执行方式的不同。FC的用户常问的一个问题是:函数计算机器的IP是什么?这个问题的出现是因为很多用户函数访问的服务有基于IP的白名单/防火墙,如微信小程序。由于FC的机器是根据用户的请求新增释放,机器的公网IP不固定,也没有机制为用户分配固定网段,这样的环境中如何去访问微信小程序这样的服务呢?之前有使用ECS/ECI proxy方式解决这类问题的文章三分钟解决函数计算访问小程序 IP 白名单问题,本文将介绍另一种使用函数计算VPC+NAT网关使得函数公网出方向有一个固定的EIP,从而实现允许函数计算去访问需要有公网IP做白名单验证的服务。

原理

解决方案的原理在本质上和阿里云用户个人VPC中不赋予实例public IP但是允许这些VPC实例可以访问公网地址的原理是一样的,简单说就是创建NAT网关 绑定公网EIP,最后添加SNAT条目,从而允许VPC内的实例通过绑定的EIP 去访问公网,公网接收端看到的client IP只有NAT上绑定的EIP。FC访问用户VPC中的资源就是通过FC Service VPC中的实例通过attach用户VPC内的弹性网卡ENI 将函数实例中的流量通过用户的弹性网卡进入用户VPC,如果用户函数通过attached ENI访问公网, 流量同样按照SNAT条目 (VSwithch/ECS -> public IP的映射),通过绑定在NAT上的EIP出向公网,client IP即EIP address.

nat_fc_invoke_vpc

配置步骤

假设用户已经有一个VPC,VSwitch,安全组 (如还没有请参考 配置VPC功能), 只需要3个步骤:

  1. 创建一个使用用户VPC的FC Service和测试函数
  2. 创建一个NAT Gateway + EIP的组合, 并绑定EIP到新创建的NAT Gateway
  3. 添加一条SNAT条目,映射FC Service 所在的switch到绑定的EIP

下文将逐步详细讲解各配置配置方法

创建FC Service/Function

  • 如图中所示创建Service时选择已有的VPC, Vswitch和SecurityGroup
  • 特别注意Internet Access 选项需要关掉,否则流量会优先从函数实例的公网IP出向internet,而不是NAT EIP
  • 服务角色(Service Role)要配置AliyunECSNetworkInterfaceManagementAccess策略, 详见配置VPC功能

nat_create_fc_service_vpc_cn

  • 服务创建好后编写一个简单的python2.7 测试函数
import logging
import requests

def handler(event, context):
  logger = logging.getLogger()

  # Ask myip.ipip.net, what is my IP?
  r = requests.get('https://myip.ipip.net')
  clientIP = r.content.split()[1]
  logger.info('Client IP ' + clientIP)
  return clientIP

配置NAT Gateway + EIP

  • NAT网关 控制台,选择 组合购买EIP, 该步骤创建NAT网关和公网EIP

    • 选择对应的VPCID
    • 示例选择新购EIP,也可以使用已有的EIP

nat_create_nat_eip_cn

  • 创建好NAT和EIP后,将EIP绑定到NAT网关

nat_bind_eip

添加SNAT条目

  • 在相关NAT网关详情中找到 SNAT列表,并 创建SNAT条目
  • 选择与FC Service绑定的Vswitch作为交换机
  • 选择与该NAT网关绑定的EIP作为公网IP地址

nat_create_snat_entry_ch

测试

完成以上三个步骤后,调用前面步骤创建好的测试函数, 访问myip.ipip.net端收到的client IP即为NAT网关绑定的EIP地址,这个地址就可以作为微信小程序等白名单验证的IP地址了。

nat_fc_invoke_ch

总结

本文介绍了使用NAT网关+EIP解决FC访问公网服务需要固定白名单IP地址的问题。相比较使用ECS/ECI代理,这个方案具有天生的高可用和无运维的优势,配置也相对简单。不足是NAT网关价格最少12元/天,比较ECI的方式 (2.28元/天) 价格略高。这个方案更适合可用性要求高,成本压力小的关键业务。至此FC访问需要IP白名单验证的
第三方服务的各个方案已经有了详细介绍,用户可根据实际情况和需求合理选择。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
VB编程:DoWhile...Loop当循环计算0~100累加和
VB编程:DoWhile...Loop当循环计算0~100累加和
32 0
Dkhadoop虚拟机安装操作演示教程
本篇给大家分享DKHadoop虚拟机的环境安装。
1280 0
获取大数据计算通关秘籍,拥有全新一代计算引擎免费试用权益
如何将 MaxCompute 快速应用于实际业务场景?如何跑起第一个sql?想试用想学习交流怎么办?So easy!为您准备了大数据计算通关秘籍,还有机会拥有全新一代计算引擎免费试用权益。
8771 0
华月互网获得2012全国十大IDC服务商
本文讲的是华月互网获得2012全国十大IDC服务商,2013年3月1号,第八届中国互联网址站长讨论会圆满落幕,华月互网(www.xahxs.com)作为一家新兴的idc服务商,在域名和虚拟主机服务方面的成绩和客户满意度,荣获了“最佳IDC服务商”和“最佳域名服务商”两项殊荣,并挤进2012年中国十大IDC空间商之一。
1625 0
“物联网”“云计算” IT业新概念风起云涌
本文讲的是“物联网”“云计算” IT业新概念风起云涌,近年来,信息技术领域出现了“物联网”“云计算”“智慧地球”等一系列新概念。这些新概念受到一些业内人士的推崇,认为世界会因此而改变;但也有人质疑说,这些概念是新瓶装旧酒,在核心内容上没有多少新意,更多出于经济目的。
923 0
IDC:云计算潜力巨大,运营商是关键
本文讲的是IDC:云计算潜力巨大,运营商是关键,进入2008年以来,云计算(Cloud Computing)已不仅是国际IT业界热炒的概念,开始在中国落地生根。通过长期对中国服务器市场的跟踪研究,以及对云计算的密切关注,综合各方面因素考虑,IDC认为云计算将在中国具有广阔的市场空间,但前提是需要有更多的市场参与者投入到云计算的运营当中。
1453 0
+关注
9
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载