Ошибка вызова Amazon Lambda

Мне нужно вызвать функцию Amazon Lambda из php, но я получаю странную ошибку в правах при наличии прав AWSLambdaFullAccess.
Мой код:

$client = LambdaClient::factory(array(
'key' => 'AKI...G',
'secret' => 'VXD...YOse',
'region' => 'us-west-2'
));
$result = $client->invokeAsync(array(
'FunctionName' => 'arn:aws:lambda:us-west-2:180...52:function:fe...st',
'InvokeArgs' => json_encode($array),
));

Это ошибка:

User: arn:aws:iam::69...67:user/developer is not authorized to
perform: lambda:InvokeFunction on resource:
arn:aws:lambda:us-west-2:180...52:function:fe...st

Есть идеи? Спасибо

4

Решение

Вы должны дать своему PHP-коду разрешение на вызов вашей лямбда-функции (в противном случае каждый сможет вызвать ваш код …).

Вам нужно создать роль с правильным разрешением и убедиться, что ваш PHP-код выполняет эту роль (для примеров с ролями Cognito или EC2).

Роль должна включать что-то вроде:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1234567890",
"Effect": "Allow",
"Action": [
"lambda:InvokeFunction"],
"Resource": [
"arn:aws:lambda:us-west-2:<YOUR-ACOUNT-ID>:function:<YOUR-FUNCTION-NAME>"]
}
]
}
5

Другие решения

Других решений пока нет …