【问题标题】:DynamoDB tables created with NodeJS not displayed in AWS Explorer使用 NodeJS 创建的 DynamoDB 表未显示在 AWS Explorer 中
【发布时间】:2016-05-20 15:35:39
【问题描述】:

我正在编写使用 VS2015 从 dynamodb 表中读取数据的 aws lambda 函数。 我在 AWS 开发工具包附带的 VS 中的 AWS 资源管理器中创建了几个表。 奇怪的是我在节点 js 代码中看不到这些表。 当我使用节点 js 创建表时也会发生同样的事情:AWS 资源管理器不显示它们,但是 ARN 是相似的:arn:aws:dynamodb:ddblocal:000000000:table/TABLENAME 并且表状态为 ACTIVE。 这是我的配置:

AWS.config.update({
    accessKeyId: "someId",
    secretAccessKey: "someKey",
    endpoint: "http://localhost:10000"
});

有什么办法吗?

【问题讨论】:

  • AWS 区域呢?
  • 我没有具体说明。在本地部署 db 时我应该提供一些特殊值吗?

标签: .net node.js amazon-web-services visual-studio-2015 amazon-dynamodb


【解决方案1】:

您的表格 ARN:

arn:aws:dynamodb:ddblocal:000000000:table/TABLENAME

和nodejs配置:

AWS.config.update({
    accessKeyId: "someId",
    secretAccessKey: "someKey",
    endpoint: "http://localhost:10000"
});

似乎表明您的 nodejs 代码正在使用本地部署的 DynamoDB 服务器,而不是 AWS 托管的服务器。

很可能,您的 AWS Explorer 正在查看特定区域中的 DynamoDB,而不是查看您的本地服务器。

确保在 AWS Explorer 中,您的区域设置为“本地 (localhost)”。

请注意,在将 Lambda 代码上传到 AWS 之前,您需要修改配置以使用真实区域。

【讨论】:

  • 在 AWS Explorer 中选择本地 (localhost) 区域并显示两个表,这是我从 Explorer 和 C# 创建的,但没有从 NodeJS 代码创建的表。
【解决方案2】:

我假设你没有在本地运行 dynamodb(http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html)

Dynamodb 作为服务支持区域,您最好指定它。

但如果您想继续使用端点,请从此处提供的值中选择一个:

http://docs.aws.amazon.com/general/latest/gr/rande.html#ddb_region

【讨论】:

    【解决方案3】:

    好的,我设法让它从 Node 和 AWS Explorer 中引用同一个数据库。 Key Id 和 Access Key 是制作配置文件,在使用 AWS Explorer 和 Node 时应该相同。 在本地运行 DB 时,使用下一个格式的 db name:KEYID_REGION.db 这就是为什么需要提供有效设置的原因。 在未提供区域设置的 Node JS 中,使用默认区域,即“us-west-1”。如果提供了区域,并且从代码中访问了数据库,则将使用提供的区域名称创建另一个数据库。 但是,有一点:默认情况下,AWS Explorer 中的本地区域似乎只支持“us-east-1”区域,因此如果您在另一个本地区域中创建表,您将不会在 Explorer 中看到这些表。

    【讨论】:

      猜你喜欢
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      相关资源
      最近更新 更多