通过API网关对接函数计算FC3.0(Web函数)

为了提供更安全、更可控的API访问方式,您可以通过API网关来更好的管理和监控函数计算服务,本文将快速引导您如何在API网关中对接函数计算FC3.0(Web函数),以及如何使用阿里云APP认证中的AppCode进行调用。

前提条件

创建API网关实例,关于实例的选型信息,请参考实例类型与选择指南

方案概览

本方案通过在函数计算3.0中部署Web函数,在API网关中创建后端服务并指向函数计算,使用阿里云APP认证中的AppCode进行安全调用,帮助您了解如何通过API网关控制对函数计算服务的访问。大致分为以下几步:

  1. 创建Web函数:构建一个基于函数计算3.0的Web应用程序。

  2. 创建后端服务:在API网关中定义一个指向函数计算服务的后端服务,确保API请求能准确地转发给对应的Web函数,实现前后端的无缝集成。

  3. 创建API:使得外部应用能够按照指定的方式调用内部的Web函数服务。

  4. 创建应用和API授权:建立API访问的身份验证机制,确保只有经过授权的应用才能调用特定的API,增强系统的安全性。

  5. 调试API:利用API网关提供的在线调试工具,可以在正式发布前测试API的功能是否按预期工作,及时发现并解决问题。

  6. 调用API:完成所有配置后,即可通过API网关提供的API接口对外提供服务,支持其他系统或应用调用。

步骤一:创建Web函数

在API网关对接函数计算服务前,需要先在函数计算服务中创建一个Web函数,帮助您快速构建和部署Web应用,本文以函数计算3.0为例。

  1. 登录函数计算3.0控制台,单击左侧导航栏的函数,进入函数页面,并在顶部菜单栏选择地域。

    重要

    创建的Web函数的地域应与API网关实例地域相同。

  2. 函数页面,单击创建函数,选择Web函数,并进行如下配置,然后单击创建

    • 基本设置:设置函数名称

    • 函数代码:配置函数的运行环境和代码信息,启动命令监听端口使用默认配置。

      image

  3. 在函数创建成功后将自动进入函数详情页,单击配置栏,在左侧导航栏选择触发器,在目标触发器的配置信息列处复制触发器的内网访问地址:https://helloworld-***.cn-hangzhou-vpc.fcapp.run方便在创建后端服务时使用。

    image

步骤二:创建后端服务

API网关允许将后端服务配置为地域内的资源,简化管理流程。您只需在API网关中新建后端服务,并配置后端服务地址来对接函数计算服务即可。

  1. 登录API网关控制台,左侧导航栏选择API管理 > 后端服务,在顶部菜单栏选择地域,单击创建后端服务

    image

  2. 创建后端服务弹框中,按图所示填写配置信息,并单击确定

    image

  3. 在后端服务页面,单击刚刚创建的后端服务,进入后端服务定义页,选择线上页签,在基本信息处单击创建

    image

  4. 在创建的基本信息页面,配置触发器路径创建Web函数时复制的触发器的内网访问地址https://helloworld-***.cn-hangzhou-vpc.fcapp.run,单击发布

    image

步骤三:创建API

创建API使得外部应用能够按照指定的方式调用内部的Web函数服务,使用API分组组织和管理多个相关的API接口,便于实施统一的安全策略和流量控制措施。

  1. API网关控制台,左侧导航栏选择API管理 > 分组管理,单击创建分组以便对API进行管理。

  2. 创建分组弹框页面,选择实例,输入分组名称FC-GroupBasePath/,单击确定

    image

  3. 分组创建完之后,单击所建分组操作列下的API管理,进入API列表页面。

    image

  4. 单击创建API,在基本信息栏,配置如下信息,并单击下一步

    image

  5. 定义API请求栏,配置请求Path/,其他信息保持默认,单击下一步

  6. 定义API后端服务栏,如图所示进行配置,并单击下一步

    image

  7. 定义返回结果栏,保持系统默认配置,单击创建,在创建成功之后,单击API操作列中的发布

  8. 在发布API弹框中,进行如下配置,并单击发布

    image

步骤四:创建应用和API授权

应用(APP)是调用API服务时的身份,在创建API时,认证方式选择的是阿里云APP认证,因此在API发布后,还需要创建APP,并将APP和API的授权关系建立好,才能够正常访问。

  1. API网关控制台的左侧导航栏选择API调用 > 应用管理

  2. 应用与授权页面,单击右上角创建APP。在创建应用页面,输入应用名称fcAPP,单击确定

  3. 单击已创建好的fcApp应用名称,进入应用详情页面,可以看到阿里云APP下有两种认证方式,AppKeyAppCodeAppKey方式有一组AppKeyAppSecret,您可以理解为账号密码,调用API的时候需要将AppKey作为参数传入,AppSecret用于签名计算,网关会校验这对密钥对您进行身份认证。

    image

  4. 在左侧导航栏选择API管理 > API列表,在API列表页面,找到已创建好的FC-testAPI,单击操作image> 授权

  5. 在授权页面,配置选择要授权的环境线上。搜索之前创建的应用fcApp,单击添加确定,提示授权成功,即成功授权。

    image

步骤五:调试API

利用API网关提供的在线调试工具,可以在正式发布前测试API的功能是否按预期工作,及时发现并解决问题。

  1. API网关控制台左侧导航栏选择API调用 > 调试

  2. 在调试页面选择,所创建的FC-testAPI,验证方式选择使用AppCode,然后单击发送请求,看到下图信息说明配置成功。

    image

步骤六:调用API

您已经创建API、创建APP、建立了授权关系,调试API完成,并将API发布到线上环境,下面介绍如何使用APPCode的认证方式来在您的业务系统中调用发布好的API。可参考使用简单认证(AppCode)方式调用API了解更多,本例中使用curl进行调用。

API网关控制台左侧导航栏API调用 > 应用管理,在应用与授权页面找到授权的APP,单击进入获取APPCode。然后按照以下示例调用API。

curl -i -X GET "http://fd6f8e2b7bf44ab181a56****-cn-hangzhou.alicloudapi.com" -H "Authorization:APPCODE 7d2b7e4945ce44028ab00***"

执行效果如下图所示:

image