创建后端服务为VPC内资源的API
本文将快速引导您如何在API网关中,发布后端服务为VPC内资源的API,并如何使用"阿里云APP"认证中的AppCode进行调用。
概述
您需要依次完成以下步骤:
创建VPC授权
创建分组
创建并定义API
创建应用和API授权
安全组放行
调试API
调用API
1.创建VPC环境
购买VPC环境的SLB、ECS,并搭建服务。
本例API网关的后端服务选择的是专有网络VPC的ECS实例,ECS中部署了Web服务,使用的是nginx,端口使用的是80端口。
2.创建VPC授权
步骤1 创建授权
如果想要网关可以访问VPC,则需要创建一个VPC的授权。
在开放API
菜单中选择VPC授权
,选择VPC所在地域,点击创建授权
,在弹窗页面,输入VPC授权名称;然后输入VPCId、实例ID或实例的私网地址 ,以及您的服务端口号。若需要指定域名来访问SLB或ECS上的站点(vhost),可将域名配置到Host。

VPC Id是您后端服务所在的VPCId,实例ID或地址是您后端所在的实例ID。这些在实例详情中可以找到。

ALB网络类型必须为私网类型,并且创建后不可修改为公网类型,修改为公网类型后引起的网关请求失败,后果需自行承担。
创建ALB实例类型的VPC授权时需要保证网关实例版本在3.5.3.706版本及以上才会生效。如未生效可提交工单升级实例版本。
3.创建分组
API分组是API的管理单元,因此需要先创建API分组,然后在分组下创建API。
步骤2创建分组
在开放API
菜单中选择分组管理
,选择Region,点击创建分组;在弹窗页面,选择分组实例,输入分组名称testVpcGroup,实例选择"共享实例(VPC)"。

步骤3 查看分组信息
在分组列表查看创建好的分组,点击名称可以进入到详情页,进行绑定域名、修改基本信息、切换实例类型等动作。
API分组会自动创建公网二级域名,此二级域名仅供调试使用,如果直接访问此域名,每天有1000次的限制(海外Region及中国香港限制100次/天)。因此建议您在使用时为分组绑定您的独立域名后使用。在本示例中使用此域名进行测试。
4.创建API
在开放API
菜单中选择API列表
,在上一步中创建的API分组所在Region,点击创建API。
步骤4 API基本信息
本环节是定义了API基本信息,包括API分组、API名称、安全认证方式、API类型、和描述等。选择刚刚创建的分组,写入对应配置,安全认证主要选择APPcode(header&Query)认证。

步骤5 定义API请求
本环节是定义client端(如浏览器、手机APP或其他的业务系统)如何请求您的API,需要确定的内容包括请求类型、协议、请求Path、HTTP Method、入参请求模式、和入参定义。在本例中,入参请求方式选择入参透传,表示发送过来的参数API网关不做处理,直接透传给后端VPC。

步骤6 定义API后端服务信息
本环节是定于API网关收到client端的请求后,进行何种参数映射、处理,以及连接哪个后端地址。本例中的后端服务类型选择VPC,选择前面步骤中创建的VPC授权或手动输入VPC授权名称,然后填写后端请求path ,点击下一步。

步骤7 定义返回结果
本环节用于API帮助文档的自助生成,帮助API使用者更好理解。可以设置返回ContentType、返回结果示例和失败返回结果示例。本例中不涉及到这部分,因此可以点击创建
按钮。
步骤8发布API
在上一环节保存成功后,会提示如下信息。您对API进行过任何的配置,都需要发布到对应的环境(API网关内置了三个环境:"线上"、"预发"、"测试")中才能够生效。本例中,点击发布
,按照控制台页面的提示,把此API发布到"线上"环境。

5.创建应用和API授权
应用(APP)是您调用API服务时的身份。在本例中的步骤1中,认证方式选择的是"阿里云APP认证",因此在API使用简单认证(AppCode)方式调用API发布后,还需要创建APP,并将APP和API的对应关系建立好,才能够正常访问。
步骤9创建应用
在调用API
菜单中选择应用管理
,创建一个APP,如下图所示。可以看到阿里云APP下有两种认证方式,AppKey和AppCode。本例中我们选择使用APPCode的方式进行简单认证。关于阿里云APP的更多描述可见此文档使用简单认证(AppCode)方式调用API

步骤10 对API进行授权
在API列表
,找刚创建好的API,在操作项中,点击授权
,出现如下的弹出框。注意环境需要选择已经进行了发布的环境,如本例中的"线上"。搜索之前创建的应用,点击添加;点击确定,提示授权成功,即成功授权。

6.安全组放行网关出口地址
若您的ECS安全组没有对相应的端口放行所有网段,那么就需要您在安全组中放行API网关的出口地址,避免安全组拦截。
网关的出口IP为API分组所在的实例的出口地址,专享实例查看方式为:先通过API网关控制台-【开放API】-【分组管理】-【分组详情】查看分组所在实例信息。

然后根据API网关的实例ID查看对应的实例消息,如图。共享实例则可以直接在此页面查看到出口地址信息。

7.调试API
API网关提供了在线调试的功能,因此一般建议在API网关上完成API配置之后,可以先通过此功能确认API是否配置成功,然后再通过client端进行调用。
在API列表页
,点击前面步骤中新增的API,进入详情页,点击调试API
进入如下页面。如果您定义了API的入参,在调试API页面中也可以输出不同的参数查看API的执行情况。
在调试API中,注意认证方式选择已经授权的APP,并且stage选择此APP授权好的环境,如果选择错误的stage,可能会造成API调试失败。本例中选择RELEASE(线上)。

8.调用API
本例中使用curl进行调用,您也可以参考使用简单认证(AppCode)方式调用API进行调用。

注意:调用API时,默认是调用线上环境的API。
关于API环境,详情可参考环境管理
本文主要的目的是快速入门,并未考虑后端的高可用,若您有需求可参考使用VPC内资源作为API的后端服务