函数计算访问数据库、微信小程序或其他第三方服务时,需通过配置白名单来访问,您可以使用函数计算的固定公网IP地址来完成白名单的验证。本文以首次配置和增加固定公网IP地址两种场景为例介绍如何在函数计算控制台配置函数出口方向的固定公网IP地址。

注意事项

  • 固定IP地址功能需配合专有网络VPC的公网NAT网关来完成。通过创建一个公网NAT网关,并为其绑定一个弹性公网IP地址和添加一个SNAT条目,允许VPC内的实例通过此弹性公网IP地址访问公网。此时,在公网接收端查询到的客户端IP地址为该NAT网关绑定的弹性公网IP地址。
  • NAT网关和弹性公网IP地址均只能在某个地域的固定可用区购买,如果NAT网关、弹性公网IP与函数计算的服务所在的可用区不一致,您必须通过设置交换机来实现跨可用区公网互通。更多信息,请参见可用区注意事项
  • 弹性公网IP地址在同一地域下的所有服务间共享。
  • RAM用户使用固定IP地址功能前,需先为其授予AliyunECSFullAccessAliyunVPCFullAccessAliyunEIPFullAccessAliyunNATGatewayFullAccess权限。

计费说明

配置固定公网IP地址可能会创建NAT网关和弹性公网IP地址导致费用问题。具体信息,请参见公网NAT网关计费弹性公网IP地址计费

首次配置固定公网IP地址

前提条件

  • 您已完成函数访问VPC资源相关权限和网络的配置。具体操作,请参见配置网络和角色
  • 您已配置允许访问 VPC。具体操作,请参见配置网络
  • 您已配置允许函数访问公网。具体操作,请参见配置网络
    说明 为保证函数访问外部网络正常,建议您先配置允许函数访问公网,固定IP生效之后再配置允许函数访问公网,平滑迁移流量。

操作步骤

  1. 登录函数计算控制台
  2. 在顶部菜单栏,选择地域。
  3. 在左侧导航栏,单击服务及函数
  4. 服务列表页面,找到目标服务。在其操作列,单击配置
  5. 网络配置区域,参数固定公网 IP选择
    fixed-ip
    说明 执行此操作后,函数计算可能会自动创建NAT网关相关资源,例如NAT网关、弹性公网IP和SNAT条目等,其名称均以fc_auto_create开头。
  6. 单击保存,在弹出的固定IP配置对话框,阅读提示信息,单击确定,然后再单击保存
    3~5分钟后前往服务详情页面,您可查看到刚才保存的服务配置信息;或前往专有网络控制台,您可以看到刚才关联或自动创建的公网NAT网关相关资源信息。fixed-IP-result

结果验证

  1. 登录函数计算控制台
  2. 在左侧导航栏,单击服务及函数
  3. 在顶部菜单栏,选择地域。
  4. 服务列表页面,单击目标服务。
  5. 函数管理页面,单击目标函数名称。
  6. 单击函数代码页签,在代码编辑器中编写代码。
    Python 2.7代码示例如下:
    # -*- coding: utf-8 -*-
    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
  7. 完成函数编写并部署后,单击测试函数

    执行成功后,查看返回的客户端IP地址,即配置的固定IP地址。

    result

增加固定公网IP地址

如您需要增加其他的固定IP地址,步骤操作如下:

  1. 网络配置区域,单击固定IP参数下方的创建新的弹性公网IP
    fixed-ip-edit

    页面自动跳转到专有网络控制台

  2. 专有网络控制台,手动创建一个弹性公网IP地址并绑定到对应的NAT网关。具体步骤,请参见申请EIP
    绑定成功后,前往服务详情页面,您可查看到刚才保存的服务配置信息。fixed-2-IP

更多操作

如您需要关闭固定IP地址功能或删除已配置的固定IP地址,请先配置允许函数访问公网,然后前往专有网络控制台手动删除VPC对应的所有NAT实例。