这是我的lambda函数(https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/blob/master/SecretsManagerRotationTemplate/lambda_function.py)当我测试时
{"arn":"writing arn from secret",
"token":"any random 32 digit number",
"step":"testsecret"}
给出错误
"errorMessage": "'SecretId'",
"errorType": "KeyError",
"requestId": "########",
"stackTrace": [
" File "/var/task/lambda_function.py", line 24, in lambda_handlern arn = event['SecretId']n"
]
}
发生这种情况可能有三个原因:
- 机密管理器中的现有密码与数据库密码不匹配。(当lambda函数尝试对数据库进行身份验证时,它应该和现有密码相匹配,以便进行身份验证和更新密码(。您可以找到如下cloudwatch日志:
[错误]2022-03-03T12:05:24.178Z 1a39a205-36f5-XXXX-XXXXXXXXX setSecret:无法使用secret arn arn:aws:secretsmanager:eu-west-2:XXXXXXXXXX:secret:XYZXXXXXXXXXXX 的以前、当前或挂起的机密登录数据库
-
数据库安全组应允许lambda fn访问数据库实例(创建一个以lambda sg为源和数据库端口的ingbound规则(
-
验证您是否连接到secretsmanager api(您的NAT网关应该可以访问secretsmaanager api端点(和服务名称为com.amazonaws.eu-west-2.secretsmanger/端点类型接口的端点,还验证执行lambda fn的区域。
函数需要'SecretId' in the event
,但当前的event
没有:
{"arn":"writing arn from secret",
"token":"any random 32 digit number",
"step":"testsecret"}
猜测arn
应该是SecretId
:
{"SecretId":"writing arn from secret",
"token":"any random 32 digit number",
"step":"testsecret"}
你可能会有其他类似的错误,你必须以同样的方式修复。