首页 > 解决方案 > AWS Lambda 到 AWS Lambda 权限

问题描述

尝试使用 AWS 文档中的 lambda.invoke 方法。但是,在尝试对此进行测试时,我遇到了权限问题。

无论如何可以指导我如何设置这些权限?

var aws = require('aws-sdk');
var lambda = new aws.Lambda({
  region: 'us-west-2' //change to your region
});

lambda.invoke({
  FunctionName: 'lambda_function',
  Payload: JSON.stringify('hello world') // pass params
}, function(error, data) {
  if (error) {
    context.done('error', error);
  }
  if(data.Payload){
   context.succeed(data.Payload)
  }
});

使用这些文档http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html

标签: javascriptnode.jsamazon-web-servicespermissionsaws-lambda

解决方案


您需要向调用者 Lambda 函数提供调用另一个函数的权限,您的调用
者函数将需要一个 IAM 策略,例如 -

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Lambda permission",
      "Action": [
        "lambda:InvokeFunction"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:lambda:awsRegion:awsAccountId:function:functionName"
    }
  ]
}

如果您从本地调用您的函数,
您的 AWS 凭证将需要相同的访问权限


推荐阅读