あくまで備忘録です
やりたいことだけ明確に
まず、目標
※この部分を書いている時点で一切の作業をしていません
AWSのラムダを使うとしてお金がかかるので、ローカル(Windows環境)にダウンロードできるものだけでラムダを作りたい。
htmlで書いた(ここの言語は未定)Webサイトにアクセスし、Pythonの書かれたラムダに投げて帰ってきたデータでhtmlを更新する、なんて形を取れればいいと思っている。
静的なWebサイトを作るのであればS3でもいいとか言ってはいけない
何をダウンロードしよう
ググったところ[参考:A]のサイトを見つけたので内容を確認。python-lambda-localというものを使えばいいらしいので早速インストール
cmdからpipでダウンロードpipがナニか変わらなかった無知な自分はこちら
> pip install python-lambda-local
> python-lambda-local --version
'python-lambda-local' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
・・・・・・あれ?インストールできてない??
よく見てみると
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] アクセスが拒否されました。: 'c:\\programdata\\anaconda3\\lib\\site-packages\\docutils-0.16.dist-info\\COPYING.txt'
Consider using the `--user` option or check the permissions.
管理者権限になっていませんでした。失敗は成功の母といいますしそのまま載せていきます。
>python-lambda-local --version
python-lambda-local 0.1.12
こんどこそインストールできました。
インストールまで終わったら
おそらく興味がある人が読むとしたらここから。だって初心者用の記事だとインストール実行までだし、逆に詳しい記事だと何かいてあるかわからないし。
初めに書けよというかもしれませんが、実行環境はあまり説明しません。何が入ってるから動くとか、パスの設定何してあるから動くとか普段使いしているとわからなくなるので。
できる限りその場でインストールしたもののバージョンなんかは書いていくつもりですが……
[参考:A]のサイトではlambda-uploaderを入れていますが、現状使っているAWSアカウントも無くアップロード先が無いのでとりあえずスキップ。
このあたりですでに暗雲が立ち込めている気がしますがもう少し頑張ります
[参考:B]サイトをもとにjsonとpyファイルを作成。
ちなみに、ファイルを作成する際に使っているテキストエディタはMeryです。コレ、機能が最低限のわりに使い勝手がいいから好きなんです。サクラエディタとかアトムとかも使いますが、普段使いはコレですね。
{
"key1": "おはよう",
"key2": "こんにちは",
"key3": "テスト",
"key4": "Hello",
"key5": "Good Afternoon"
}
import sys
import json
import random as rn
def lambda_handler(event, context):
sys.stderr.write("*** lambda_handler *** start ***\n")
print("Received event: " + json.dumps(event, indent=2))
keys=['key1','key2','key3','key4','key5']
print("AAA value1 = " + event[keys[rn.randint(0,4)]])
sys.stderr.write("*** lambda_handler *** end ***\n")
return event['key1']
このファイルを作成し、どこにプログラムを置いて起動しようかと調べていた際に異変が
[参考:C]どうやらWindows環境だとpython-lambda-localが動かないらしい。
うーん、ここまでやったのに。
備忘録として残しておきますが、この先やるかは未定です(やれそうなら追加で書きます)
参考文献
[参考:A]https://dev.classmethod.jp/articles/invoke-aws-lambda-python-locally/
[参考:B]https://dev.classmethod.jp/articles/invoke-aws-lambda-python-locally/
[参考:C]https://qiita.com/tanj/items/70c57ed9ca742884c61e
脱線したときに読んでいた記事