Lambdaを使ってコードネームのお題をTwitterへ自動投稿できました

コードネームのお題をツイッターへ自動投稿してみる
プログラムでコードネームのお題を作成するところまで完成したので、その次のステップとしてTwitter APIを利用し自動でツイ...

前回の続き。プログラムでツイートはできたもののLambdaから実行できなかったので問題を解決いたしました。windowsで用意したPythonのPIL(pollow)パッケージがAmazon Linuxで使用できなかったという問題です。

Amazon Linuxの仮想環境でパッケージを用意

はじめに エンジニア研修中に私用PCでAmazon Linuxを触りたいと思い、何かないかと調査すると仮想環境構築ツールのVagrantがヒットしました。 名前だけは知っていたので、この機会に使ってみ...

VMwareなりDockerなり仮想環境構築の候補はあったんですが、一番手っ取り早そうな上記のvagrantを使うことにしました。そしてPython3.7をインストールしPILをインストールしようとしたところうまく行かない。どうもAmazon LinuxのOpenSSLのバージョンが古く、Python3.7はサポートしていない様子…(汗。OpenSSLのバージョンアップは色々厳しそうだったためPython3.6をインストールすることにしました。

python36 -m pip install pillow -t ./

Python3.6にてpipでpillowをインストールしパッケージを準備することができました。あとは取得したパッケージをファイル共有で仮想環境からホスト側に持ち出し、他のソースと合わせてzipに固めてLambdaへ。ファイル共有は以下を参考にしました。簡単ですね。

自分用のざっくりメモです。お役に立てれば幸いです。 Windows10 OS上で、VirtualBoxで立てたCentOS7とフォルダを共有したいと思ったのですが、大分詰まってしまいメモを残します。 この手の記事を見てる人は、Vi...

PILで使ってるフォントがないよ

さあ動かそうと思いきやリソースがないとのエラー。なにやらフォントが見つからないとお怒りの様子。windowsのシステムフォントを使ってたのでそりゃAWS上では見つからないですよね。TTFファイルを一緒にLambdaにアップロードして問題は解消いたしました。

Lambda上でのファイル保存に失敗

プログラムが作成したコードネームのお題は一旦同じディレクトリへ作成するようにしてたんですがこれがエラー。基本的にLambdaの関数配置場所はリードオンリーのようですね。ファイルの出力場所を「/tmp」配下にすることで解決いたしました。

START RequestId: 7d096fc3-6241-45ed-81fc-ea48282e9ac6 Version: $LATEST
Media ID: 1165842656808689668
2019/08/26のお題
#コードネーム
#ボードゲーム
OK
END RequestId: 7d096fc3-6241-45ed-81fc-ea48282e9ac6
REPORT RequestId: 7d096fc3-6241-45ed-81fc-ea48282e9ac6	Duration: 1223.09 ms	Billed Duration: 1300 ms 	Memory Size: 128 MB	Max Memory Used: 104 MB	

色々ありましたがこれで何とかLambdaから定期的な自動実行でTwitterへコードネームのお題を投稿することができるようになりました。次はカオスな状態となっているワード達をどうやって選別していくか検討していこうと思います。

余談ですがAWS Lambdaでよく見かけるこのロゴ・・・

half-lifeを思い浮かべてしまうのは自分だけではないはず・・・

50 以上の機関で「ゲームオブザイヤー」を授賞。Valve のデビュー作であるこのゲームには、賞を獲得した技術にアクションとアドベンチャーが盛り込まれ、プレイヤーの思考力が求められる、驚異的にリアルな世界を作り上げました。また、刺激あふれるマルチプレイヤーモードで、世界中のプレイヤー仲間と対戦することもできます。
スポンサーリンク
PR
PR

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
PR