Лямбда-служба выдает ошибку выполнения роли, не имеет разрешений для вызова receiveMessage на SQS - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть очередь SQS, и я хочу вызвать лямбда-функцию, когда в очередь приходит сообщение.Я написал лямбда-функцию, и она успешно работает, когда я нажимаю кнопку «Тест».Когда я иду в SQS и пытаюсь настроить его как лямбда-триггер, я вижу сообщение об ошибке ниже.

Я создал очередь и лямбда-функцию SQS, используя одного и того же пользователя и роль, и лямбда-функция имеет разрешения на выполнение для той же роли.

Я также добавил разрешение SQS receiveMessage, но это некажется, не имеет значения, если я не делаю что-то не так, когда я его установил.

Что может быть причиной проблемы?

Спасибо за любую помощь

enter image description here

1 Ответ

1 голос
/ 02 апреля 2019
  • Привет, насколько я понимаю, ваша лямбда нуждается в следующем разрешении aws docks
  • Надеюсь, его нет в VPC.

    aws_lambda_permission

  • Или, возможно, включите режим бога на sqs:* только для проверки.

  • Если это сработает, может быть, позже вы можете перейти только к определенным методам. Прикрепленная политика для лямбда-роли, вам может потребоваться изменить account_number для вашей учетной записи no, если вам нужно вызвать другую лямбда-форму из этой лямбды

    {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:eu-west-2:account_number:function:*"
        },
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents",
                "logs:CreateLogStream",
                "logs:CreateLogGroup"
            ],
            "Resource": "*"
        },
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "sqs:*"
            ],
            "Resource": "*"
        }
    ]
    

    }

...