#amazon-web-services #aws-lambda #aws-dynamodb
Вопрос:
Итак, у меня есть настроенный AWS Lambda, и он успешно запускается, когда я использую объект события вызова для его запуска. Однако, когда я запускаю его в потоке вызовов, который у меня есть, я получаю ошибку 403. Что меня смущает в этом, так это то, почему он может вводить информацию в мою таблицу DynamoDB, когда она выполняется независимо от потока вызовов, но когда я запускаю ее в потоке вызовов, ей это не нравится? Я считаю, что у меня все разрешения настроены правильно.
Это политика IAM, которую я настроил для приведенной ниже лямбды.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"dynamodb:*",
"lambda:*"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "logs:CreateLogGroup",
"Resource": "arn:aws:logs:us-west-2:531698586584:*"
},
{
"Sid": "VisualEditor2",
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:us-west-2:531698586584:log-group:/aws/lambda/writeMessage:*"
}
]
}
Вот что я вижу в cloud watch:
{
"Results": "Status Code: 403; Error Code: AccessDeniedException; RequestId: 914f7a33-07d1-42bd-aad4-f6d93a1c624c",
"ContactId": "676acfe3-d343-40b5-95e3-5ed9587eb962",
"ContactFlowId": "arn:aws:connect:us-west-2:531698586584:instance/4a077dd8-53c1-4e29-8d49-5ca96f5e81c3/contact-flow/41b20716-4e74-45c5-8d82-eb1222509a02",
"ContactFlowName": "AWS VanityPhone Contact Flow",
"ContactFlowModuleType": "InvokeExternalResource",
"Timestamp": "2021-10-30T22:49:05.317Z",
"Parameters": {
"FunctionArn": "arn:aws:lambda:us-west-2:531698586584:function:vanity-phone-lambda",
"Parameters": {
"phoneNumber": ". 12154985656"
},
"TimeLimit": "3000"
}
}
Комментарии:
1. «ему это не нравится» — не является конкретным. Что именно происходит? Какие-нибудь ошибки? Каков ваш лямбда-код?
Ответ №1:
Я полагал, что это ваш поток вызовов, у которого нет правильного разрешения на вызов вашей лямбда-функции. Вероятно, вам следует добавить эту строку lambda:InvokeFunction
в роль IAM, используемую потоком вызовов.