【问题标题】:Unable to use Dynamodb locally with Node 18.13.0无法通过 Node 18.13.0 在本地使用 Dynamodb
【发布时间】:2023-01-30 20:28:40
【问题描述】:

我有一个我不明白的问题。对于节点 18.13.0,我无法在本地使用 Dynamodb。

我总是收到此错误: "message": "UnknownEndpoint: Inaccessible host: localhost' at port 8005'。此服务可能在 `localhost' 区域不可用。", “类型”:0

但是对于节点 16 我没有问题。 这是我可以给你的所有信息,我在 Ventura 13.1(也在 windows 11)上的 mac(m1)上。

无服务器版本:

  • 框架核心:3.27.0(本地)3.27.0(全局)
  • 插件:6.2.3
  • SDK:4.3.2

这是我的 serverless.yml:

service: hydradis-planning-delivery
provider:
  name: aws
functions:
  - '${file(routes.yml)}'
plugins:
  - serverless-plugin-typescript
  - serverless-offline
  - serverless-dynamodb-local
custom:
  dynamodb:
    start:
      port: 8005
  serverless-offline:
    httpPort: 3005
    lambdaPort: 3015

这是我的连接:

var dynamoDbCreation = new AWS.DynamoDB({
region: 'localhost',
endpoint: ('http://localhost:8005')
});

你能帮助我吗?

【问题讨论】:

  • 你启动 DynamoDB Local 了吗? netstat 或等价物是否显示它正在侦听端口 8005?
  • 是的 DynamoDB 在本地运行
  • 默认情况下,AWS Lambda node.18x 运行时不使用 AWS SDK 2.0。所以 DynamoDB 代码可能在那里出错了。您有 2 个选项,安装 2.0 aws sdk。或者重写代码支持3.0。 docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index.html
  • 不知道为什么,昨天有个回复给出了答案。如果我用 127.0.0.1 替换区域字段中的本地主机,它就可以工作。无论如何感谢您提供的信息。

标签: node.js amazon-web-services amazon-dynamodb serverless


【解决方案1】:

您不应使用文字字符串 localhost 作为区域,而应使用端点:

var dynamoDbCreation = new AWS.DynamoDB({
region: 'http://127.0.0.1:8005',
endpoint: ('http://localhost:8005')
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多