AWS LambdaでSentryを使う
AWS Lambdaで動くJSアプリケーションのエラー検知をしようと思い、Sentryを導入した。
しかし、[[Sentry.captureException]]を使って手動でエラー通知を行ったところ、うまくエラー通知が送信されない現象が発生した。
issueにも同様の現象が挙がっており、コメントにあった[[Sentry.flush]]を使うことでエラーが通知されるようになった。
[[@sentry/node] AWS Lambda and other Serverless solutions support · Issue #1449](https://github.com/getsentry/sentry-javascript/issues/1449)
import * as Sentry from '@sentry/node';
Sentry.init({ dsn: process.env.SENTRY_URL! });
const handler = async (event, context) => {
try {
someFunction();
} catch (error) {
Sentry.captureException(error);
await Sentry.flush(2500);
}
return context.succeed({
200,
body: JSON.stringify({
message: 'ok'
})
});
};
export { handler };