こんにちは、ひろにぃです。題名通りです。
とは言うもののコードをバーンと貼るだけにはいかないので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
- OpenWeatherMaps API
- Twitter API
AWS lambdaを使う際のPythonの雛形
以下のとおりです。
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
以上です。お疲れ様でした。