首页 > 解决方案 > aws lambda 不使用角色获取凭证具有 AWSLambdaBasicExecutionRole 策略

问题描述

即使在将角色附加到具有 AWSLambdaBasicExecutionRole 的 lambda 之后,Aws Lambda 也不会获取凭证。我添加了更多日志以检查它是否尝试加载 SharedIniFileCredentials 但它没有。

代码

 start: async (startParams) => {
    logger.info(startParams);
    if (startParams === konstants.LOCAL_ENVIRONMENT) {
      logger.info('load credentials only for local');
      AWS.config.credentials = new AWS.SharedIniFileCredentials();
    }

日志

message: 'Missing credentials in config',
  errno: -2,
  syscall: 'open',
  code: 'CredentialsError',
  path: '/home/sbx_user1051/.aws/credentials',
  time: 2020-03-04T03:55:47.923Z,
  originalError:
   { message: 'Could not load credentials from SharedIniFileCredentials',
     errno: -2,
     syscall: 'open',

标签: amazon-web-servicesaws-lambda

解决方案


文档写道

执行角色为 Lambda 函数提供运行和调用其他 Web 服务所需的凭证。因此,您无需为您在 Lambda 函数中编写的 Node.js 代码提供凭证。

所以我认为你应该重新考虑如何编写你的 node.js lambda 函数。


推荐阅读