NodeJS无法加载凭据文件AWS

时间:2017-04-10 17:02:58

标签: json node.js amazon-web-services aws-sdk

这就是我的代码:

'use strict';

process.env.AWS_PROFILE

// Load the AWS SDK for Node.js
const AWS = require('aws-sdk');

// Create EC2 service object
var ec2 = new AWS.EC2({apiVersion: '2016-11-15'});

// Load credentials and set region from JSON file
AWS.config.loadFromPath('/Users/testuser/.aws/credentials');
// Load in security group parameters
const securityParams = require('./securityParams.json');

module.exports = {
    //Exports creation of Security Groups
    CreateSecurityGroup: (req, res) => {
        ec2.createSecurityGroup(securityParams, function(err, data) {
            if (err) {
                return (console.log("Error", err));
            }
            // Pass the Json as a parameter in this function
            ec2.authorizeSecurityGroupIngress(securityParams, function(err, data) {
                if (err) {
                    res.serverError(err, err.stack);
                } else {
                    res.ok(data);
                    console.log('Ingress Security Rules Created');
                }
            })
            // Pass the Json as a parameter in this function
            ec2.authorizeSecurityGroupEgress(securityParams, function(err, data) {
                if (err) {
                    res.serverError(err, err.stack);
                } else {
                    res.ok(data);
                    console.log('Egress Security Rules Created');
                }
            })
        })
    }
  }

我试图让脚本从两个文件加载配置;一个aws凭证文件和一个json。但是它在凭证文件上抛出错误,如下所示:

[default]
aws_access_key_id=**************
aws_secret_access_key**************

我不确定我是否错过了让它正确读取属性。

以下是我看到的错误:

undefined:1
[default]
 ^

SyntaxError: Unexpected token d in JSON at position 1
    at JSON.parse (<anonymous>)

1 个答案:

答案 0 :(得分:1)

凭据是一个普通的Ascii文件,它不是json文件

// Load credentials and set region from JSON file
AWS.config.loadFromPath('/Users/testuser/.aws/credentials');

您可以使用命令file /Users/testuser/.aws/credentials

检查文件类型

示例代码段,用于读取道具文件并设置AWS配置

var PropertiesReader = require('properties-reader');
var AWS = require('aws-sdk')
var properties = PropertiesReader('/Users/username/.aws/credentials');

AWS.config.update({
        accessKeyId : properties.get('aws_access_key_id'),
        secretAccessKey : properties.get('aws_secret_access_key'),
        region : 'us-west-2'
})

console.log(AWS.config)

价:https://www.npmjs.com/package/properties-reader