Amazon Lambda调用错误

时间:2015-04-17 13:01:03

标签: php amazon-web-services aws-lambda

我需要从php调用我的Amazon Lambda函数,但是当我拥有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

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:5)

您应该授予您的PHP代码调用Lambda函数的权限(否则每个人都可以调用您的代码......)。

您需要使用正确的权限创建角色,并确保您的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>"
            ]
        }
    ]
}