😇
【5分で動く】AWS LambdaでPuppeteer【100%確実に】
筆者のつぶやき
Lambdaでスクレイピングがしたいだけなのに、、、
どうして人はターミナルとS3とレイヤとLambdaの往復で3時間も溶かしてしまうのか?
どうせみんなやってることは同じなのに。。。どうして。。。?
迷える子羊を輪廻から解き放つために書いた備忘録です。
5分でlambdaでスクレイピングが始められるはずです。
だめだったらごめんなさいm(_ _)m
以下の設定のLambda関数を用意する
・Node.js 14.x にする
・メモリを512MB以上に設定する
・タイムアウトを1分に設定する
使用するLambda関数にレイヤを追加
@sparticuz/chrome-aws-lambdaをLambdaレイヤを公開しているリソースがある。
以下のARNを指定してLambdaにレイヤを追加する
arn:aws:lambda:ap-northeast-1:764866452798:layer:chrome-aws-lambda:31
以下のコードを実行
const chromium = require('@sparticuz/chrome-aws-lambda');
exports.handler = async (event, context, callback) => {
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,
ignoreHTTPSErrors: true,
});
let page = await browser.newPage();
await page.goto(event.url || 'https://example.com');
result = await page.title();
} catch (error) {
return callback(error);
} finally {
if (browser !== null) {
await browser.close();
}
}
return callback(null, result);
};
最後に
救われましたか?
失ったはずだった貴重な時間を守れたでしょうか...?
もしそうならば私を神と崇めなくていいので、❤いいねを押してくれると喜びます...!
Discussion