【发布时间】:2020-12-06 22:44:19
【问题描述】:
所以我对 CloudFormation 和无服务器框架都很陌生。我一直在尝试完成一些练习(例如自动缩略图生成器),然后创建一些简单的项目,我希望这些项目可以概括为我自己的目的。
现在我正在尝试创建一个堆栈/函数,它创建两个 S3 存储桶,并让 Lambda 函数从一个 CSV 文件中获取一个,执行一些简单的转换,然后将其放入另一个接收存储桶中。
在尝试建立我所做的练习时,我创建了一个包含以下代码的 Yaml 文件:
provider:
name: aws
runtime: python3.8
region: us-east-1
profile: serverless-admin
timeout: 10
memorySize: 128
iamRoleStatements:
- Effect: "Allow"
Action:
- "s3:*"
Resource: "*"
custom:
assets:
targets:
- bucket1: csvbucket1-08-16-2020
pythonRequirements:
dockerizePip: true
- bucket2: csvbucket2-08-16-2020
pythonRequirements:
dockerizePip: true
functions:
protomodel-readcsv:
handler: handler.readindata
events:
s3:
- bucket: ${self:custom.bucket1}
event: s3:ObjectCreated:*
suffix: .csv
- bucket: ${self:custom.bucket2}
plugins:
- serverless-python-requirements
- serverless-s3-deploy
但是,当我从命令提示符执行无服务器部署时,我得到:
Serverless Warning --------------------------------------
A valid service attribute to satisfy the declaration 'self:custom.bucket1' could not be found.
Serverless Warning --------------------------------------
A valid service attribute to satisfy the declaration 'self:custom.bucket2' could not be found.
Serverless Error ---------------------------------------
Events for "protomodel-readcsv" must be an array, not an object
我试图通过添加一个 - 在 protohandler-readcsv: 中创建事件对象,但随后我得到一个糟糕的缩进错误,由于某种原因我无法协调。但是,更根本的是,我不确定为什么该项目无论如何都需要是一个数组,而且我也不清楚桶的警告。
很抱歉有一个关于这个的新手问题,但是在线运行教程/示例在尝试概括/自定义这些示例时需要尝试解决很多问题。
【问题讨论】:
标签: amazon-s3 aws-lambda yaml amazon-cloudformation serverless-framework