首页 > 解决方案 > 发生无服务器错误: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}/contributionpatientset/{id}/contribution,部署成功。

但这是我不需要的。我需要为每个函数定义正确的命名约定,以帮助识别id作为路径参数的函数所期望的类型。

我也尝试通过在此处找到的一些建议来解决相同的问题,但这也无济于事。如果有人可以帮助提供任何解决方案,这解释了无服务器的这种奇怪行为,非常感谢。

提前致谢。

标签: aws-lambdaparametersserverless

解决方案


  1. 检查任何处理程序的路径是否不重复
  2. 评论导致问题的部分并部署一次。然后取消注释然后部分,重新​​部署。它是 AWS 无服务器中的一个已知错误,我遇到了同样的问题,这个问题得到了解决。

推荐阅读