node.js - 使用 AWS SDK 加载凭证 JSON 结果出错

标签 node.js amazon-web-services amazon-ec2

我正在尝试使用 loadFromPath 加载 AWS 的凭证,但出现意外错误。使用 AWS.config.update 对相同的凭据进行硬编码工作正常。为了确保凭据文件的路径和格式正确,我用 fs.readFile 加载了相同的文件并且它加载正确,所以似乎没有任何路径/权限问题。这看起来非常基本,但我一直在努力解决问题。感谢您的帮助。

错误/输出:

    Here: /home/ec2-user/.ec2/credentials.json
    Got this through readFile: { access_id: 'XXXXXXX',
    private_key: 'XXXXXXX',
    keypair: 'praneethkey',
    'key-pair-file': '/home/ec2-user/.ec2/praneethkey.pem',
    region: 'us-west-2' }

    /home/ec2-user/node_modules/aws-sdk/lib/config.js:221
    if (err) throw err;
                   ^
  SyntaxError: Unexpected token <
    at Object.parse (native)
    at /home/ec2-user/node_modules/aws-sdk/lib/metadata_service.js:100:38
    at IncomingMessage.<anonymous> (/home/ec2-user/node_modules/aws-sdk/lib/metadata_service.js:75:43)
    at IncomingMessage.EventEmitter.emit (events.js:117:20)
    at _stream_readable.js:910:16
    at process._tickCallback (node.js:415:13)

代码:

'use strict';

var AWS = require('aws-sdk');
var fs = require('fs');

var pathv = process.env.HOME + '/.ec2/credentials.json';

AWS.config.loadFromPath(pathv);

console.log('Here: ' + pathv);


fs.readFile(pathv, 'utf8', function (err, data) {
  if (err) {
    console.log('Error: ' + err);
    return;
  }
  data = JSON.parse(data);

console.log("Got this through readFile:",data);

最佳答案

如果你有环境变量,你可以跳过凭证配置
AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY
AWS SDK 将默认读取这些变量

如果您仍然想从文件中加载凭证, 检查 credentials.json 是否具有有效的 JSON。

关于 http://aws.amazon.com/sdkfornodejs/应该是这样的

{ "accessKeyId": "akid", "secretAccessKey": "secret", "region": "us-west-2" }

好像你有 access_id 应该是 "accessKeyId"和 private_key 应该是 "secretAccessKey"

关于node.js - 使用 AWS SDK 加载凭证 JSON 结果出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18137780/

相关文章:

node.js - 如何在nodejs expressjs中将ipv6地址转换为ipv4地址?

angularjs - 事件.js :141 TypeError: Cannot read property 'send' of undefined

node.js - 无法在 macOS Catalina 上创建 MongoDB/data/db 目录

mysql - 在 MySQL 中存储 AWS ARN 的最佳数据类型?

python - Django 中的线程在生产环境中不起作用

amazon-web-services - AWS ELB 出现无法解释的延迟

java - AWS 自定义 CloudWatch 指标 - 按 Auto-Scaling 组聚合

Eclipse Nodejs vjet v8 调试

amazon-web-services - 使用 Elastic Beanstalk .ebextensions 指定 RDS 数据库

java - 如何使用 Java SDK 或 Amazon API 从 EC2 获取 IAM 角色列表?