我正在构建一个允许用户运行其nodejs代码的环境。它非常像Code Pen
或runit
。如果用户需要在环境中运行aws sdk代码,我不知道如何处理他们的凭据和配置。我知道aws nodejs sdk有一个方法config()
我可以通过所有配置。但通常开发人员aws凭据和配置保存在~/.aws/credential
和~/.aws/config
文件中。如果我要求用户将这些文件上传到环境中,如何将它们转换为参数可以通过aws sdk读取?有没有简单的方法或我必须手动解析这些文件?
你可以这样做:
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>
});
您绝对不想将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的任何操作具有权限的用户或角色应该非常容易。