使用无服务器时,我面临的最大挑战之一是如何以微服务的方式部署AWS Lambda函数(每个lambda单独--我已经尝试过单独的包,Webpack等等)。
我目前正在将我的无服务器应用程序分解成多个子服务器文件,并且我正在尝试引用一个主配置无服务器文件。我想继承整个对象树,这样我就不必一个一个地重新输入它们(另外,如果有变化,我可以在所有lambdas中传播它)。
以下是我目前的结构:
| serverless.yml
| lambda/
| /planning
| index.ts
| serverless.yml
| /generator
| index.ts
| serverless.yml
| /createStudents
| index.ts
| serverless.yml主无服务器文件的内容(为了简洁起见而提交):
## https://serverless.com/framework/docs/providers/aws/guide/serverless.yml/
service: backend-appsync
provider:
name: aws
stage: ${opt:stage, 'dev'}
runtime: nodejs10.x
region: us-east-2
## https://serverless.com/framework/docs/providers/aws/guide/iam/
## https://serverless.com/blog/abcs-of-iam-permissions/
iamRoleStatements:
- Effect: Allow
Action:
- "dynamodb:BatchGetItem"
- "dynamodb:BatchWriteItem"
- "dynamodb:ConditionCheckItem"
- "dynamodb:GetItem"
- "dynamodb:DeleteItem"
- "dynamodb:PutItem"
- "dynamodb:Query"
Resource: "arn:aws:dynamodb:us-east-2:747936726382:table/SchonDB"我想读取整个provider对象并将其插入到单个serverless.yml文件中。
示例:/lambda/planning/serverless.yml
service: "planning"
provider: ${file(../../serverless.yml):provider}
functions:
planning:
handler: ./index.handler
name: ${self:provider.stage}-planning
description: Handles the Planning of every teacher.
memorySize: 128我得到以下错误:
服务器无错误
指定的提供程序“对象”不存在。获得支持
您的环境信息.1.2组件CLI版本: 1.4.0
我想我可以参考整个财产。这个是可能的吗?我做错了什么?谢谢:)
发布于 2021-06-13 12:18:04
当从项目目录外部导入文件时,Serverless会崩溃。要解决这个问题,现在可以使用projectDir:
service: "planning"
projectDir: ../..
provider: ${file(../../serverless.yml):provider}
functions:
planning:
handler: ./index.handler
name: ${self:provider.stage}-planning
description: Handles the Planning of every teacher.
memorySize: 128https://stackoverflow.com/questions/59800426
复制相似问题