Node.js AWS Lambda/Chromium-定义的功能为;“未定义”;评估期间

Node.js AWS Lambda/Chromium-定义的功能为;“未定义”;评估期间,node.js,web-scraping,aws-lambda,amazon-dynamodb,chromium,Node.js,Web Scraping,Aws Lambda,Amazon Dynamodb,Chromium,我正在尝试使用AWS的Chromium二进制文件从网站上抓取内容并将其放入DynamoDB 下面是AWS Lambda中的函数,尽管定义了函数getTS来计算时间戳属性,我还是不断收到错误消息“评估失败:引用错误:未定义getTS” 函数是如何定义的 'use strict' const chromium = require('chrome-aws-lambda'); const AWS = require('aws-sdk'); function getTS(month,day) { v

我正在尝试使用AWS的Chromium二进制文件从网站上抓取内容并将其放入DynamoDB

下面是AWS Lambda中的函数,尽管定义了函数
getTS
来计算时间戳属性,我还是不断收到错误消息
“评估失败:引用错误:未定义getTS”

函数是如何定义的

'use strict'
const chromium = require('chrome-aws-lambda');
const AWS = require('aws-sdk');

function getTS(month,day) {
  var fullDate = `${month}/${day}/2020`;
  var ts = new Date(fullDate).getTime()
  return ts-9*3600;
}

exports.handler = async (event, context) => {
  const documentClient = new AWS.DynamoDB.DocumentClient();
  let responseBody = '';
  let statusCode = 0;

  let result = null;
  let browser = null;

  try {
    browser = await chromium.puppeteer.launch({
      args: chromium.args,
      defaultViewport: chromium.defaultViewport,
      executablePath: await chromium.executablePath,
      headless: chromium.headless,
    });

    let page = await browser.newPage();

    await page.goto('SOME_URL');
    var res = await page.evaluate( () => {
      let results = [];
      let patients = document.querySelector('tbody').querySelectorAll('tr');
      patients.forEach( patient => {
        let formatDate = patient.querySelectorAll('td')[6].innerText.split('.')
        let fullDate = `${formatDate[0]}, ${formatDate[1]}`
        let timestamp = getTS(formatDate[0],formatDate[1])
        results.push({
          FullDate: fullDate,
          Timestamp: timestamp,
        });
      });
      return results;
    });
  } catch (error) {
    return context.fail(error)
  } finally {
    if (browser !== null) {
      await browser.close()
    }
  }

  let i;
  for (i=0; i<res.length; i++) {
    const params = {
      TableName: 'Items',
      Item: res[i]
    }
    try {
        const data = await documentClient.put(params).promise();
        responseBody = JSON.stringify(data);
        statusCode = 201;
    } catch (err) {
        responseBody = `Unable to put item: ${err}`;
        statusCode = 403;
    }
  }

  const response = {
    statusCode: statusCode,
    headers: {
      'Content-Type': 'application/json'
    },
    body: responseBody
  }

  return response;
}    
“严格使用”
常量铬=要求(“铬-aws-lambda”);
const AWS=require('AWS-sdk');
函数getTS(月、日){
var fullDate=`${month}/${day}/2020`;
var ts=新日期(fullDate).getTime()
返回ts-9*3600;
}
exports.handler=异步(事件、上下文)=>{
const documentClient=new AWS.DynamoDB.documentClient();
让responseBody='';
设statusCode=0;
设result=null;
让browser=null;
试一试{
browser=等待chromium.puppeter.launch({
args:chromium.args,
defaultViewport:chromium.defaultViewport,
可执行路径:等待chromium.executablePath,
无头:铬,无头,
});
let page=等待browser.newPage();
等待page.goto('SOME_URL');
var res=wait page.evaluate(()=>{
让结果=[];
让患者=document.querySelector('tbody')。queryselectoral('tr');
患者。forEach(患者=>{
让formatDate=patient.querySelectorAll('td')[6].innerText.split('
设fullDate=`${formatDate[0]},${formatDate[1]}`
让timestamp=getTS(formatDate[0],formatDate[1])
结果:推({
FullDate:FullDate,
时间戳:时间戳,
});
});
返回结果;
});
}捕获(错误){
返回上下文。失败(错误)
}最后{
如果(浏览器!==null){
等待浏览器关闭()
}
}
让我;
对于(i=0;i