Aws Lambda即使在将角色附加到具有AWSLambdaBasicExecutionRole的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',
文档写入:
执行角色为Lambda函数提供运行和调用其他web服务所需的凭据。因此,您不需要向在Lambda函数中编写的Node.js代码提供凭据。
所以我认为你应该重新思考一下你是如何编写node.js lambda函数的。