Как программно передать учетные данные aws и конфигурацию в aws sdk в nodejs? - PullRequest
0 голосов
/ 10 апреля 2019

Я создаю среду, которая позволяет пользователям запускать свой код nodejs. Это очень похоже на то, что делает Code Pen или runit. Если пользователям необходимо запускать код aws sdk в среде, я не знаю, как обращаться с их учетными данными и настройками. Я знаю, что в aws nodejs sdk есть метод config(), в который я могу передать всю конфигурацию. Но, как правило, учетные данные и конфигурации aws разработчиков сохраняются в файлах ~/.aws/credential и ~/.aws/config. Если я попрошу пользователей загрузить эти файлы в среду, как я могу преобразовать их в параметр, который может прочитать aws sdk? Есть ли простой способ сделать или мне нужно вручную разобрать эти файлы?

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Вы определенно не хотите сохранять свои учетные данные AWS в файле. Лучший способ сделать это - сохранить значения в переменной среды в среде, в которой будет работать ваше приложение. Если у вас установлены переменные окружения AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY, SDK автоматически загрузит их, и вам не нужно беспокоиться об этом в своем коде, как описано здесь: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html В зависимости от того, какие службы вы используете, эти значения могут быть уже установлены. В противном случае должно быть довольно легко создать пользователя или роль, у которых есть разрешения для любых операций, для которых вы используете SDK.

0 голосов
/ 10 апреля 2019

Вы можете сделать это так:

const AWS = require('aws-sdk');

// config.json
{"accessKeyId": <YOUR_ACCESS_KEY_ID>, "secretAccessKey": <YOUR_SECRET_ACCESS_KEY>, "region": "us-east-1" }


AWS.config.loadFromPath('./config.json');

Вы также можете сделать это так:

var AWS = require("aws-sdk");

AWS.config.update({
  region: "us-west-2",
  "accessKeyId": <YOUR_ACCESS_KEY_ID>, 
  "secretAccessKey": <YOUR_SECRET_ACCESS_KEY>
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...