特定の Web ページを破棄するスクリプトを作成しています。アーキテクチャの場合、特定のページを毎分スクレイピングするサーバーレス機能であるため、変更についてできるだけ早く通知されます。
私の問題は、クエリの結果に、新しいエントリは見つからず、古いエントリのみが表示され、報告されないことです。
今日は別の新しいエントリがあるので、それについてレポートを取得する必要がありました。
関数を手動で実行すると、実際に機能して報告されます。エントリを削除しても、AWS から自動的にレポートされませんでした。
デバッグを行った後、クライアント側では、リクエストの結果が新しいバージョンの Web ページであることに気付きました。AWS Lambda では、まだページの古い結果が得られます。
クライアント側のコマンドが試行されました(両方とも機能します)
node-debug sls function run example/functionname
sls function run example/functionname
サーバーは関数を完全に実行し、cloudwatch でエラーを報告しません。個人的には、問題はキャッシングに関連していると思い始めましたが、そこには存在しません (そうですか?)。
アイデアや提案は大歓迎です。
古いバージョンを取得する行:
request(url, function (error, response, html) {
コード例: (非同期部分) (get= HTML を取得) (checkLogged = 報告済みの場合)(doLog = 報告されていない場合はログ)
export const respond = (event, cb) => {
async.waterfall([
get,
checkLogged,
doLog
], cb);
};
すべてのエントリをチェックするコード
const get = (cb) => {
const url = 'http://www.xxx.be/en/xxx/xxx/xxx';
request(url, function(error, response, html){
if(!error){
//look for entries
}
else{
return cb(new Error('couldn\'t load xxx'));
}
});
}