1

特定の 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'));
        }
    });
}
4

0 に答える 0