我打算在本地测试我的AWS资源。我发现了一个非常不错的docker映像,其中几乎包含所有可用的服务,并且可以用于本地测试。 DynamoDB的服务之一不起作用。这也是我的应用程序。
我在Google上搜索了很多,但找不到根本原因。根据我的docker容器日志。下面是日志。
1111 1111 1111 1111 1111 1111 1111 1111
2018-07-30T12:49:17:ERROR:localstack.services.generic_proxy:错误转发请求:预期的字符串或缓冲区回溯(最近一次调用最近): 文件“ /opt/code/localstack/localstack/services/generic_proxy.py”,向前181行 路径=路径,数据=数据,标头= forward_headers) 文件“ /opt/code/localstack/localstack/services/dynamodb/dynamodb_listener.py”,第35行,forward_request TypeError:预期的字符串或缓冲区
答案 0 :(得分:0)
我认为您使用的端口错误。答案可以在localstack的问题列表中找到:https://github.com/localstack/localstack/issues/675
localstack中的DynamoDB的GUI在端口4564上运行。运行以下命令,然后您就可以在localhost:4564 / shell上访问GUI
docker run -d -p 4569:4569 -p 4564:4564 localstack/localstack:latest
连接代码
const dynamoose = require('dynamoose');
const AWS = require('aws-sdk');
dynamoose.local('http://localhost:4569');
dynamoose.AWS.config.update({
region: 'us-east-1',
});
const Purchase = dynamoose.model('test', {
test: {
type: String,
hashKey: true,
}
}, {
update: true,
});