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 };

Related #aws

RDSを定期的に停止するLambdaを作る

手動起動は大変なので

AWS SESの受信メールを暗号化してs3に保存しLambdaで読み込む

jsの場合、複合処理を独自実装する必要がある

CloudWatchアラームを一時的に無効化する

AWS CLIで設定する必要がある

Alexaに気温と二酸化炭素濃度を教えてもらう

「Alexa、気温」でセンサー情報を教えてくれるようになった

CloudWatchのカスタムメトリクスを減らす

あまりチェックしないセンサー値の送信を止めた