gpt4 book ai didi

javascript - 在不同文件中配置 AWS 时出现 ConfigError(本地使用 DynamoDB)

转载 作者:行者123 更新时间:2023-12-03 04:32:39 32 4
gpt4 key购买 nike

我尝试通过在单独的文件中配置 AWS 来将 DynamoDB 与 Alexa SDK 结合使用。

我已经通过在index.js内配置AWS来测试我的Alexa技能是否有效。 :

const Alexa = require("alexa-sdk");
const AWS = require("aws-sdk");
setupDynamoDB();

// my code ...

function setupDynamoDB (alexa) {
AWS.config.update({
region: 'us-east-1',
endpoint: 'http://localhost:8000'
});
}

我认为如果我创建 setupDynamoDB() 会更漂亮在其他地方运行并导入它,所以我尝试了。

index.js:

const Alexa = require("alexa-sdk");
const AWS = require("./dynamodb").setupDynamo();

dynamodb.js:

const AWS = require("aws-sdk");

module.exports = {
setupDynamo: function (alexa) {
AWS.config.update({
region: 'us-east-1',
endpoint: 'http://localhost:8000'
});
}
return AWS;
};

即使有 return声明我的技能似乎无法访问该表,这很奇怪,因为(至少对我来说)我似乎正在定义一个已经配置的 AWS 对象,而不是运行两步过程(定义 AWS 然后配置)。

我正在使用bespoken-tools proxy 来测试技能,我得到的错误消息是:

get error: {
"message": "Missing region in config",
"code": "ConfigError",
"time": "2017-04-15T08:38:55.858Z"
}

我还没有尝试过这是否适用于 Alexa Simulator,因为我的目标是使其适用于 bst反正。我还尝试利用 Alexa SDK 对 DynamoDB 的内置支持,从而简化配置过程(我能找到的几乎所有其他资源都在创建 DynamoDB 对象,但我不打算这样做) .

我在这里做错了什么?我能想到的唯一解释是,返回的 AWS 对象与我定义并调用 setupDynamoDB()本应返回的对象不同。 index.js内...但我不明白为什么会这样。

<小时/>

编辑:我找到了解决办法,但我不确定这是否是预期的行为。基本上,return荷兰国际集团AWS对象不起作用,但声明 return荷兰国际集团Alexa对象确实如此。请参阅下面的代码。

index.js:

const Alexa = require("./dynamodb").setupDynamo();

dynamodb.js:

exports.setupDynamo = function (alexa) {
const AWS = require("aws-sdk");
AWS.config.update({
region: "us-east-1",
endpoint: "http://localhost:8000"
});
const Alexa = require("alexa-sdk");
return Alexa
};

本质上,AWS 的更新配置return 后对象丢失编辑。这是预期的行为吗?

最佳答案

我认为问题在于您的调用顺序。如果您在调用 require('alexa-sdk') 之前调用 setupDynamo,那么它应该可以工作。

alexa-sdk 立即开始使用 Dynamo,因此需要首先完成任何配置更改。

关于javascript - 在不同文件中配置 AWS 时出现 ConfigError(本地使用 DynamoDB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43424192/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com