最近なにかと論文を読んでいるですが、そもそも論文を探している時間がもったいないですし、無料かつタイムリーに読みたい論文が知りたいと思い、いい感じの論文をSlackに通知するようにしたのでそのメモです。
参考にしたのはこちらです。
イメージはこんな感じです。
Slackの設定
まず、Slackに適当にチャンネルを作ります。 私の場合はarXivというチャンネルを作りました。
こちらにアクセスして設定します。
webhook が必要になるので、適宜インストールしてください。
作成したチャンネルを入力して「Incoming Webhook インテグレーションの追加」に進みます。
遷移したページのWebhook URLを控えておきます。
Lambdaの設定
Pythonの作成
参考サイトと若干違いますが、そのへんは多めに見ていただければと思います。
わたしは内部のapi_urlにWebhook URLをべた書きしちゃいました。どうせLambda使うなら環境変数にして外に出しても良かったですね。 検索ワード等々はarxivのapiをご参照ください。私の場合はGAN関連の論文を検索しています。
arXiv.org help - arXiv API User's Manual
AWS の設定
作ってからわかったんですが、python3のrequestsがそのままではlambdaでは使えないようなので、zipでアップロードして使用します。
適当なロールでAWS Lambdaを作ってもらい、「関数コード」>「コードエントリタイプ」>「.zipファイルをアップロード」を選択してzipにまとめたファイルをアップロードします。
上のほうにある「テスト」で正常に終了すればOKで、私の場合は時間切れになったので、タイムアウト値を30secに調整したらうまくいきました。
CloudWatchの設定
CloudWatchの「ルール」をからトリガーを作成します。
cron式で「0 0 * * ? *」に設定して、日本時刻で毎朝9:00に前日分の論文の検索を実行するようにしました。
結果
こんな感じでSlackに通知されました。
これでちょっとは楽になりそうです。