亚马逊 Lambda 调用错误
Amazon Lambda invocation error
我需要从 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
有什么想法吗?谢谢
您应该授予 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>"
]
}
]
}
我需要从 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
有什么想法吗?谢谢
您应该授予 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>"
]
}
]
}