我正在构建一个环境,允许用户运行他们的nodejs代码。这与Code Pen
或runit
的行为非常相似。如果用户需要在环境中运行aws sdk代码,我不知道如何处理其凭据和配置。我知道aws nodejs sdk有一个方法config()
,我可以将所有配置都传入其中。但是通常开发人员aws凭证和配置都保存在~/.aws/credential
和~/.aws/config
文件中。如果我要求用户将这些文件上传到环境中,如何将它们转换为aws sdk可以读取的参数?有简单的方法吗?还是我必须手动解析这些文件?
答案 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_ID
和AWS_SECRET_ACCESS_KEY
环境变量,则SDK会自动加载它们,而您不必担心代码中的存在,如下所述:https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html在使用的服务上,可能已经设置了这些值。如果没有,创建一个对您使用SDK进行任何操作均具有权限的用户或角色应该很容易。