Node.js 如何使用AWS javascript SDK运行胶水爬虫程序?

Node.js 如何使用AWS javascript SDK运行胶水爬虫程序?,node.js,amazon-web-services,aws-lambda,aws-sdk,aws-glue,Node.js,Amazon Web Services,Aws Lambda,Aws Sdk,Aws Glue,我正在尝试创建一个Lambda,当一个文件被添加到一个特定的s3存储桶时,它就会被触发 不幸的是,我找不到关于如何使用aws javascript sdk运行胶水爬虫程序的任何资源/文档 有人能分享一些可能有用的提示/文档/代码吗 非常感谢,这是我部署的一个片段。爬虫程序是根据参数1创建的。然后,创建后运行爬虫程序。希望有帮助。代码源于 同样尝试这样做,从lambda触发一个爬虫程序(而不是创建和触发)。我翻阅了文件 谷歌“aws sdk胶水”,顶级结果看起来不错 我们知道我们可以像上面显示

我正在尝试创建一个Lambda,当一个文件被添加到一个特定的s3存储桶时,它就会被触发

不幸的是,我找不到关于如何使用aws javascript sdk运行胶水爬虫程序的任何资源/文档

有人能分享一些可能有用的提示/文档/代码吗


非常感谢,

这是我部署的一个片段。爬虫程序是根据参数1创建的。然后,创建后运行爬虫程序。希望有帮助。代码源于


同样尝试这样做,从lambda触发一个爬虫程序(而不是创建和触发)。我翻阅了文件

  • 谷歌“aws sdk胶水”,顶级结果看起来不错
  • 我们知道我们可以像上面显示的@pkarfs那样使用createCrawler。查看方法摘要,我可以看到“getCrawler”
  • 页面上有一个示例,但这是我的示例。我通过使用F12检查
    startCrawler
    函数上的类型来构造它

      /**
       * Starts a crawl using the specified crawler, regardless of what is scheduled. If the crawler is already running, returns a CrawlerRunningException.
       */
      startCrawler(params: Glue.Types.StartCrawlerRequest, callback?: (err: AWSError, data: Glue.Types.StartCrawlerResponse) => void): Request<Glue.Types.StartCrawlerResponse, AWSError>;
    
    我用的是无服务器的

    myCrawlerTrigger:
    处理程序:./src/lambdas/myfunction.handler
    活动:
    -s3:
    水桶:我的水桶
    事件:s3:ObjectCreated:Put
    规则:
    #压缩内容后切换到json.gz
    -前缀:bucket\u文件夹\u名称/
    -后缀:.json
    存在:对#我的桶已经存在
    

    但是你是如何创建胶水爬虫和数据库的呢


    请参见

    这并不能回答问题。如果有人想触发CloudFormation中创建的胶水爬虫,请参阅我的帖子。
      /**
       * Starts a crawl using the specified crawler, regardless of what is scheduled. If the crawler is already running, returns a CrawlerRunningException.
       */
      startCrawler(params: Glue.Types.StartCrawlerRequest, callback?: (err: AWSError, data: Glue.Types.StartCrawlerResponse) => void): Request<Glue.Types.StartCrawlerResponse, AWSError>;
    
    import { Handler } from "aws-lambda";
    import { Glue } from "aws-sdk";
    import "source-map-support/register";
    
    export const handler: Handler = async () => {
      const glue = new Glue();
    
      const params: Glue.GetCrawlerRequest = {
        Name: "CRAWLER_NAME"
      };
    
      try {
        const data = await glue.startCrawler(params).promise();
    
        // eslint-disable-next-line no-console
        console.log({ data });
      } catch (err) {
        console.error(`Error getting crawler instance: ${err}`);
      }
    
      console.log({ helloWorld: "yo" });
    };