在参数中缺少必需的键“ Bucket”

时间:2018-08-07 10:45:38

标签: amazon-s3 aws-lambda serverless

我正在尝试向aws部署一个简单的lambda函数,但出现错误在参数中缺少所需的键“ Bucket” 。 我创建的用户具有完全的Lambda,S3,Cloudformation和Cloudwatch访问权限。

JS

“严格使用”;

module.exports.hello = (event, context, callback) => {
  const response = {
    statusCode: 200,
    body: JSON.stringify({
      message: 'Go Serverless v1.0! Your function executed successfully!',
      input: event,
    }),
  };

  callback(null, response);

  // Use this code if you don't use the http event with the LAMBDA-PROXY integration
  // callback(null, { message: 'Go Serverless v1.0! Your function executed successfully!', event });
};

YAML

service: lambda-demo

provider:
  name: aws
  runtime: nodejs6.10

functions:
  hello:
    handler: handler.hello

2 个答案:

答案 0 :(得分:4)

在“ sls deploy”的运行之间更改IAM用户权限或开始时不正确时,通常会遇到此错误。

最佳做法是转到AWS控制台-> CloudFormation并检查CloudFormation事件日志以查看发生了什么。如果日志显示权限错误,请修复权限,删除从控制台创建的堆栈Serverless,然后再次运行“ sls deploy”。

答案 1 :(得分:3)

在控制台中删除堆栈并再次部署堆栈通常会有所帮助。

如果这不帮助尝试使用新名称部署堆栈(如果使用无服务器框架,请在“ service:”之后更改名称)。

讨论过here