如何以编程方式将aws凭据和配置传递给节点js中的aws sdk?

问题描述 投票:0回答:2

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

node.js amazon-web-services
2个回答
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>
});

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的任何操作具有权限的用户或角色应该非常容易。

© www.soinside.com 2019 - 2024. All rights reserved.