如何解决Lambda日志直传New Relic时回退CloudWatch的问题
New Relic Lambda Extension日志直传部署异常排查方案
告警对应根因方向
部署时出现的三个告警分别对应三个独立的配置问题,按以下步骤逐一修复即可:
- 插件加载顺序+密钥类型配置错误,导致扩展读不到校验用的License Key
- Lambda层重复定义,插件跳过自动注入
- New Relic侧未关联当前AWS账号,不满足直传前提
1. 修复密钥与插件加载顺序问题(解决License Key找不到告警)
- 首先明确密钥差异:你当前配置的
apiKey是New Relic用户级API Key,仅用于插件调用New Relic接口做账号校验,Lambda扩展做日志直传必须使用账号级Ingest License Key,两类密钥不能混用。 - 到New Relic控制台API管理页面,找到对应账号的
INGEST-LICENSE类型密钥,存入AWS SSM参数存储后,在custom.newRelic配置块下新增licenseKey字段,指向该SSM参数,不要复用用户API Key。 - 调整插件加载顺序:Serverless框架按plugins数组的顺序从上到下执行插件逻辑,你当前把
serverless-ssm-fetch放在New Relic插件后面,New Relic插件执行校验时SSM参数还没拉取完成,自然读不到密钥值,调整顺序如下:
plugins: - serverless-python-requirements - serverless-ssm-fetch # 优先加载,先完成SSM参数拉取替换 - serverless-newrelic-lambda-layers
2. 处理Lambda层重复注入问题(解决层跳过告警)
- 检查配置里的
provider.layers块,如果你之前手动给全局/对应函数加过New Relic Lambda层,二选一处理即可:- 删掉手动配置的New Relic层,让插件自动注入匹配当前区域、运行时的官方对应版本层,避免版本不兼容
- 保留手动配置的层,在
custom.newRelic块下添加autoAddLayers: false关闭插件的自动层注入逻辑
- 如果没有手动配置过New Relic层,排查其他已加载的插件是否提前注入了同名层,排除冲突后该告警会自动消失。
3. 完成账号关联配置(解决无集成关系告警)
- Lambda Extension日志直传模式要求提前在New Relic控制台完成AWS账号集成关联,给New Relic授权对应Lambda、CloudWatch Logs的相关权限,否则插件检测不到绑定关系会自动回退到CloudWatch拉取日志的模式。
- 核对配置项:
linkedAccount的名称必须和New Relic控制台已关联的AWS账号名称完全一致(注意大小写、特殊字符、前后空格),accountId填写New Relic账号ID,不要和AWS账号ID填混。
生效验证
配置调整完成后重新执行部署,确认部署阶段不再出现上述三个告警后,到Lambda控制台查看函数环境变量,确认NEW_RELIC_LICENSE_KEY已正确注入;调用一次测试函数后到New Relic日志页查看,若日志源标注为Lambda Extension直传而非CloudWatch转发,即为配置生效。
内容的提问来源于stack exchange,提问作者Captain
相关产品推荐
相关产品推荐

