使用AI助手生成网关插件

更新时间:

本实验带您体验在云上使用云原生API网关的AI助手生成网关自定义wasm插件,以及将生成的插件配置在网关上,并验证插件的功能生效。

场景简介

本实验带您体验在云上使用云原生API网关的AI助手生成网关自定义wasm插件,以及将生成的插件配置在网关上,并验证插件的功能生效。

背景知识

本场景主要涉及以下云产品和服务:

前提条件

本实验需要您使用阿里云账号开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。

重要

如果领取相关云产品免费试用,本实验2个小时预计产生费用0元。如果没有领取相关云产品免费试用,本实验2个小时预计产生费用3.87元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。

进入实操前,请确保阿里云账号满足以下条件:

  • 已通过实名认证并且账户余额充足。

  • 云资源产生的费用需您自行承担,云起实验室不会向您征收额外费用。

  • 所有实验操作将保留至您的账号,请谨慎操作。

  • 实操结束后,您可以选择继续付费保留资源,或参考手册自动/手动释放资源。

创建专有网络VPC和交换机

  1. 在实验室页面右侧的操作区中,我已阅读并同意《阿里云云起实践平台服务协议》,单击开始实操

    image

  2. 登录专有网络管理控制台

  3. 在左侧导航栏中,单击专有网络

    image

  4. 专有网络页⾯,切换⾄华东1(杭州)地域,单击创建专有网络

    image

  5. 创建专有网络页⾯,根据下方说明配置专有网络(VPC)和交换机的参数,未提及的参数保持默认即可,然后单击确定

    配置项

    说明

    专有网络

    地域

    选择华东1(杭州)。

    名称

    自定义名称。

    IPv4网段

    选择手动输入IPv4地址段。

    输入IPv4网段

    输入192.168.0.0/16

    IPv6网段

    选择不分配。

    交换机

    名称

    自定义名称。

    可用区

    选择杭州可用区H。

    IPv4网段

    设置为192.168.0.0/24

    image

    image

  6. 创建专有网络页面,您可查看到创建的专有网络VPC和交换机的ID实例名称等信息。

    image

创建云原生API网关

  1. 领取免费试用云原生API网关。

    重要
    • 如果您的阿里云账号有领取云原生API网关免费试用资格,请您根据下方操作进行领取。免费试用额度700元,可用于抵扣网关实例规格、公网/私网数据处理量费用。超出权益额度部分将自动按量付费计费。收费标准请参见计费概述

    • 如果您的阿里云账号已领取过或没有云原生API网关免费试用资格,请您跳过此步骤,直接创建云原生API网关,并会产生一定的费用,详情请参见计费概述

    1. 前往免费试用云原生API网关

    2. 在免费试用中心页面,单击云原生API网关卡片中的立即试用

      image

    3. 云原生API网关面板,根据下方说明配置参数,未提及的参数保持默认即可,单击立即试用

      配置项

      说明

      地域

      选择华东1(杭州)。

      网关名称

      自定义名称。

      网关规格

      apigw.small.x1

      网络访问类型

      选择公网。

      专有网络

      选择之前创建的专有网络。

      可用区选择

      选择自动分配。

      交换机

      选择之前创建的交换机。

      日志服务

      勾选使用日志服务(SLS)。

      服务关联角色

      确认所有服务角色均已授权,若有未授权的,请根据页面提示进行授权。

      image

      image

    4. 免费试用申请完成,前往云原生API网关实例页面,当刚刚创建的网关实例的运行状态变为运行中时,表明网关实例创建完成。

      image

  2. 创建云原生API网关。

    重要

    如果您已根据上一步领取免费试用云原生API网关实例,请跳过此步骤,无需重复创建云原生API网关实例。

    1. 登录云原生API网关控制台

    2. 在左侧导航栏中,单击实例

      image

    3. 实例页面,单击创建实例

      image

    4. 创建云原生API网关页⾯,根据下方说明配置参数,未提及的参数保持默认即可,然后单击立即购买

      配置项

      说明

      商品类型

      选择按量付费。

      地域

      选择华东1(杭州)。

      网关名称

      自定义名称。

      网关规格

      apigw.small.x1

      网络访问类型

      选择公网。

      专有网络

      选择之前创建的专有网络。

      可用区选择

      选择自动分配。

      交换机

      选择之前创建的交换机。

      日志服务

      勾选使用日志服务(SLS)。

      服务关联角色

      确认所有服务角色均已授权,若有未授权的,请根据页面提示进行授权。

      image

      image

    5. 确认订单页面,确认信息无误后,单击立即开通

      image

    6. 返回至云原生API网关控制台,在实例页面,单击image图标,刷新页面。

      image

    7. 实例页面,当刚刚创建的网关实例的运行状态变为运行中时,表明网关实例创建完成。

      image

使用AI助手生成网关插件代码

在云原生API网关中可以使用多种语言(C++/Rust/Go/JS)编写网关功能扩展插件,实现例如请求/响应处理,特定应答返回,业务日志记录等功能。使用AI助手可以辅助生成网关插件代码,帮助用户快速上手网关插件开发。

  1. 在云原生网关控制台的左侧导航栏中,单击插件

    image

  2. 插件页面,单击WebIDE编写插件。

    image

  3. WebIDE编写插件面板,插件编写方式选择AI助手辅助生成,在插件要求框中填写如下内容,单击开始生成

    当请求path中包含swagger.html字符时,拦截请求,返回403状态码,并发送响应:access denied

    image

  4. 在插件开始生成之后,页面右下角会显示插件编写进度,请您耐心等待进度完成。当页面右下角显示插件已生成,请点击详情查看时,单击查看详情

    image

  5. 等待WebIDE初始化完成后,单击main.go文件,可以查看AI编写的代码。

    image

完成wasm插件编译和导出并发布自定义插件

WebIDE中完成插件编译,并导出插件发布为自定义插件。

  1. 打开VS Code命令面板。

    • Windows 和 Linux:

      快捷键:Ctrl + Shift + P。

    • macOS:

      快捷键:Cmd + Shift + P。

  2. VS Code命令面板,输入higress后,单击Higress 插件: Build命令。

    image

  3. 大概需要等待2分钟左右,VS Code右下角会显示插件构建成功,在目录中可查看到输出文件main.wasm文件。

    image

  4. WebIDE编写插件面板,单击右上角的导出WASM文件,将main.wasm文件下载到本地。

    image

  5. 在弹出的对话框中,单击确认

    image

  6. 关闭WebIDE编写插件面板,返回到插件页面,单击发布插件

    说明

    退出WebIDE时不会自动保存代码,需要自行保存,后续如果要修改代码,可以打开WebIDE将代码粘贴进去再重新编译

    image

  7. 发布插件面板,根据下方说明配置参数,未提交的参数保持默认即可,单击上传

    配置项

    说明

    选择语言

    选择TinyGo。

    插件表示

    自定义设置插件的英文标识(唯一标识)。

    插件名称

    自定义设置插件的中文名称。

    版本描述

    填写插件的版本描述信息。

    WASM文件

    上传前述步骤中下载到本地的main.wasm文件。

    执行阶段

    选择默认阶段。

    更多关于执行阶段信息,详情请参见上传插件

    执行优先级

    填写100。

    更多关于执行优先级信息,详情请参见上传插件

    适配网关版本

    选择任意版本。

    image

    image

  8. 插件页面的左侧快捷导航区域中,单击自定义,找到您创建的插件,请您耐心等待插件上传成功。

    image

开启插件,验证插件功能

等待插件上传成功后,选择之前创建的网关实例安装插件,并配置开启,验证插件功能。

  1. 安装并开启插件

    1. 插件页面,找到您创建的插件,单击卡片中的安装

      image

    2. 安装插件面板,选择创建的网关实例,单击确定

      image

    3. 配置页签,找到目标网关实例,单击其右侧操作列下的规则配置

      image

    4. 规则配置面板,选择实例级插件规则,将启用状态设置为打开,单击保存

      image

  2. 创建并调试HTTP API,验证插件功能。

    1. 关闭规则配置面板,在左侧导航栏中,单击API

      image

    2. API页面,单击HTTP API卡片上的创建

      说明

      如果您的云原生API网关当前已经存在其他API,请在全部API页签单击创建API后,再单击HTTP API卡片上的创建

      image

    3. 创建HTTP API面板,自定义API名称,单击确定

      image

    4. 全部API页签,找到创建的API,单击API名称

      image

    5. API详情页面,单击创建路由

      image

    6. 创建路由面板,根据下方说明配置参数,未提及的参数保存默认即可,然后单击保存并发布

      配置项

      说明

      路由名称

      自定义路由名称。

      路径

      选择前缀是,然后输入/swagger

      所属实例

      选择创建的云原生API网关实例。

      使用场景

      选择Mock。

      image

    7. API详情页面,找到创建的路由,单击其右侧操作列下的调试

      image

    8. 路由调试面板,路径填写为/swagger.html,单击发送请求

      image返回如下结果,可以查看到发送请求后返回的响应信息为access denied,状态码为403,表明我们创建的自定义插件拦截了path中包含swagger.html字符的请求。

      image

清理资源

  • 在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除相关资源后,再结束实操,否则资源会持续运行产生费用。

    • 删除云原生API网关实例、AI API和插件。

      1. 登录云原生API网关控制台

      2. 在左侧导航栏中,单击实例

        image

      3. 实例页面顶部菜单栏中,地域切换至华东1(杭州),然后找到目标实例,选择其右侧操作列下的更多 > 释放实例

        image

      4. 释放网关实例对话框中,输入网关实例名称,单击确定

        image

      5. 在左侧导航栏中,单击API

        image

      6. 全部API页签,找到目标API,单击右侧操作列下的删除

        image

      7. 在弹出的对话框中,输入API名称,单击删除

        image

      8. 在左侧导航栏中,单击插件

        image

      9. 插件页面,找到您创建的插件,选择卡片中的image图标 > 删除插件

        image

      10. 在弹出的对话框中,单击确认

        image

    • 删除VPC及交换机。

      1. 登录专有网络

      2. 专有网络页面顶部菜单栏中,地域切换至华东1(杭州)找到目标VPC,单击其右侧操作列下的删除

        image

      3. 删除专有网络对话框中,勾选强制删除,单击确定

        image

    • 删除相关资源后,单击结束实操。在结束实操对话框中,单击确定

      image

  • 在完成实验后,如果需要继续使用资源,您可跳过释放相关资源的操作,直接单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。

    image