操作手册
【实践】使用AI助手生成网关插件
本实验带您体验在云上使用云原生API网关的AI助手生成网关自定义wasm插件,以及将生成的插件配置在网关上,并验证插件的功能生效。
场景简介
本实验带您体验在云上使用云原生API网关的AI助手生成网关自定义wasm插件,以及将生成的插件配置在网关上,并验证插件的功能生效。
背景知识
本场景主要涉及以下云产品和服务:
前提条件
本实验需要您使用阿里云账号开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。
如果领取相关云产品免费试用,本实验2个小时预计产生费用0元。如果没有领取相关云产品免费试用,本实验2个小时预计产生费用3.87元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
进入实操前,请确保阿里云账号满足以下条件:
创建专有网络VPC和交换机
在实验室页面右侧的操作区中,勾选我已阅读并同意《阿里云云起实践平台服务协议》,单击开始实操。
登录专有网络管理控制台。
在左侧导航栏中,单击专有网络。
在专有网络页⾯,切换⾄华东1(杭州)地域,单击创建专有网络。
在创建专有网络页⾯,根据下方说明配置专有网络(VPC)和交换机的参数,未提及的参数保持默认即可,然后单击确定。
配置项
说明
配置项
说明
专有网络
地域
选择华东1(杭州)。
名称
自定义名称。
IPv4网段
选择手动输入IPv4地址段。
输入IPv4网段
输入
192.168.0.0/16
。IPv6网段
选择不分配。
交换机
名称
自定义名称。
可用区
选择杭州可用区H。
IPv4网段
设置为192.168.0.0/24。
在创建专有网络页面,您可查看到创建的专有网络VPC和交换机的ID、实例名称等信息。
创建云原生API网关
领取免费试用云原生API网关。
重要前往免费试用云原生API网关。
在免费试用中心页面,单击云原生API网关卡片中的立即试用。
在云原生API网关面板,根据下方说明配置参数,未提及的参数保持默认即可,单击立即试用。
配置项
说明
配置项
说明
地域
选择华东1(杭州)。
网关名称
自定义名称。
网关规格
apigw.small.x1
网络访问类型
选择公网。
专有网络
选择之前创建的专有网络。
可用区选择
选择自动分配。
交换机
选择之前创建的交换机。
日志服务
勾选使用日志服务(SLS)。
服务关联角色
确认所有服务角色均已授权,若有未授权的,请根据页面提示进行授权。
免费试用申请完成,前往云原生API网关实例页面,当刚刚创建的网关实例的运行状态变为运行中时,表明网关实例创建完成。
创建云原生API网关。
重要如果您已根据上一步领取免费试用云原生API网关实例,请跳过此步骤,无需重复创建云原生API网关实例。
登录云原生API网关控制台。
在左侧导航栏中,单击实例。
在实例页面,单击创建实例。
在创建云原生API网关页⾯,根据下方说明配置参数,未提及的参数保持默认即可,然后单击立即购买。
配置项
说明
配置项
说明
商品类型
选择按量付费。
地域
选择华东1(杭州)。
网关名称
自定义名称。
网关规格
apigw.small.x1
网络访问类型
选择公网。
专有网络
选择之前创建的专有网络。
可用区选择
选择自动分配。
交换机
选择之前创建的交换机。
日志服务
勾选使用日志服务(SLS)。
服务关联角色
确认所有服务角色均已授权,若有未授权的,请根据页面提示进行授权。
在确认订单页面,确认信息无误后,单击立即开通。
返回至云原生API网关控制台,在实例页面,单击
图标,刷新页面。
在实例页面,当刚刚创建的网关实例的运行状态变为运行中时,表明网关实例创建完成。
创使用AI助手生成网关插件代码
在云原生API网关中可以使用多种语言(C++/Rust/Go/JS)编写网关功能扩展插件,实现例如请求/响应处理,特定应答返回,业务日志记录等功能。使用AI助手可以辅助生成网关插件代码,帮助用户快速上手网关插件开发。
在云原生网关控制台的左侧导航栏中,单击插件 。
在插件页面,单击WebIDE编写插件。
在WebIDE编写插件面板,插件编写方式选择AI助手辅助生成,在插件要求框中填写如下内容,单击开始生成。
当请求path中包含swagger.html字符时,拦截请求,返回403状态码,并发送响应:access denied
在插件开始生成之后,页面右下角会显示插件编写进度,请您耐心等待进度完成。当页面右下角显示插件已生成,请点击详情查看时,单击查看详情。
等待WebIDE初始化完成后,单击main.go文件,可以查看AI编写的代码。
完成wasm插件编译和导出并发布自定义插件
在WebIDE中完成插件编译,并导出插件发布为自定义插件。
打开VS Code命令面板。
Windows 和 Linux:
快捷键:Ctrl + Shift + P。
macOS:
快捷键:Cmd + Shift + P。
在VS Code命令面板,输入higress后,单击Higress 插件: Build命令。
大概需要等待2分钟左右,VS Code右下角会显示插件构建成功,在目录中可查看到输出文件main.wasm文件。
在WebIDE编写插件面板,单击右上角的导出WASM文件,将main.wasm文件下载到本地。
在弹出的对话框中,单击确认。
关闭WebIDE编写插件面板,返回到插件页面,单击发布插件。
说明退出WebIDE时不会自动保存代码,需要自行保存,后续如果要修改代码,可以打开WebIDE将代码粘贴进去再重新编译
在发布插件面板,根据下方说明配置参数,未提交的参数保持默认即可,单击上传。
在插件页面的左侧快捷导航区域中,单击自定义,找到您创建的插件,请您耐心等待插件上传成功。
开启插件,验证插件功能
等待插件上传成功后,选择之前创建的网关实例安装插件,并配置开启,验证插件功能。
安装并开启插件。
在插件页面,找到您创建的插件,单击卡片中的安装。
在安装插件面板,选择创建的网关实例,单击确定。
在配置页签,找到目标网关实例,单击其右侧操作列下的规则配置。
在规则配置面板,选择实例级插件规则,将启用状态设置为打开,单击保存。
创建并调试HTTP API,验证插件功能。
关闭规则配置面板,在左侧导航栏中,单击API。
在API页面,单击HTTP API卡片上的创建。
说明如果您的云原生API网关当前已经存在其他API,请在全部API页签单击创建API后,再单击HTTP API卡片上的创建。
在创建HTTP API面板,自定义API名称,单击确定。
在全部API页签,找到创建的API,单击API名称。
在API详情页面,单击创建路由。
在创建路由面板,根据下方说明配置参数,未提及的参数保存默认即可,然后单击保存并发布。
配置项
说明
配置项
说明
路由名称
自定义路由名称。
路径
选择前缀是,然后输入
/swagger
。所属实例
选择创建的云原生API网关实例。
使用场景
选择Mock。
在API详情页面,找到创建的路由,单击其右侧操作列下的调试。
在路由调试面板,路径填写为
/swagger.html
,单击发送请求。返回如下结果,可以查看到发送请求后返回的响应信息为access denied,状态码为403,表明我们创建的自定义插件拦截了path中包含swagger.html字符的请求。
清理资源
在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除相关资源后,再结束实操,否则资源会持续运行产生费用。
删除云原生API网关实例、AI API和插件。
登录云原生API网关控制台。
在左侧导航栏中,单击实例。
在实例页面顶部菜单栏中,地域切换至华东1(杭州),然后找到目标实例,选择其右侧操作列下的更多 > 释放实例。
在释放网关实例对话框中,输入网关实例名称,单击确定。
在左侧导航栏中,单击API。
在全部API页签,找到目标API,单击右侧操作列下的删除。
在弹出的对话框中,输入API名称,单击删除。
在左侧导航栏中,单击插件。
在插件页面,找到您创建的插件,选择卡片中的
图标 > 删除插件。
在弹出的对话框中,单击确认。
删除VPC及交换机。
登录专有网络。
在专有网络页面顶部菜单栏中,地域切换至华东1(杭州)找到目标VPC,单击其右侧操作列下的删除。
在删除专有网络对话框中,勾选强制删除,单击确定。
删除相关资源后,单击结束实操。在结束实操对话框中,单击确定。
在完成实验后,如果需要继续使用资源,您可跳过释放相关资源的操作,直接单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。