Chargement des informations d'identification de JSON avec AWS SDK Résultats dans l'Erreur
Je suis en train de charger les informations d'identification pour AWS avec loadFromPath et d'obtenir une erreur inattendue. Coder en dur les mêmes informations d'identification avec AWS.config.mise à jour fonctionne très bien. Assurez-vous que le chemin d'accès et le format des informations d'identification de fichier est correct, j'ai chargé le même avec fs.readFile et il se charge correctement, donc il ne semble pas être tout chemin /problèmes d'autorisations. Cela semble super basique, mais j'ai été tirant mes cheveux à essayer de résoudre. Merci pour votre aide.
L'erreur /de sortie:
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)
Le code:
'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);
- Quel est le fichier json ressembler?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez passer à la configuration des informations d'identification, si vous avez l'env de vars
AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY
Le kit SDK AWS lire ces revendeurs à valeur ajoutée par défaut
Si vous voulez toujours aller avec le chargement des informations d'identification à partir d'un fichier,
vérifiez que les informations d'identification.json a JSON valide.
Concernant http://aws.amazon.com/sdkfornodejs/ doit être quelque chose comme
Semble que vous ayez access_id où il devrait être "accessKeyId" et private_key où il devrait être "secretAccessKey"
env | grep AWS
Trouvé la réponse à cette question. Pour une étrange raison, Amazon utilise différents noms de champs pour les informations d'identification du Nœud vs d'autres cadres (par exemple, Ruby).
En Ruby, juste les deux premiers éléments sont:
Tandis que dans Node.js ces mêmes éléments sont:
Changé les noms dans les informations d'identification JSON pour le dernier et l'erreur a disparu. Pourquoi ne pourrait-elle pas être la même?