通过 lambda 函数测试旋转秘密时
While testing for Rotating secret through lambda function
这是我的 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_handler\n arn = event['SecretId']\n"
]
}
该函数需要 '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"}
您可能还会遇到其他类似的错误,您必须以相同的方式修复这些错误。
这可能是由于三个原因造成的:
- 机密管理器中的现有密码与数据库密码不匹配。(当 lambda 函数尝试验证数据库时,它应该与现有密码匹配,以便它可以验证和更新密码)。您可以找到以下 cloudwatch 日志:
[ERROR] 2022-03-03T12:05:24.178Z 1a39a205-36f5-XXXX-XXXX-XXXXXXX setSecret: Unable to log into database with previous, current, or pending secret of secret arn arn:aws:secretsmanager:eu-west-2:XXXXXXXXXXX:secret:XYZXXXXXXXXXXXXX
数据库安全组应该允许 lambda fn 访问数据库实例(创建一个以 lambda sg 作为源和数据库端口的入站规则)
验证您已连接到 secretsmanager api(您的 NAT 网关应有权访问 secrets manager api 端点)和服务名称为 [= 的端点32=].eu-west-2.secretsmanager / 端点类型接口
还要验证执行 lambda fn 的区域。
这是我的 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_handler\n arn = event['SecretId']\n"
]
}
该函数需要 '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"}
您可能还会遇到其他类似的错误,您必须以相同的方式修复这些错误。
这可能是由于三个原因造成的:
- 机密管理器中的现有密码与数据库密码不匹配。(当 lambda 函数尝试验证数据库时,它应该与现有密码匹配,以便它可以验证和更新密码)。您可以找到以下 cloudwatch 日志:
[ERROR] 2022-03-03T12:05:24.178Z 1a39a205-36f5-XXXX-XXXX-XXXXXXX setSecret: Unable to log into database with previous, current, or pending secret of secret arn arn:aws:secretsmanager:eu-west-2:XXXXXXXXXXX:secret:XYZXXXXXXXXXXXXX
数据库安全组应该允许 lambda fn 访问数据库实例(创建一个以 lambda sg 作为源和数据库端口的入站规则)
验证您已连接到 secretsmanager api(您的 NAT 网关应有权访问 secrets manager api 端点)和服务名称为 [= 的端点32=].eu-west-2.secretsmanager / 端点类型接口 还要验证执行 lambda fn 的区域。