使用Lambda轮转AWS Secrets Manager密钥时出现SecretId KeyError问题
报错原因
- 你使用的AWS Secrets Manager官方轮转Lambda模板,约定了触发事件中存储密钥ARN的键名为
SecretId,你手动传入的测试事件里使用了自定义的arn作为键名,代码读取不存在的SecretId字段时触发KeyError。 - 除此之外你传入的事件里的
token、step字段也不符合模板约定的规范键名,修复完第一个问题后还会触发对应KeyError。
解决方案
优先调整测试事件字段和官方规范对齐,无需修改Lambda模板代码,调整后的测试事件格式如下:
{ "SecretId": "填写对应Secret的ARN", "ClientRequestToken": "任意32位随机字符串", "Step": "testsecret" }
注:AWS Secrets Manager正式触发密钥轮转时,会自动生成符合上述规范的事件参数,无需手动构造,仅手动测试时需要对齐字段命名。
如果确实需要兼容自定义的事件字段,可以修改Lambda代码的取值逻辑,示例如下:
# 将原有 arn = event['SecretId'] 替换为以下逻辑 arn = event.get('SecretId') or event.get('arn') token = event.get('ClientRequestToken') or event.get('token') step = event.get('Step') or event.get('step')
该方式不推荐使用,会破坏模板和官方轮转服务的原生兼容性。
内容的提问来源于stack exchange,提问作者Gulshan
相关产品推荐
相关产品推荐

