确定aws-sdk是否configuration了全局凭据

从AWS SDKconfiguration指南中提供的信息中,有多种configurationSDK的方法:

  1. 从Amazon EC2的IAMangular色加载(如果在EC2上运行),
  2. 从共享凭证文件(〜/ .aws / credentials)加载,
  3. 从环境variables加载,
  4. 从磁盘上的JSON文件加载,
  5. 硬编码在您的应用程序中

有没有办法确定:

a)如果SDK具有全局configuration(证书)和b)如何加载/configuration这些证书/设置?

所以看起来你可以看看configuration的凭证提供者对象这是一个CredentialProviderChain 。 它的resolve()方法返回一个AWS.Credentials实例,该实例将标识哪个方法用于configuration凭证。

示例如下:

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显示其类名。

编辑:我现在写这篇文章比较使用callback和承诺实现相同的目标,以防万一遇到同样的问题。