我的同事成功执行以下代码显示该表而未在本地环境中设置凭据,但是当我执行它时,它在我的本地计算机上显示此类错误。请帮忙。
请在下面找到我的代码:
控制器:
AWS.config.update({
region: 'localhost',
endpoint: new AWS.Endpoint('http://localhost:8008'),
})
var params = {
TableName: 'history',
KeySchema: [{
AttributeName: 'b_id',
KeyType: 'HASH'
},{
AttributeName: 'e_id',
KeyType: 'RANGE'
}],
AttributeDefinitions: [{
AttributeName: 'b_id',
AttributeType: 'S',
},{
AttributeName: 'e_id',
AttributeType: 'N',
}],
ProvisionedThroughput: { // required provisioned throughput for the table
ReadCapacityUnits: 1,
WriteCapacityUnits: 1,
},
}
response.implicitEnd = false
AWS.query('history',params, function(err, data){
if(err) console.log(err)
else response.json(data)
})
错误讯息:
{错误:连接EHOSTUNREACH 169.254.169.254:80 - Local()at _exceptionWithHostPort上的Object._errnoException(util.js:1022:11) (util.js:1044:20)at netConnect(net.js:971:16)net.js:1065:9 在_combinedTickCallback(内部/进程/ next_tick.js:131:7)at process._tickDomainCallback(internal / process / next_tick.js:218:9) 消息:'缺少配置中的凭据,代码:' CredentialsError', 错误:' EHOSTUNREACH',系统调用:'连接',地址:' 169.254.169.254', 端口:80,时间:2018-04-30T04:34:53.218Z,originalError:{message: '无法从任何提供商加载凭据',代码: ' CredentialsError',错误:' EHOSTUNREACH',系统调用:' connect', 地址:' 169.254.169.254',port:80,time:2018-04-30T04:34:53.218Z, originalError:{code:' EHOSTUNREACH',errno:' EHOSTUNREACH',syscall: ' connect',地址:' 169.254.169.254',port:80,message:' connect EHOSTUNREACH 169.254.169.254:80 - Local()' }}
> which python
/usr/bin/python
> pip install --upgrade pip
Requirement already up-to-date: pip in /Library/Python/2.7/site-packages (10.0.1)
metplotlib 1.3.1 requires nose, which is not installed.
matplotlib 1.3.1 requires tornado, which is not installed.
> pip --version
pip 10.0.1 from /Library/Python/2.7/site-packages/pip (python 2.7)
> echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
> python --version
Python 2.7.10
答案 0 :(得分:4)
这就是对我有用的
AWS.config.update({
region: 'us-east-1',
accessKeyId: 'xxxx',
secretAccessKey: 'xxxx',
endpoint: 'http://localhost:8000'
});
const dynamodb = new AWS.DynamoDB()
const dynamoDbClient = new AWS.DynamoDB.DocumentClient();
accessKeyId和secretAccessKey不必是真实值。
答案 1 :(得分:3)
配置完成后,AWS凭据将存储在本地配置文件中。对于Windows,可以在
找到该文件%UserProfile%\.aws\credentials
对于linux,可以在
找到该文件~/.aws/credentials
您需要提供此文件。安装AWS CLI。然后配置此文件在本地计算机上打开命令行并输入
aws configure
答案 2 :(得分:1)
虽然Stu告知了配置,但希望人们遇到与我试图将其用于localhost时所遇到的相同的问题。输入awscli aws configure
之后,因为它要求您提供访问ID和秘密访问ID,您必须至少输入一些内容才能使其正常工作(不能将其留空),以便它在{{{ 1}}目录,在我的情况下,我只是输入~/.aws
两个条目,然后a
和region:localhost
虽然我认为区域真的由你决定。请帮助改进我的答案,至少这对我有用,允许我继续在本地机器上使用DynamoDB