SuperAPI AI 工具集

dt-js-runtime

部署与运维

查看项目

更新于 10-16 08:22

技能介绍

Dynatrace JavaScript Runtime 是 Dynatrace 平台提供的服务端 AppEngine 沙箱,用于执行 JavaScript 或 TypeScript 代码。

用途 该运行时面向需要在 Dynatrace 服务端环境中运行自定义逻辑的场景,例如调用内部平台 API、访问外部 URL、使用 Dynatrace SDK 等。

函数契约 每个入口点必须导出一个默认的 async 函数,例如:

export default async function () { // ... return result; }

必须使用 ES module 语法。接受 TypeScript(类型注解、接口、泛型)。不支持其他导出形式。

参考文件 建议先从此处开始,然后仅加载所需的文件:

  • references/limits-and-restrictions.md:超时、内存、I/O 配额;禁止使用的功能(eval、WebSocket、socket、文件系统)。
  • references/apis-and-modules.md:可用的 Web API 和 Node.js 兼容模块(fetch、crypto、streams、buffer 等)。
  • references/fetch.md:调用内部 /platform/... API 或外部 URL、凭证保管库、出站允许列表。
  • references/sdk.md:任何 @dynatrace-sdk/* 包——索引会引导至对应的按 SDK 划分的文件。

使用 dtctl 运行函数 使用 dtctl exec function 可以在不部署应用的情况下运行 JS 运行时代码。

运行内联代码

dtctl exec function --code 'export default async function() { return "hello" }'

从文件运行

dtctl exec function -f script.js

传入 JSON 输入——解析后的对象作为函数的参数

dtctl exec function -f script.js --payload '{"key":"value"}'

函数可以接受一个可选参数。--payload 会被解析并直接作为该参数传入——它不会被包裹在 event.payload 字段中:

export default async function(payload) { // 使用 --payload '{"key":"value"}' 时,payload 为 {"key": "value"} return payload.key; }

如需了解身份验证设置、上下文切换以及完整的 exec function 参考,请加载 dynatrace-control 技能。

适用场景 适用于在 Dynatrace 服务端沙箱中执行 JavaScript/TypeScript 逻辑,包括调用内部平台 API、外部 URL、使用凭证保管库以及 @dynatrace-sdk/* 包。

限制 运行时存在超时、内存和 I/O 配额限制;禁止使用 eval、WebSocket、socket 和文件系统。其他具体限制暂未提供。