我試圖設置一個Lambda函數,它將拉取傳遞到所創建的API網關URL中的查詢參數。 (側欄:在編程方面,我仍然非常青睞,所以請原諒任何無意的混淆關於如何命名我的部分)。我使用Synchronize.JS在光纖中包裝了一些REST調用,當我對要傳遞到各個REST URL的變量進行硬編碼時,它非常適用,但我們的目標是能夠傳遞不同的參數充當正在進行的不同REST調用的全局變量。這是我目前有...爲aws lambda函數傳遞查詢參數
// Dependendies
var request = require('superagent');
var sync = require('synchronize');
exports.handler = function(event, context) {
sync.fiber(function() {
var followingArray = [];
var followersArray = [];
var postsCountArray = [];
var allSqorCountArray = [];
var trendingPostAuthorArray = [];
var hashtagCountArray = [];
var notificationCountArray = [];
var getParam = function(query){
var SearchString = window.location.search.substring(1);
var VariableArray = SearchString.split('&');
for(var i = 0; i < VariableArray.length; i++){
var KeyValuePair = VariableArray[i].split('=');
if(KeyValuePair[0] == query){
return KeyValuePair[1];
}
};
};
var userId = getParam('userId');
var limit = getParam('limit');
var offset = getParam('offset');
var restCallOne = function() {
request('https://someurl.com/etc/' + userId + '/follows?limit=' + limit + '&offset=' + offset)
.end(function(err, res) {
if (err) {
console.log('Request 1');
context.fail("Danger Will Robinson!!! Follows Count Does Not Like You!!");
} else {
var followsCount = res.body.total_count;
followingArray.push(followsCount);
}
});
};
var restCallTwo = function() {
request
.get('https://someurl.com/etc/etc/etc?limit=' + limit + '&offset=' + offset)
.set({'access-token': 'someAccessToken'})
.end(function(err, res) {
if(err) {
console.log('Request 4');
context.fail("Danger Will Robinson!! The All Sqor Feed is moody");
} else {
var allSqorCount = res.body.total_count;
allSqorCountArray.push(allSqorCount);
}
});
};
var restCallThree = function() {
request
.get('https://someUrl.com/etc/' + userId + '/followers?limit=' + limit + '&offset=' + offset)
.end(function(err, res) {
if (err) {
console.log('Request 3');
context.fail("Danger Will Robinson!!! Following Count Done Smacked You Upside The Head!!");
} else {
var count = res.body.total_count;
followersArray.push(count);
context.done(null, 'The total number of people that follow Andy is ' + followersArray[0] +
', and the number of people that Andy follows is ' + followingArray[0] +
', and the number of posts in his feed is ' + allSqorCountArray[0]);
}
});
};
try {
restCallOne(userId, limit, offset);
} catch(errOne) {
console.log("Error on call 1!!");
}
try {
restCallTwo(limit, offset);
} catch(errTwo) {
console.log("Error on call 2!!");
}
try {
restCallThree(userId, limit, offset);
} catch(errThree) {
console.log("Error on call 3!!");
}
});
};
,當我使用此功能連接它時生成的API網關URL是這樣的:https://someID.execute-api.us-east-1.amazonaws.com/syncFunctionalParams
,但我希望能夠通過的東西像這樣,並使用我的Lambda函數中的參數從其餘調用返回正確的信息: https://someID.execute-api.us-east-1.amazonaws.com/syncFunctionalParams?userId=212733&limit=25&offset=0
這是可能嗎?我有沒有跟蹤這個?
瑞恩,非常感謝。我的同事能夠使用與您今天早些時候指出的完全相同的方法來幫助我解決這個問題,但是我非常感謝您提交此答覆,因爲它非常清楚地闡明瞭這些步驟。歡呼 –
沒問題。你介意接受答案嗎?謝謝! – Ryan
當然。對這樣做的延誤道歉。再次感謝! –