前編はこちら👆
なんならこっちのほうがめっちゃ時間かかりました。とりあえず備忘録。
Pythonプログラムをサーバーで実行するには→サーバレスを使ってみる
前回のPythonのコードを私のPCからではなくAWSとかGCP(Google Cloud Platform)などのクラウドサーバーから動かせないかなと色々探しておりました。「とりあえずリモートPC作ってソコに環境作って、ってなるのかな」と思ったんですが、以前上司に連れられて行ったAWSセミナーのLambdaを思い出しまして。調べてみたら欲しい機能とドンピシャでした。
どうやらこの手のものはサーバレスと言うらしいです。
Lambdaとは
AWS Lambda とは Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービスです。Lambda は可用性の高いコンピューティングインフラストラクチャでコードを実行し、コンピューティングリソースの管理をすべて担当します。これにはサーバーおよびオペレーティングシステムのメンテナンス、容量のプロビジョニングおよびオートスケーリング、コードのモニタリングおよびログ記録などが含まれます。Lambda を使用すると、実質どのようなタイプのアプリケーションやバックエンドサービスに対してもコードを実行できます。必要なのは、Lambda がサポートするいずれかの言語でコードを指定することだけです。(※AWS公式サイトより引用)
なるほどわからん。
まぁ私の雑な説明になってしまいますが、
通常サーバーを使って何かしらのプログラムを起動させたい、となった時、クラウド上に仮想PCを作ってその中に前回の記事でやったように開発環境(IDE)などをインストールしてプログラムが起動できるお膳立てをしてようやく動かせる、というものなんですが
サーバレスなLambdaはPythonのコードだけ書いてあげれば他は手入れする必要が無い(サーバレスの「レス」はサーバー構築・管理が無いの「レス」)、サーバー苦手な私には凄くお手軽な機能というわけです。
あとコレの良いところは、普通にサーバーを使う場合は仮想PCを常に起動しているのに対して、Lambdaはトリガーが掛かった時だけ起動するので、省エネ低コストというわけです。(・∀・)イイネ!!
Lambdaで自動ツイートが出来るまで
参考にしたのはコチラの「2.tweepyのダウンロード」から
Lambdaで動かす上で、tweepyだけはモジュールとして追加しないといけないとのことでした。packageというフォルダを作って、その中にtweepyを
pip install tweepy
でインストール。さらに先日作成した自動ツイートのpyファイル(AutoTweet.py)をコピペします。
これをzipしてLambdaに送ります。アップロード元のところで「zipファイル」が選べるのでここからアップロードすると、↓画像の左側のようになります。「AutoTweet.py」は「lambda_function.py」に後から名前を変更しました。どうやらこの名前じゃないと動かない模様・・・。
あとは、レイヤーの設定をします。(これが効果あったか分からないのですが、どちらかが欠けても失敗したので記載しておきます。)
参考にしたのはコチラ👆のqiita。
「ARN を指定」を選択して「arn:aws:lambda:ap-northeast-1:770693421928:layer:Klayers-python38-tweepy:1」を入れて「追加」ボタンをクリック。
なるべく低コストでTwitter Botを自作する(https://qiita.com/nittyan/items/c45a7e7b8a1f0153ddef)
この部分だけやりました。
結局なんでかは分かりませんでしたが、動いたので良しとしよう。ウン(*-ω-)(-ω-*)ウン
最後はEventBridgeで投稿時間を設定します。
朝ツイートなのにスケジュール式には22:30を設定していますが、ロンドン基準なので日本時間に合わせるために−9時間しています。
最後に
ここ最近宣伝ツイートを連発してしまい、フォロワーの皆様には大変ご迷惑をおかけしました((_ _;)フカブカ
でもこれで宣伝ツイートはやりやすくなったし、何なら一日3回発信出来るようになったから世界的に見ても色々な時間にツイート出来るようになったのは大きい✨余った時間で創作だ!
あと、後日掛かった金額などもお知らせしようと思います!・・・おそらくそんなにかからないハズ(;・∀・)
以上、参考になれば幸いです!良ければ私のNFT作品も見ていってください♪
anthropomorphicGirls:
JPN4seasons:
Study of eye:
コメント