amazon-web-services - 使用无服务器向同一个网关 API 添加新的 lambda 函数?
问题描述
我正在开发多个功能,我们将使用这些功能来管理 S3 存储桶中的图像。我试图弄清楚如何使用无服务器用户将各种 node.js 脚本部署到 lambda 并且到目前为止已经弄清楚了那部分。但我想将它们全部部署为同一网关 API 下的不同路径。我尝试在提供程序部分下添加“apiName”,但它只是创建了一个与第一个名称相同的新 GatewayAPI。
示例 serverless.yml:
service: GetObjectInfo
frameworkVersion: ">=1.1.0"
custom:
region: us-east-2
provider:
name: aws
runtime: nodejs8.10
region: ${self:custom.region}
stage: ${opt:stage, 'dev'}
apiName: myGatewayAPI
memorySize: 256
timeout: 2
role: arn:aws:iam::118934906513:role/lambda-s3-role
functions:
GetObjectInfo:
name: GetObjectInfo
handler: index.handler
events:
- http:
path: /GetObjectInfo
method: POST
cors: true
environment:
REGION: ${self:custom.region}
package:
exclude:
- package-lock.json
- test/**
- .idea/**
- .git/**
- node_modules
我该怎么做才能让他们将网关部分部署到同一个网关接口中?出于维护目的,我更喜欢将 lambda 代码保存在单独的项目/git 文件夹中。
解决方案
我认为无服务器框架默认在同一个 API 网关下创建所有功能。
例如以下应该工作:
custom:
region: us-east-2
provider:
name: aws
runtime: nodejs8.10
region: ${self:custom.region}
stage: ${opt:stage, 'dev'}
memorySize: 256
timeout: 2
role: arn:aws:iam::118934906513:role/lambda-s3-role
functions:
GetObjectInfo:
name: GetObjectInfo
handler: index.handler
events:
- http:
path: /GetObjectInfo
method: POST
cors: true
environment:
REGION: ${self:custom.region}
PutObjectInfo:
name: PutObjectInfo
handler: index.handlerPut
events:
- http:
path: /PutObjectInfo
method: PUT
cors: true
environment:
REGION: ${self:custom.region}
推荐阅读
- python - 调用初始化的 tf.keras.Model 在模型内的 Dropout 层上给出尺寸不匹配
- linux - 无法在 Amazon Linux 2 机器上安装 libsasl2-devel
- php - 仅在登录后才允许访问文件(htaccess?)
- python - matplotlib:顺序 plt.savefig 问题
- jquery - 根据数组中列出的 ID 对两列中的 Div 进行排序
- batch-file - 批处理命令获取一个txt名称,然后在变量中设置该txt的第一个单词
- r - R 找不到函数 .complete_args()
- python - 我怎样才能在自己内部重复这个 numpy 数组?
- python - Python:如何更新散景补丁字段?
- ngxs - 状态失效更新选择器