You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在action内部调用其他action?相关示例及实现方法咨询

Action调用相关问题解答

1. Action内部调用其他Action的示例

主流无服务器平台均支持在Action内部调用同租户/命名空间下的其他Action,相比外部调用不需要走公网,时延更低、权限默认继承也更安全。
以下是Node.js runtime下的调用示例:

// 平台会自动注入SDK实例和当前上下文参数,不需要手动初始化鉴权
const main = async (params) => {
  // 调用同命名空间下名为anotherAction的Action
  const invokeRes = await ow.actions.invoke({
    name: "anotherAction",
    // 传入给被调用Action的参数
    params: {
      payload: params.rawData,
      timestamp: Date.now()
    },
    // blocking设为true为同步调用,等待被调用Action返回结果;设为false为异步触发,不需要等待返回
    blocking: true
  })
  return {
    code: 200,
    data: invokeRes.response.result
  }
}

其他语言runtime的逻辑一致,引入对应平台的官方SDK,调用内置的Action调用方法即可。

2. 编程调用Action的入手路径

  • 优先使用对应平台的官方SDK:SDK已经封装了签名、鉴权、重试、异常处理等逻辑,只需要传入Action名称、调用参数、调用模式即可完成调用,开发成本最低。
  • 如果有自定义场景无法使用SDK,再选择直接调用REST API实现。
  • 调用前需要确认当前账号/进程持有对应Action的调用权限,避免出现权限拒绝错误。

3. REST API调用说明

所有Action操作都可以通过REST API实现,通用的调用请求结构如下:
POST /api/v1/namespaces/{你的命名空间名称}/actions/{目标Action名称}?blocking=true&result=true

api-host规则

api-host是对应平台的服务接入地址,不同部署场景取值不同:

  • 私有化部署场景:就是你部署平台时配置的API网关域名,或者IP+端口
  • 公有云服务场景:对应云厂商的官方无服务器服务接入域名,直接使用平台提供的固定值即可
    调用时需要在请求头携带Authorization: Bearer {你的账号认证令牌},请求体为JSON格式的传入参数。

内容的提问来源于stack exchange,提问作者Philippe Tjon-A-Hen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:54:07