如何以编程方式将AWS凭证和配置传递给NodeJS中的AWS开发工具包?

时间:2019-04-10 01:32:18

标签: node.js amazon-web-services

我正在构建一个环境,允许用户运行他们的nodejs代码。这与Code Penrunit的行为非常相似。如果用户需要在环境中运行aws sdk代码,我不知道如何处理其凭据和配置。我知道aws nodejs sdk有一个方法config(),我可以将所有配置都传入其中。但是通常开发人员aws凭证和配置都保存在~/.aws/credential~/.aws/config文件中。如果我要求用户将这些文件上传到环境中,如何将它们转换为aws sdk可以读取的参数?有简单的方法吗?还是我必须手动解析这些文件?

2 个答案:

答案 0 :(得分:0)

您可以这样做:

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>
});

答案 1 :(得分:0)

您绝对不想在文件中保存您的AWS凭证。更好的方法是将值保存在要运行应用程序的环境中的环境变量中。如果您设置了AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY环境变量,则SDK会自动加载它们,而您不必担心代码中的存在,如下所述:https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html在使用的服务上,可能已经设置了这些值。如果没有,创建一个对您使用SDK进行任何操作均具有权限的用户或角色应该很容易。