У меня есть проблема, которую я не могу решить сама.Моя лямбда-функция работает как положено, когда вызывается локально, но не отправляет текстовое сообщение при вызове из AWS Lambda.Также не регистрируется никаких ошибок.
Вот мой код, я только пометил приватный материал:
import request from 'request';
import AWS from "aws-sdk";
const options = {***};
const sentAlert = async msg => {
const sns = new AWS.SNS();
await sns.publish({
Message: msg,
PhoneNumber: '***',
MessageAttributes: {
'AWS.SNS.SMS.SenderID': {
'DataType': 'String',
'StringValue': '***'
}
}
}, function (err, data) {
if (err) {
console.log(err.stack);
return;
}
});
console.log('sms sent');
};
export const getAlert = async (event, context, callback) => {
request(options, (err, res, body) => {
if (err) { return console.log('error: ', err); }
if (body.length === 0 ) { return }
console.log(`***`);
const optionsId = {*** };
request(optionsId, (err, res, body) => {
const msg = body.current.indexes[0].description;
console.log('msg: ', msg);
sentAlert(msg);
});
});
};
Я тестирую его локально, используя serverless invoke local --function getSmogAlert
, и он работает простокак и ожидалось, я получаю смс от AWS, но когда я вызываю его с serverless invoke --function getSmogAlert
- он возвращает ноль и не отправляет текстовое сообщение.У меня были похожие проблемы с Nexmo, и я подумал, что, возможно, AWS.SNS поможет мне, но нет.
Любая помощь, пожалуйста?