Вызов AWS Lambda Работает без тестирования, но не в потоке вызовов

#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, используемую потоком вызовов.