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

运行AWS Lambda实现S3自动打标签时出现Bad handler错误如何解决?

AWS Lambda S3标签工具问题排查

错误根因与修复

你遇到的Runtime.MalformedHandlerName错误和你怀疑的get_user_tags没有关系,是Lambda入口配置格式错误导致的:

Response { "errorMessage": "Bad handler 'resource-auto-tagger-main/source/resource-auto-tagger': not enough values to unpack (expected 2, got 1)", "errorType": "Runtime.MalformedHandlerName", "stackTrace": []}

Lambda要求处理程序配置必须遵循[路径.]文件名.入口函数名的格式,你当前填写的配置只有路径和文件名,缺少入口函数名,所以系统解析失败。
修复步骤:

  • 确认你的代码文件名为resource-auto-tagger.py,代码中定义的入口函数为lambda_handler
  • 打开Lambda控制台「运行时设置」,将处理程序的值修改为source.resource-auto-tagger.lambda_handler(路径用.分隔,不要用/)

代码其他待修复问题

你的代码目前还有多处问题需要调整才能正常运行:

  1. 缺少依赖导入
    在代码最开头补充导入语句:
import boto3
import json
import re
import botocore
  1. 未定义函数调用
    代码中调用了get_role_tags(role_name),但你没有实现这个函数,运行时会报NameError,要么补充该函数的实现,要么删除相关逻辑。
  2. 变量未定义错误
    get_user_tags函数的错误日志中打印了未传入的resource_id变量,运行会报错,删除该打印行或者将resource_id改为函数入参。
  3. 功能与需求不匹配
    当前代码是为EC2实例打标签的逻辑,完全没有处理S3对象的相关代码,要实现给S3最新上传对象打标签的需求,你还需要做以下修改:
  • 将Lambda触发方式改为S3存储桶的「对象创建事件」
  • 新增从事件中解析S3桶名、对象键的逻辑
  • 替换EC2打标签的逻辑为S3的put_object_tagging接口调用

内容的提问来源于stack exchange,提问作者user 01072021

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 09:36:00