确定aws-sdk是否已配置全局凭据

时间:2016-01-27 13:35:32

标签: node.js config aws-sdk

根据AWS SDK config指南中提供的信息,有多种配置SDK的方法:

  1. 从Amazon EC2的IAM角色(如果在EC2上运行)加载,
  2. 从共享凭证文件(〜/ .aws / credentials)
  3. 加载
  4. 从环境变量中加载
  5. 从磁盘上的JSON文件加载
  6. 在您的应用程序中硬编码
  7. 有没有办法确定:

    a)如果SDK具有全局配置(凭据)和    b)如何加载/配置这些凭据/设置?

1 个答案:

答案 0 :(得分:5)

所以看来你可以查看config的CredentialProviderChain的credentialProvider对象。其resolve()方法返回AWS.Credentials的实例,该实例将标识用于配置凭据的方法。

示例如下:

AWS.config.credentialProvider.resolve(function(err, credential) {
   if(credential !== null) {
     awsCredential = credential.constructor.name;      
 })
 console.log("AWS configured? ", awsCredential ? 'yes'.green : 'no'.red);
 if(awsCredential) {
   console.log("    Provided by: ", awsCredential);
 }

特别注意到返回的credential通过credential.constructor.name显示其类名。

编辑:我现在将这篇文章写成比较使用callbacks to promises来实现相同目标的帖子 - 以防万一其他人遇到同样的问题。 < / p>