首页 > 解决方案 > NodeJS AWS Lambda无服务器代理通过参数获取 - 放大

问题描述

我正在尝试使用无服务器快速代理应用程序向 lambda 发出请求。我使用放大 CLI 和为 lambda 选择的 CRUD 操作构建快速应用程序。

除了大量生成的代码之外,我还得到了这一行:

const hashKeyPath = '/:' + partitionKeyName;

然后将其添加到这样的 url app.get

app.get(path + hashKeyPath, function (req, res) {
  res.json({
    data: JSON.stringify(req.params),
    dekor: JSON.stringify(
      req.apiGateway.event.requestContext.identity.cognitoIdentityId
    ),
  });

现在的问题是我的参数现在以冒号字符为前缀,:如下所示: https ://xxxxx.execute-api.eu-west-1.amazonaws.com/dev/address/:eu-west-1:xxx-8718 -42b9-b8b8-ce82e9d9e7a0
看到这个冒号字符/address/和值之间。我无法摆脱它。hashKeyPath如果我在尝试调用 api 网关时从我得到 404 中删除冒号字符。但是我需要参数的值不带冒号字符,当我这样做时,我确实得到了这个req.params:eu-west-1:xxx-8718-42b9-b8b8-ce82e9d9e7a0而不是eu-west-1:xxx-8718-42b9-b8b8-ce82e9d9e7a0dynamoDB 中需要的分区值,但是由于前面的冒号,我没有从 dynamoDB 获得任何值。我该如何解决这个问题,所以路径在没有 hashKeyPath 的冒号字符的情况下工作?

标签: amazon-web-servicesaws-lambdaaws-amplify

解决方案


推荐阅读