Согласно документации AWS Lambda, функция Lambda, написанная в Node, будет использовать учетные данные роли IAM, назначенной этой функции.То же самое верно для функций, написанных на Python.Я написал функцию в Node, и она получает неавторизованную ошибку.Та же функция в Python, используя ту же конфигурацию, работает.Я использую официальный AWS SDK в обоих случаях.
Тот факт, что он работает в Python, а не в Node, говорит мне, что это не проблема конфигурации.Если жесткие коды вводят в функцию Node, она работает, поэтому я знаю, что логика функции работает.
Есть идеи?
Код, который сейчас работает (но не вчера!)
// Load the AWS SDK for Node.js
const AWS = require('aws-sdk');
exports.handler = async (event) => {
const EC2 = new AWS.EC2();
var instanceId = "i-xxxxxxxxxxx";
var params = {
InstanceIds: [instanceId],
DryRun: false
};
var response = {
status: 200
};
try {
const startInstance = await EC2.startInstances(params, function(err, data) {
if (err) {
console.log("error: " + err.code);
response.status = 403;
response.error = err.code;
} else if (data) {
console.log(data);
response.instanceInfo = data;
}
}).promise();
} catch(err) {
console.log(err.code);
}
return response;
};