aws-lambda - 发生无服务器错误:ApiGatewayResourcePatientsetPidVar - 此资源的同级 ({id})
问题描述
我是 Lambda 计算和 AWS 的新手。我正在尝试使用 Lambda 设置 REST API 服务。我的处理程序在我的serverless.yml
文件中定义了三个不同的函数,如下所示:
functions:
users:
handler: handler.users
events:
- http:
path: users
method: get
cors: true
integration: lambda
stats:
handler: handler.Stats
events:
- http:
path: users/{id}/stats
method: get
cors: true
integration: lambda
contribution:
handler: handler.contribution
events:
- http:
path: patientset/{pid}/contribution
method: get
cors: true
integration: lambda
当我部署它时,它会抛出一个错误:
Serverless Error ---------------------------------------
An error occurred: ApiGatewayResourcePatientsetPidVar - A sibling ({id}) of this resource already has a variable path part -- only one is allowed (Service: AmazonApiGateway; Status Code: 400; Error Code: BadRequestException; Request ID: f4047858-b52d-4721-b0a2-069a59254e6b; Proxy: null).
所以为了测试它,我将函数的路径contribution
从更改patientset/{pid}/contribution
为patientset/{id}/contribution
,部署成功。
但这是我不需要的。我需要为每个函数定义正确的命名约定,以帮助识别id
作为路径参数的函数所期望的类型。
我也尝试通过在此处找到的一些建议来解决相同的问题,但这也无济于事。如果有人可以帮助提供任何解决方案,这解释了无服务器的这种奇怪行为,非常感谢。
提前致谢。
解决方案
- 检查任何处理程序的路径是否不重复
- 评论导致问题的部分并部署一次。然后取消注释然后部分,重新部署。它是 AWS 无服务器中的一个已知错误,我遇到了同样的问题,这个问题得到了解决。
推荐阅读
- nestjs - 无法从 mongoose 对象中去除 _id
- c# - 范围 Neo4j 驱动程序和会话对象
- c# - 如何在 Update 方法中修改 Start 方法变量:Unity
- gnuplot - 用 gnuplot 拟合 sinc 函数
- git - 如何使两个文件免受“都添加”的合并冲突?
- c++ - 做一些计数器操作,我该如何做,如果 setCounter() 没有参数,计数器为零?
- python - 如何在使用 python 写入 XML 文件时保留 XML 版本和注释?
- azure - 在 Azure Durable Functions Orchestator 中使用异步辅助函数是否安全?
- angular - 我想通过事件发射器为我的 html 输入设置值,并且在提交表单时这些值没有绑定。如何解决问题?
- c - 添加一段正常工作的代码时出现分段错误