定期的に自動実行している処理をいくつか持っているんですが、そいつを重い腰を上げてLambdaに移行しようかなと。Cloud9で環境作っていきます。
Cloud9で環境作っていきます
というか、ウイザードに従っていくだけなんですけどね。。。
AWSマネジメントコンソールから、Cloud9を立ち上げて
Create environment
適当に入力して、Next step
ここは、全部DefaultでNext step
Create environment
ちょいと時間かかりますが、まぁ待てと
起動したら、右の方にメニューが有るので、AWS Resourcesを
Resourcesツリーが表示されますんで、λマークをクリック
Function nameとAppliation nameを入力して、Next
ここは、慣れているPythonで開発していきます。
一旦ここは、noneのままで
ここもそのまんま。必要になったら増やしたりします。
Finish
後は、lambda_function.pyの
def lambda_handler(event, context):
に、ゴリゴリ書いてけばOK!
必要なライブラリをインストール
今回は、slackwebを使ってSlackにLambdaから通知してみる所までやってみます。
slackweb関連は、こちらの記事を参照していただければ。Django環境からですが、PythonからSlack通知してますんで。
コンソール画面で、Function nameフォルダの直下に移動して、
pip install slackweb -t .
ちなみに、-tのオプションは、ライブラリをインストールする場所を指定できます。
pipが古いと言われておりますが、対応は後程。
ライブラリインストールできましたね。
テストコードを
ツリーから、lambda_function.pyを開いて
import json
import slackweb
print('Loading function')
def lambda_handler(event, context):
slack = slackweb.Slack(url="https://hooks.slack.com/services/ご自身のSlackで")
slack.notify(text="LambdaからSlack通知できるかテスト ( ゚Д゚)")
return ''
単に、メッセージを通知するだけのコードです。
動かしてみます
Resourcesツリーを開いて
オレンジのλマークの上で右クリック → Run → Run Local
開いたウインドウで、Runをクリック
Slackに通知きましたかね。