You need to enable JavaScript to run this app.
导航
高代码应用创建部署指南
最近更新时间:2025.08.05 17:32:22首次发布时间:2024.09.19 14:22:19
复制全文
我的收藏
有用
有用
无用
无用

概述

本文将介绍如何完成火山方舟高代码应用的在线创建、部署、体验和修改全流程。
对于高代码应用的介绍请参考高代码产品使用说明--火山方舟大模型服务平台-火山引擎

方舟高代码应用基于veFaaS函数服务等多个云产品,提供了便捷的在线部署流程和生产级的运行环境。如无法满足需求,您也可以选择使用高代码应用sdk在本地或其他环境进行开发。

注意

高代码应用功能已对个人用户开放使用。如需使用,请完成实名认证

一、创建高代码应用

登录火山方舟控制台,访问“应用广场-创建应用-创建高代码应用”。
Image

1.1 权限获取

  • 进入高代码应用创建页时,您需具备高代码应用所需权限,将进行IAM权限校验。
  • 高代码在线部署依赖veFaaS函数服务,需要授权IAM角色SeverlessApplicationRole
  • 首次创建IAM角色需由主账号操作,如您登录的为子账号,可先点击 立即开通 ,并根据提示点击 复制信息 并发送给主账号管理员,由主账号管理员创建角色并对子账号授权。

Image

  • 如您登录的为主账号,且已完成企业认证,

    • 您可直接点击 立即开通,进行ServerlessApplicationRole授权。
    • 您也可请前往 访问控制- 角色管理 模块,进行空白角色服务新建,并在后续应用创建时,需根据提示添加权限。具体操作如下:
      1. 点击 新建角色
        Image

      2. 选择信任身份类型为「服务」,选择服务为「函数服务」,点击下一步。

      3. 角色名填写:ServerlessApplicationRole,其余均不填,点击下一步。

      4. 不选择策略,点击跳过,完成角色授权。

      5. 后续在高代码应用创建时,根据提示按需配置策略:CloudMonitorReadOnlyAccess,TLSFullAccess,VPCFullAccess,VeFaaSFullAccess,STSAssumeRoleAccess,APIGFullAccess

  • 完成授权后,将提示「IAM角色已授权」

Image

1.2云产品服务开通

  • 高代码应用在线部署依赖函数服务等多个云产品提供的服务,需要开通相关云产品。
  • 若存在未开通产品,可通过页面上的【立即开通】,在阅读相关协议文档后批量开通相关云产品。

Image

  • 若提示“已开通所有云服务”则代表已完成开通。

Image

1.3 创建高代码应用

填写应用名称等基础信息后,点击页面右上角“发布”按钮。
保存后即可通过【创建新函数】去部署高代码应用相关联的函数服务。
Image

二、部署高代码应用

选择应用原型为“示例”。然后完成“创建函数应用”页面的配置,进行高代码应用函数服务的创建部署。
Image

2.1 所需权限及产品开通

  • 若在创建高代码应用时完成了权限获取和云产品开通,应当已具备所需权限和服务。
  • 若IAM角色未授权或关联云服务未开通,请联系管理员进行授权或开通,可参考1.1 权限获取

2.2 选择推理接入点和API Key

Image

2.3 填写函数名称

填写函数名称等基础信息。

2.4 配置日志服务-Trace(可选)

启用 Trace 日志服务后,系统将自动采集您请求的 input 和 output 及各阶段耗时信息,并记录在您的日志服务中,便于后续运维和排查。

注意

启用 Trace 日志服务将可能产生额外费用,详见日志服务计费说明

选择启用“日志服务-Trace”后,需要填写API 访问密钥(AK/SK),可参考获取AK/SK
Image

2.5 选择触发器

为了在调用时触发执行函数,需要在创建函数时关联触发器,现为您提供以下类型触发器。
Image

触发器类型

目标群体

创建流程

调用流程

方舟触发器(推荐使用)

默认提供,面向无特殊要求的大部分群体。

创建高代码应用时选用方舟触发器,即可将函数服务关联到指定的高代码应用ID。

获取方舟长效/短效API key,调用时通过方舟统一域名+BotID,使用API key鉴权。

APIG触发器-API 网关服务

有独立部署网关需求
对信息传输安全性要求高,需要通过VPC保障数据安全。
对APIG、VPC了解深入,已有相关服务配套设施。

已有APIG:选择关联的APIG。确认部署应用后将创建关联的APIG触发器。
无APIG但有VPC:跳转到APIG控制台,创建好APIG后再关联。
无VPC:跳转到APIG控制台,创建好VPC和APIG后再关联。

获取有效期7天的jwt token,通过APIG调用,使用jwt token鉴权

2.6 确认部署

  • 完成以上内容的填写后,点击 确定 进行部署。

Image

  • 部署需耗时约数分钟,请耐心等候。页面上将展示部署日志,若部署失败可根据日志信息定位原因。
  • 部署成功后,可通过页面右上角按钮跳转到函数代码页编辑代码,或返回体验应用。

三、修改和体验高代码应用

完成部署后,您可根据业务需求对函数代码进行修改、更新、发布。

3.1 体验高代码应用和Trace追踪

等待应用完成部署,函数完成发布后,您就可以在高代码应用页面上和应用交互进行体验了。
Image
在体验中得到的回答,可以点击右侧的“调试按钮”,获取调试信息。
Image
您也可以参考下文修改优化高代码应用,让应用的表现更符合您的预期。

3.2 修改高代码应用

在高代码应用编辑页,点击“更新代码”进入函数代码管理页修改代码。
Image

方案一:在线编辑

Image

  • 您可在线进行代码修改,按照您的配置调整各插件参数,以进行效果和性能优化或实现业务逻辑。详见SDK说明文档
  • 完成编辑后,点击保存按钮保存代码,保存完成后可进行函数发布。

方案二:下载代码包编辑

代码包下载

您可在函数代码页下载最新版本服务对应的代码包。
Image

修改代码
  • 您可在本地IDE进行代码修改,按照您的配置调整插件参数,以进行效果和性能优化或实现业务逻辑。

详见SDK说明文档 应用SDK说明文档--火山方舟大模型服务平台-火山引擎

代码包上传和保存

将本地代码包打包为zip文件后,上传更新函数代码。
Image
Image
如线上预览耗时较久,可能是代码包较大。建议在本地预览后,上传到函数服务进行发布。

方案三:使用命令行工具编辑

可以联系我们获取 vefaas命令行工具使用说明文档 使用命令行工具,结合本地IDE进行代码编辑和发布等操作。

函数发布

  • 完成代码修改、上传、保存后,可根据需求进行全量发布/灰度发布,并配置函数版本

建议使用灰度发布,防止变更失误影响线上服务
Image

  • 灰度发布可配置比例

Image
可在函数详情-发布管理找到灰度发布的版本,并调整灰度比例直至全量发布。
Image
完成发布后,可点击对话测试返回
Image

3.3调用和鉴权

  • 方舟触发器
    • 如果您配置了方舟触发器,可通过 Bot API 接口调用,使用 API key鉴权。接口文档请参见 应用(bot) API
  • APIG 触发器
    • 如果您配置了 APIG 触发器,可通过您配置的 APIG 访问地址进行调用。调用时需使用 jwt token鉴权

四、添加MCP服务 (可选)

当前高代码应用已支持添加MCP服务,以下为具体操作指南:

4.1 创建应用并选择函数模版

  • 根据步骤一的指引创建高代码应用,并点击【创建新函数】,在随后弹出的原型应用选择弹窗中,选择【示例-大模型MCP应用】,点击确认

Image
Image

4.2 配置函数及MCP服务

  • 函数创建的基础配置请参照“步骤二”,例如权限及产品开通、推理接入点和API Key、触发器选择、日志服务-Trace等。
  • 下面为您详细介绍如何添加MCP服务:

Image
Image

  • 根据业务需求选择所需的MCP服务。前往 火山引擎大模型生态广场 生成专属的 JSON 配置信息。如需填写相关环境变量参数,可根据【详情】中的 Readme 进行获取。(注:Remote MCP 添加较为便捷,但生成的URL存在48小时有效期,如需长期使用建议选择 Local MCP 或 云部署MCP版本)

Image

  • 将生成的配置信息粘贴至MCP服务设置的config.json中,点击【确认并更新】。完成其他函数配置后,点击 【确定】 进行部署函数。

Image

  • 等待函数部署成功后,即可进行对话体验,并调用相应的MCP服务

Image

4.3 二次编辑MCP服务

  • 您可对MCP服务进行二次编辑,点击需要编辑的 MCP服务 或【添加更多MCP服务】按钮,操作流程同 4.2

Image

  • 完成编辑后,点击【确认并更新】,等待函数更新完成后,即可再次进行对话测试

Image

附:MCP Tool 的接入与配置

由于不同MCP Tool对Python版本及工具版本的依赖存在差异,且火山MCP Hub生态持续迭代,方舟高代码模板无法预先安装所有MCP工具及其依赖。因此,当用户需在模板中调用特定工具时,需在高代码对应的FaaS函数中手动完成依赖安装与配置更新。

前置条件

接入的MCP Tool需满足以下条件:

  1. 支持通过启动命令参数-t定义MCP Server的连接方式;
  2. 支持通过环境变量PORT定义MCP Server的部署端口;
  3. 该MCP Server的依赖与现有模板中requirements.txt的工具版本无冲突。

操作步骤

若满足前置条件(以mcp_server_vefaas_sandbox为例)

  1. 进入函数代码界面,下载完整代码包。
  1. requirements.txt中添加该工具依赖。
# ...其他requirement
mcp-server-vefaas-sandbox @ git+https://github.com/volcengine/mcp-server#subdirectory=server/mcp_server_vefaas_sandbox
  1. 更新mcp_servers_connection.json

available_mcp_servers对象中新增配置项"mcp-server-vefaas-sandbox",内容如下:

"mcp-server-vefaas-sandbox": {
  "transport": {
    "command": "-t"
  },
  "port": {
    "env": "8000"
  }
}
  1. 压缩代码包并上传至FaaS,完成依赖安装后发布。

若不满足前置条件(以mcp_server_rds_mysql为例)

若MCP Tool不满足前置条件(如mcp_server_rds_mysql通过环境变量MCP_SERVER_PORT定义端口,且依赖mcp[cli]>=1.10.0与现有环境冲突),需先修改MCP Server实现,参考方式如下:

  1. 将火山MCP Hub代码库 fork至个人仓库;

  2. 修改server/mcp_server_rds_mysql下的工具实现,使其满足前置条件:

    • 调整部署端口读取方式(适配PORT环境变量):
    mcp_server = FastMCP("rds_mysql_mcp_server", port=int(os.getenv("PORT", "8000")))
    
    • 更新依赖工具的版本,并确保版本变更不会影响工具的使用效果。若无法直接修改版本,请根据依赖冲突原因,调整高代码模板的 requirements.txt 以解决冲突。
    [project]
    name = "mcp-server-rds-mysql"
    version = "0.1.0"
    description = "MCP server for RDS MySQL"
    readme = "README.md"
    requires-python = ">=3.10"
    dependencies = [
        "mcp[cli]>=1.9.2", # 调整版本以解决冲突
        "volcengine-python-sdk>=3.0.1",
        "aiohttp>=3.11.14",
        "deprecated>=1.2.18",
    ]
    
    [project.scripts]
    mcp-server-rds-mysql = "mcp_server_rds_mysql.server:main"
    
    [build-system]
    requires = ["hatchling"]
    build-backend = "hatchling.build"
    
  3. 在模板的requirements.txt中添加个人仓库的依赖:

    # ...其他requirement
    mcp-server-vefaas-sandbox @ git+https://github.com/{你的github id}/mcp-server#subdirectory=server/mcp_server_vefaas_sandbox
    
  4. 后续请参考前文满足条件后的操作。

常见问题

发布后对话无内容或无法唤起工具

这种情况大多数是因为mcp server连接失败。可以前往faas实例 -> 资源管理,进入实例webshell中排查连接问题。可以参考下面的常用手段。

Step 1 查看 MCP Server 连接信息
执行以下命令查看所有 MCP Server 的连接配置:

cat /tmp/mcp_config/merged_mcp_servers_config.json

你可能会看到类似的信息:

{
    "mcpServers": {
        "mcp-server-rds-mysql": {
            "url": "http://localhost:7001/sse"
        },
        // 其他mcp server的连接信息
    }
}

请依次对这些 url 执行 curl 测试,确认 MCP Server 是否可访问。
Step 2 检查无法访问的 MCP Server
如果某个 url 无法访问,则说明对应的 MCP Server 启动失败
可以通过查看该 MCP Server 的启动日志来确认失败原因:

cat /tmp/{mcp_server_name}.err.out

例如:

cat /tmp/mcp-server-rds-mysql.err.out

相关参考