aws:使用 systemd 时配置中缺少凭据
aws: missing credentials in config when using systemd
我正在尝试将小型 Node.js 服务器部署到 AWS 上的 Linux EC2。此服务器使用 AWS JavaScript SDK。 ~/.aws/credentials
和 ~/.aws/config
已正确填写。当我通过 node index.js
或 npm start
运行 服务器时,一切正常,但如果我 运行 使用 systemd
,我得到以下响应:
{ message: 'Could not load credentials from any providers',
retryable: false,
time: 2018-07-23T20:12:59.057Z,
code: 'CredentialsError' }
对于某些系统,当 运行 来自服务时,~ 会变成 /。这意味着路径是/.aws/credentials。对于您的系统,请尝试将“~/.aws”复制到“/root/.aws”。然后尝试复制到“/.aws”。其中之一会起作用。
您还可以使用 json 文件并在创建客户端时指定该文件。
创建文件“/mysite/aws_config.json”,内容如下:
{
"accessKeyId": "YOUR_ACCESS_KEY_ID",
"secretAccessKey": "YOUR_SECRET_ACCESS_KEY",
"region": "YOUR_REGION"
}
然后使用此语句加载凭据:
AWS.config.loadFromPath('/mysite/aws_config.json');
这样您就可以将站点的配置保存在一个目录中。
指定凭据的方法有很多种。 node.js SDK 的 AWS 文档还有很多。
我正在尝试将小型 Node.js 服务器部署到 AWS 上的 Linux EC2。此服务器使用 AWS JavaScript SDK。 ~/.aws/credentials
和 ~/.aws/config
已正确填写。当我通过 node index.js
或 npm start
运行 服务器时,一切正常,但如果我 运行 使用 systemd
,我得到以下响应:
{ message: 'Could not load credentials from any providers',
retryable: false,
time: 2018-07-23T20:12:59.057Z,
code: 'CredentialsError' }
对于某些系统,当 运行 来自服务时,~ 会变成 /。这意味着路径是/.aws/credentials。对于您的系统,请尝试将“~/.aws”复制到“/root/.aws”。然后尝试复制到“/.aws”。其中之一会起作用。
您还可以使用 json 文件并在创建客户端时指定该文件。
创建文件“/mysite/aws_config.json”,内容如下:
{
"accessKeyId": "YOUR_ACCESS_KEY_ID",
"secretAccessKey": "YOUR_SECRET_ACCESS_KEY",
"region": "YOUR_REGION"
}
然后使用此语句加载凭据:
AWS.config.loadFromPath('/mysite/aws_config.json');
这样您就可以将站点的配置保存在一个目录中。
指定凭据的方法有很多种。 node.js SDK 的 AWS 文档还有很多。