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 和文件系统。其他具体限制暂未提供。