AWS lambda と Python3 を使って現在の天気をTwitterの名前に組み込むスクリプトを書きました。

こんにちは、ひろにぃです。題名通りです。
とは言うもののコードをバーンと貼るだけにはいかないのでAWS lambdaを使う際に思ったことなどをメモします。

目次

  • はじめに
  • 事の発端
  • 使ったAPI
  • AWS lambdaを使う際のPythonの雛形
  • pipでインストールするライブラリを使う場合
  • CloudWatch Eventsを使う
  • 書いたコード

はじめに

AWS lambdaの使い方やAPI keyの取得方法は割愛させていただきます。
また天気区分は以下の記事を参考にしました。
https://qiita.com/sudnonk12/items/744fb48e378c05979952

事の発端

Qiitaを開いたらこんな記事がたまたま目についたんですよね。

https://qiita.com/issei_y/items/ab641746be2704db98be

お、ええやんけ。わいもやろう。っとなったとです。

使ったAPI

AWS lambdaを使う際のPythonの雛形

以下のとおりです。

lambda_function.py
    def lambda_handler(event, context):
        return "ok"

ファイル名をlambda_function.pyにし、関数lambda_handlerを作り引数にevent, contextを設定してやります。これが雛形です。この関数の中にコードを書いていきます。

pipでインストールするライブラリを使う場合

AWS lambdaで新しく関数を作成すると編集コンソールがでてきてそのままブラウザでコーディングすることができます。しかし、そのままではpipでインストールしたライブラリなどが使えないため、それらと書いたコードを一緒にアップロードする必要があり zip upload か AWS s3 を使うことになります。ここでは zip upload を使います。

「pipでインストールしたライブラリなんかどこに保存してあるんだ?」という疑問が浮かびますがこれについてはpipの -t オプションで解決できます。雛形と同じディレクトリ階層で以下のコマンドを実行するといいでしょう。

pip install *** -t .

***はライブラリ名です。「.」を忘れないように注意してくださいね。今回使ったライブラリは「requests, requests_oauthlib」です。

CloudWatch Eventsを使う

いわゆるcron, rateです。式を設定する項目にcronまたはrateの式を書くだけです。今回は「rate(5 minutes)」と設定しました。

書いたコード

Githubにあります。
https://github.com/hirony-jp/change_username_in_twitter

以上です。お疲れ様でした。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.