检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
表1 触发器信息 字段 填写说明 触发器类型 选择“API Gateway服务 (APIG)”。 API名称 您自定义的API名称,例如:API_apig。 分组 API分组相当于一个API集合,API提供方以API分组为单位,管理分组内的所有API。
使用FunctionGraph函数作为后端实现APIG的自定义认证能力 方案概述 资源规划 构建程序 添加事件源 调试并调用API 父主题: 功能应用类实践
图2 创建触发器 “调用URL”即APIG触发器调用地址。 API触发器创建完成后,会在API网关生成名为API_apig的API,单击API名称,跳转至API网关服务。 调用函数 在浏览器地址栏输入APIG触发器的调用地址URL,按“Enter”。
单击“创建触发器”,触发器类型可以选择“API 网关服务(APIG)”或“API 网关服务(APIG 专享版本)”,此处以共享版APIG为例。 API名称:默认即可,无需修改。 分组:选择在APIG创建的API分组,若无分组,可单击“创建分组”跳转至APIG创建。
表1 资源规划 资源 数量(个) API分组 1 自定义认证函数 1 业务函数 1 API 1 父主题: 使用FunctionGraph函数作为后端实现APIG的自定义认证能力
添加事件源 创建API API分组、自定义认证函数、后端函数均创建成功以后,可以创建API,设置安全认证为自定义认证,并定义后端服务类型为FunctionGraph,步骤如下。 登录APIG控制台,在左侧导航栏选择“API管理 > API列表”,单击右上方的“创建API”。
示例1:创建函数和Timer触发器实现定时从OBS桶中下载文件 场景描述 本章节以Python 2.7为例,指导您通过API创建FunctionGraph函数和Timer触发器,实现定时从OBS桶中下载文件。 API的调用方法请参见如何调用API。
在APIG中创建一个API分组,用来存放API。 创建一个鉴权方式为自定义认证且后端为FunctionGraph的API。 调试API。 完成本教程后,您的公有云账户将存在以下资源: 一个API分组(存放API)。 一个自定义认证函数。 一个业务函数。
配置APIG触发器 在upload-file-1函数详情页面,单击“设置 > 触发器”,开始创建触发器。 单击“创建触发器”,触发器类型可以选择“API 网关服务(APIG)”或“API 网关服务(APIG 专享版本)”,此处以共享版APIG为例。
创建触发器 创建函数时是否同步创建函数的触发器,勾选“API 网关服务(APIG)”。 触发器类型 默认为“API 网关服务(APIG)”。 API名称 API的名称,自定义。 分组 选择API所归属的API分组。 发布环境 选择API的发布环境,选择“RELEASE”。
使用APIG触发器调用一个返回String的FunctionGraph函数时,报500错误 FunctionGraph函数对来自APIG调用的返回结果进行了封装,APIG触发器要求函数的返回结果中必须包含body(String)、statusCode(int)、headers(Map
约束与限制 HTTP函数只能绑定APIG/APIC触发器,根据函数和APIG/APIC之间的转发协议,函数的返回合法的http响应报文中必须包含body(String)、statusCode(int)、headers(Map)和isBase64Encoded(boolean),HTTP
表1 专享版APIG触发器参数配置 参数 参数说明 取值样例 触发器类型 必选参数。 本例选择API 网关服务 (APIG专享版)。 API 网关服务 (APIG专享版) 实例 必选参数。 选择步骤一:购买专享版APIG实例创建的专享版APIG。
需函数流中函数节点的代码调用流式数据接口。 描述 输入函数流的简要描述。 保存成功后,单击“启动”,在弹出的启动执行页面,支持定义输入值或者直接启动。此处选择“定义输入值”。(输入定义值必须是JSON格式的内容。)
APIG 触发器 表2 APIG参数说明 参数名 必填 类型 参数描述 name False String API名称,默认使用函数名。 groupName False String 分组,默认选择当前第一个。 auth False Enum 安全认证,默认为 IAM。
初始化功能 引入initializer接口: 分离初始化逻辑和请求处理逻辑,程序逻辑更清晰,让用户更易写出结构良好,性能更优的代码。 用户函数代码更新时,系统能够保证用户函数的平滑升级,规避应用层初始化冷启动带来的性能损耗。
处理结果 在Nextjs-app函数详情页面,选择“设置 > 触发器”,复制APIG触发器的调用URL。 图1 复制APIG触发器URL 在浏览器中打开URL,即可看到如图2页面。 图2 返回结果 父主题: 使用Next.js项目构建HTTP函数
日志告警 配置函数代码执行返回结果 如果没有对函数代码执行返回结果有特定要求,例如绑定了APIG触发器的事件函数需要返回一个APIG响应格式的结果如下: import json def handler (event, context): return { "
添加事件源 添加APIG触发器(每个函数分别创建触发器),通过HTTP请求调用函数。 填写API名称,选择分组、发布环境、认证、请求协议、超时时间等配置,单击”确定”完成触发器创建,如图1所示。
需函数流中函数节点的代码调用流式数据接口。 描述 输入函数流的简要描述。 保存成功后,单击“启动”,在弹出的启动执行页面,支持定义输入值或者直接启动。此处选择“直接启动”。 单击“开始执行”,页面右上角提示“启动函数流xxx成功”。