Node.js 如何使用AWS javascript SDK运行胶水爬虫程序?
我正在尝试创建一个Lambda,当一个文件被添加到一个特定的s3存储桶时,它就会被触发 不幸的是,我找不到关于如何使用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胶水”,顶级结果看起来不错 我们知道我们可以像上面显示
非常感谢,这是我部署的一个片段。爬虫程序是根据参数1创建的。然后,创建后运行爬虫程序。希望有帮助。代码源于
同样尝试这样做,从lambda触发一个爬虫程序(而不是创建和触发)。我翻阅了文件
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" });
};