前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >请求腾讯云接口获取固定IP地址的方案

请求腾讯云接口获取固定IP地址的方案

原创
作者头像
向东平
修改2022-03-01 09:36:30
12.4K0
修改2022-03-01 09:36:30
举报
文章被收录于专栏:AI知识

背景介绍

因部分业务需要,服务器对外访问的IP地址需做限制,仅允许加入白名单的IP对外请求,这就需要我们对访问的域名对应的IP进行加白。但腾讯云API接口域名对应的IP基本都是高可用的,目前没有很好的方案获取到接口域名固定IP,因此我们只能考虑使用其他方案代替,本文为大家介绍两种可行方案,大家可以酌情选择。

方案简介

方案一:

通过代理服务器实现,新搭建一个代理服务器,通过代理服务器请求腾讯云接口,而我们需要添加IP白名单的服务器只需要对代理服务器的IP地址进行加白,然后将具体请求发送给代理服务器,通过代理服务器去完成接口请求,该方案的具体实现可以参考另一篇文章《内网环境请求腾讯云3.0 API详解》

方案二:

通过API网关 + 云函数(SCF)实现,通过API网关请求可以拿到API网关请求地址的固定IP。用云函数实现具体的业务接口请求并返回结果,我们需为云函数配置API网关触发器,API网关会通过触发器向云函数传递参数,并触发云函数执行,云函数执行完成后的结果将通过API网关返回给我们。而我们业务端需要做的就是通过访问API网关下的请求地址去触发云函数执行,那么我们所关心的IP地址,就是API网关中这个访问地址对应的固定IP,本篇我们将详细介绍该方案。

API网关+云函数方案

方案分析

该方案需要我们从三个方面实现:API网关、云函数和业务侧,下面具体分析。

API网关:

需在API网关控制台创建专享实例,专享实例下的资源独享,IP是固定的,共享实例无法确保IP地址固定不变。在该实例下创建服务。

云函数:

第一、需在云函数控制台创建函数服务(即云函数),该云函数下需创建API网关触发器,API网关触发器的服务对应选择API网关控制台中创建的服务。API网关触发器创建成功后,将会生成一个该函数对应的请求地址。

第二、用自己的开发语言去完成我们需请求的接口功能,将完整的代码部署到云函数上。

第三、参数和结果,通过API网关触发器配置参数,业务侧将请求数据发送至API网关后,触发器触发云函数,云函数会通过入口函数中的两个默认参数"event"和"context"中获取业务侧传递的数据。入口函数中返回的结果即为本次请求返回的结果,该结果内容会返回给云API,云API返回给业务侧。

云函数代码入口函数
云函数代码入口函数

业务侧:

业务侧发起请求,并传递需要的参数到API网关,请求地址为API网关触发器中生成的地址。

请求时序图:

请求时序图
请求时序图

方案实现

1. API网关

控制台地址:https://console.cloud.tencent.com/apigateway/instance?rid=1

第一步:创建专项实例,专项实例可以独享底层资源,包括固定IP。

如下图,点击“新建”按钮,购买专项实例。

新建专项实例
新建专项实例

第二步:创建服务,服务地域需与后面创建云函数的服务地域保持一致,这里我们选择“广州”。

创建服务-1
创建服务-1
创建服务第-2
创建服务第-2
创建服务-3
创建服务-3

2. 云函数

控制台地址:https://console.cloud.tencent.com/scf/list

创建函数服务-1
创建函数服务-1

创建函数服务-1:新建函数服务,点击“新建”按钮,进入创建函数服务流程。

创建函数服务-2
创建函数服务-2

创建函数服务-2:选择从头开始创建,地域选择和API网关中第二步创建服务所选择的地域保持一致,我们这里也选择“广州”。运行环境选择自己熟悉的开发语言环境。

创建函数服务-3
创建函数服务-3

创建函数服务-3:函数代码为我们请求真正业务接口的代码,可以在线编辑也可以本地上传,建议本地运行成功后再上传。

创建函数服务-4
创建函数服务-4

创建函数服务-4:自定义函数触发器,触发方式选择“API网关触发”,API服务选择API网关中第二步所创建的服务名,点击完成。

创建成功后,在函数服务列表页变可以看到我们创建的函数。因为创建函数的同时也自定义创建了API网关触发器,所以在API网关中对应的服务名称下,也会创建一个对应的API。API网关触发器中的访问地址,即我们业务侧需要请求的地址。

3. 业务侧

直接向API网关触发器中的访问地址发起请求,传递需要的参数。业务侧请求中的header、body和参数等信息传递给API网关后,API网关会对请求的信息进行封装,然后再传递给云函数,云函数的入口函数中默认有两个参数“event”和“context”,云函数可以从这两个参数中获取到业务侧传递的数据,云函数入口函数返回的结果即为请求的结果。

请求示例:

https://service-xxxxx-xxxxxx.gz.apigw.tencentcs.com/release/funcation_name?param_url=https://xxx-xxx.cos.ap-nanjing.myqcloud.com/xxxxxx.jpg

总结

无论是代理服务器方案,还是API网关+云函数的方案,实现起来比我们直接请求接口都要复杂很多,但是这两种方案都可以获取到固定的IP地址,以实现我们业务开白的需求。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 方案简介
    • 方案一:
      • 方案二:
      • API网关+云函数方案
        • 方案分析
          • API网关:
          • 云函数:
          • 业务侧:
          • 请求时序图:
        • 方案实现
          • 1. API网关
          • 2. 云函数
          • 3. 业务侧
      • 总结
      相关产品与服务
      云 API
      云 API 是腾讯云开放生态的基石。通过云 API,只需少量的代码即可快速操作云产品;在熟练的情况下,使用云 API 完成一些频繁调用的功能可以极大提高效率;除此之外,通过 API 可以组合功能,实现更高级的功能,易于自动化, 易于远程调用, 兼容性强,对系统要求低。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档