无法使用 serverless.yml 创建 Lambda 和 Bucket

Can't create a Lambda and Bucket using serverless.yml

我正在尝试使用无服务器框架创建一个基本的 lambda 和一个 S3 存储桶。我从这个 post 中截取了一小段代码:

# serverless.yml

service: MyTest
provider:
  name: aws
  runtime: python3.7
resources:
  Resources:
    Bucket:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: MyBucket12345
    MyFunc:
      Type: AWS::Lambda::Function
      Properties:
        Handler: handler.MyFunc


# handler.py

def MyFunc(event, context):
    print(event)

输出:

Serverless: Packaging service...
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
CloudFormation - CREATE_IN_PROGRESS - AWS::CloudFormation::Stack - MyTest-dev
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_COMPLETE - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::BucketPolicy - ServerlessDeploymentBucketPolicy
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::BucketPolicy - ServerlessDeploymentBucketPolicy
CloudFormation - CREATE_COMPLETE - AWS::S3::BucketPolicy - ServerlessDeploymentBucketPolicy
CloudFormation - CREATE_COMPLETE - AWS::CloudFormation::Stack - MyTest-dev
Serverless: Stack create finished...
Serverless: Uploading CloudFormation file to S3...

  Type Error ---------------------------------------------

  TypeError: Cannot set property 'S3Key' of undefined

根据评论。

provided in the question showcases a CloudFormation (CFN) template, not serverless framework template。两者虽有相似之处,但有不同.

问题中的代码混合了 CFN 和无服务器模板,这使得它无法在两个系统中工作。

因此,要解决此问题,您必须检查并找到 examples 无服务器框架模板,而不是 CFN。然后将当前模板修改为有效的无服务器模板。