我想访问我保存在C:/Users/myusername/.aws中的AWS凭证
该文件称为凭据,没有任何扩展名,并且具有我的aws_access_key_id,aws_secret_access_key和aws_session_token

下面的代码在Windows 10 WSL上不起作用,产生错误:错误:连接ECONNREFUSED 169.254.169.254:80
    在TCPConnectWrap.afterConnect上[完成时](net.js:1121:14)

该代码在ubuntu上有效,其凭据保存在主目录的.aws文件夹中。

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

AWS.config.getCredentials(function (err) {

if (err) console.log(err.stack);
  // credentials not loaded
else {
  console.log("Access key:", AWS.config.credentials.accessKeyId);
  console.log("Secret access key:", AWS.config.credentials.secretAccessKey);
}


});

最佳答案

运行WSL时,C:\驱动器安装在/mnt/中。
要使用Windows路径crendentials中存储的C:\Users\myusername\.aws\文件,
您有两种选择:

1.使用环境变量

必须将环境变量AWS_SHARED_CREDENTIALS_FILE设置为credentials文件的路径。

在WSL中:

> export AWS_SHARED_CREDENTIALS_FILE="/mnt/c/Users/myusername/.aws/credentials"


2.使用符号链接

(感谢@ Michael-sqlbot)

在WSL中:

> ln -s /mnt/c/Users/myusername/.aws ~/.aws




现在,您的Node.js应用程序应该可以访问凭据了。

关于node.js - 在Windows 10 WSL上访问AWS凭证:错误:在TCPConnectWrap.afterConnect上连接ECONNREFUSED 169.254.169.254:80,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58411583/

10-09 18:22