使用NodeJS创建的DynamoDB表未显示在AWS Explorer中

时间:2016-05-20 15:35:39

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

我正在编写aws lambda函数,它使用VS2015从dynamodb表中读取数据。 我在AWS SDK附带的AWS中的AWS explorer中创建了几个表。 奇怪的是,我没有在节点js代码中看到这些表。 当我使用节点js创建表时会发生同样的事情:AWS explorer不会显示它们,但是ARN类似:arn:aws:dynamodb:ddblocal:000000000:table / TABLENAME 和表状态是ACTIVE。 这是我的配置:

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

任何解决方案?

3 个答案:

答案 0 :(得分:0)

我假设您没有运行dynamodb local(http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html

Dynamodb作为服务支持区域,理想情况下应指定。

但是如果你想继续使用端点,请从这里可用的值中选择一个:

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

答案 1 :(得分:0)

你的桌子ARN:

  

ARN:AWS:dynamodb:ddblocal:000000000:表/ TABLENAME

和nodejs配置:

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

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

最有可能的是,您的AWS Explorer正在查看特定区域的DynamoDB,并且它没有查看您的本地服务器。

在AWS资源管理器中确保您的区域设置为" Local(localhost)"。

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

答案 2 :(得分:0)

好的,我设法让它从Node和AWS Explorer引用相同的数据库。 密钥ID和访问密钥是make profile,在使用AWS Explorer和Node时应该是相同的。 在本地运行DB时,将使用db name的下一格式:KEYID_REGION.db 这就是为什么提供有效设置是必要的。 在Node JS中,当没有提供区域设置时,使用默认区域,即' us-west-1'。如果提供了region,并且从代码访问了db,则将使用提供的区域名称创建另一个db。 但是,有一件事:默认情况下,AWS Explorer中的本地区域似乎仅支持' us-east-1' region,所以如果你在另一个本地区域创建表,你就不会在资源管理器中看到这些表。