Я пытаюсь использовать SNS, расположенный в Сан-Паулу (sa-east-1), из лямбда-функции (Node.js 8.10) в Огайо (us-east-2).Я впервые пытаюсь использовать сервис AWS, расположенный в другом регионе.Пока что это то, что я делаю:
//init aws resources
const AWS = require('aws-sdk');
const sns = new AWS.SNS({apiVersion: '2010-03-31', region: 'sa-east-1'});
//promisefy AWS.SNS.createPlatformEndpoint method
snsCreatePlatformEndpoint = params => new Promise(
(resolve, reject)=>{
sns.createPlatformEndpoint(params, function(error, data){
if (error) { reject(error); }
else { resolve(data); }
});
}
);
exports.handler = (awsEvent, context, callback) => {
//parse stuff in here
...
HandleToken(token, callback);
};
async function HandleToken(token, callback){
try{
let params = {
PlatformApplicationArn: process.env.PlatAppArn,
Token: token,
};
console.log('params:', params); // this prints as expected
let {EndpointArn} = await snsCreatePlatformEndpoint(params);
console.log('It should pass through here'); // it is not printed
//returns a success response
...
} catch (error) {
//returns an error response
...
}
}
Я установил очень большое время ожидания для своей лямбда-функции: 5 минут.
Я также протестировал тот же код для лямбда-функции, расположенной в Сан-Паулу (sa-east-1), и она работает.
Я получил следующую ошибку на моем клиенте:«Запрос не выполнен с кодом состояния 504» «Тайм-аут запроса конечной точки»
Вопрос: Как правильно использовать SNS в другом регионе AWS?