为啥 datadog lambda 检测返回“datadog-lambda-js/handler.handler 未定义或未导出”?
Posted
技术标签:
【中文标题】为啥 datadog lambda 检测返回“datadog-lambda-js/handler.handler 未定义或未导出”?【英文标题】:Why does datadog lambda instrumentation return a `datadog-lambda-js/handler.handler is undefined or not exported`?为什么 datadog lambda 检测返回“datadog-lambda-js/handler.handler 未定义或未导出”? 【发布时间】:2022-01-13 16:51:39 【问题描述】:Datadog AWS Lambda 工具对我来说似乎不可靠。每隔几次调用,我就会收到以下错误:
"errorType": "Runtime.HandlerNotFound",
"errorMessage": "/opt/nodejs/node_modules/datadog-lambda-js/handler.handler is undefined or not exported",
"stack": [
"Runtime.HandlerNotFound: /opt/nodejs/node_modules/datadog-lambda-js/handler.handler is undefined or not exported",
" at HandlerNotFound.ExtendedError [as constructor] (/opt/nodejs/node_modules/datadog-lambda-js/runtime/errors.js:113:28)",
" at new HandlerNotFound (/opt/nodejs/node_modules/datadog-lambda-js/runtime/errors.js:131:42)",
" at load (/opt/nodejs/node_modules/datadog-lambda-js/runtime/user-function.js:151:15)",
" at Object.<anonymous> (/opt/nodejs/node_modules/datadog-lambda-js/handler.js:65:59)",
" at Module._compile (internal/modules/cjs/loader.js:999:30)",
" at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)",
" at Module.load (internal/modules/cjs/loader.js:863:32)",
" at Function.Module._load (internal/modules/cjs/loader.js:708:14)",
" at Module.require (internal/modules/cjs/loader.js:887:19)",
" at require (internal/modules/cjs/helpers.js:74:18)"
]
要启动检测,我运行以下代码。
datadog-ci lambda instrument \
-f my-lambda-name \
-r my-region \
-v 50 -e 15 \
--service my-service \
--env my-env \
--version 1.0
知道我做错了什么吗?
【问题讨论】:
【参考方案1】:根据运行时环境,您应该指向不同版本的数据狗层扩展。
例如,Python 使用 -v 50 -e 15
,但 Node.js 处理程序应该使用不同的版本,-v 66 -e 16
。
所有这些都可以在文档中找到:https://docs.datadoghq.com/serverless/installation/nodejs/?tab=datadogcli
【讨论】:
以上是关于为啥 datadog lambda 检测返回“datadog-lambda-js/handler.handler 未定义或未导出”?的主要内容,如果未能解决你的问题,请参考以下文章
一个 lambda 的返回类型可以通过返回值来推断,那么为啥不能是一个函数呢?
为啥我的 AWS Lambda 脚本返回“实例”而不是实例 ID?
为啥 aws lambda 调用客户端错误地返回 ClientExecutionTimeoutException?