参数中缺少必需的键 'Bucket'

Missing required key 'Bucket' in params

我正在尝试将一个简单的 lambda 函数部署到 aws,但我收到错误 参数 中缺少必需的密钥 'Bucket'。 我创建的用户具有完整的 Lambda、S3、Cloudformation 和 Cloudwatch 访问权限。

JS

'use strict';

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

当 IAM 用户权限在 "sls deploy" 的 运行 之间更改或一开始不正确时,我经常遇到此错误。

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

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

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

已讨论 here