У меня есть лямбда-функция, которая срабатывает, когда происходят изменения в моей таблице DynamodB. Когда я использую лямбда-преобразователь, я могу вызывать только лямбда-функцию из моей appsync, а это не то, что я пытаюсь сделать.
Я пытаюсь следовать приведенному здесь ответу:
Как подписаться непосредственно на мой источник данных AWS AppSync?
Но у меня проблемы с третьим шагом.
Спасибо
После ответа @Aaron_H это моя лямбда-функция:
module.exports.triggerStream = async (event, context, callback) => {
if(event.Records[0].eventName === 'INSERT'){
return new Promise((resolve, reject) => {
console.log(event.Records[0].eventName)
console.log(JSON.stringify(context))
console.log(JSON.stringify(event));
const myData = { //this part is hardcoded for my tests
"query": `
mutation UpdateData($myDeviceID : String!, $myTs : String!, $myPayload: payloadInput){
updateData(deviceID : $myDeviceID, ts : $myTs, payload : $myPayload){
checkup
}
}
`,
"variables": {
"myDeviceID": "z55-temp",
"myTs": "1549512000",
"myPayload":{
"deviceId": "z55-temp",
"ts": 1549512000,
"value": 17.25
}
}
};
const data=JSON.stringify(myData)
const options = {
host: 'blablabla.appsync-api.us-east-1.amazonaws.com',
path: '/graphql',
method: 'POST',
headers: {'Content-Type': 'application/json',
"X-Api-Key" : "myApiKey"}
};
var req = https.request(options, (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
res.setEncoding('utf8');
resolve('Success');
res.on('data', (d) => {
process.stdout.write(d);
});
});
req.on('error', (e) => {
console.error(e);
reject(e.message);
});
// send the request
req.write(data);
req.end();
});
}
};
Я также использую безсерверный фреймворк, это моя конфигурация serverless.yml для моей лямбда-функции:
function:triggerStream:
handler: handler.triggerStream
events:
- stream:
type: dynamodb
batchSize: 1
startingPosition: LATEST
arn: myExistingTableArn
Моя проблема в том, что я хочу использовать Amazon Cognito User Pool для авторизации приложений. Как я могу использовать токены JWT в своем заголовке, если мой запрос поступает из потоков Dynamodb? У меня есть устройство IOT, которое вставляет данные в мою таблицу.
Спасибо!