Weitere ähnliche Inhalte
Ähnlich wie localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話 (20)
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
- 2. about:
・米田真治 (こめだしんじ@komeda_shinji)
・ 運用エンジニア
・ 日本UNI×ユーザ会会員
. 経歴
・ 学生時代!こUNI×に出会う
• Internetにつながる環境がきた
・ いろんなプログラムをビルドしているうちに
開発・構築の楽しさに目覚める
・ 学科のシステム管理を経験
・ システム運用のおもしろさを覚える
・ 就職してISPのサーバ構築・運用に携わる
• 2000年6月サイタスマネジメント創業メンバー
17/08/19 オープンデベ口ツjて-ズカンファレンス2017Tokyo 2
- 7. python-lambda-local
• Lambda関数をローカル実行するためのラッパ-
$ pip install python-lambda-local
$ python-lambda-local -1 lib/ ー千 handler -t 5
lambda-test.py event.json
• DynamoDBは口一力jし/〈ージ、ヨンがありますが、
SQSなどはAWS上のサービスを使うことになります0
• LambdaからLambdaを呼びたい場合(こ、
呼び、出されるLambda関数も ローカル実行させること
はできません。
• Lambdaのカスケードしたいんやけど……
17/08/19 オープンデベ口ツjて-ズカンファレンス2017Tokyo 7
- 9. miniconda環境にlocalstaclく専用の
environmentを作成する
1. environment の作成
$ conda create -n localstack python=2.7
またはS conda create -n localstaclくpython=3.6t
2. environment をactivate
$ . activate localstack
3. localstack をインストール
(localstaclく) $ pip install localstack
4. localstack を起動
(localstaclく) $ localstack start
↑python3の場合、 エラーが出るため
localstack/services/infra.pyの修正が必要で、す。
オープンデベ口ツjてーズカンファレンス2017Tokyo 9
- 10. Docker上で、も実行で、きます
• Docker for Mac をインストール
$ localstaclくstart --docker
Docker上のlocalstackは python2.7で、実行されます0
.コマンド起動毎にコンテナが作成されるので、
2回目からはdocker startしましょう。
ムproxyの設定が有効になっていると、
モックサーバのヘルスチェックに失敗することがあります。
17/08/19 オープンデベ口ツjて-ズカンファレンス2017Tokyo 10
- 13. 開発中
localstackの操作はCし|コマンド使います。
$ zip -ru 千unc.zip handler.py mylib
$ aws --endpoint-url=http://localhost:4574
lambda delete-千unction --千unction-name=my千unc
$ aws --endpoint-url=http:�/localhost:4574
lambda create-千unction --千unction-name=my千unc
--runtime=python2.7 --role=myrole
ー-handler=handler、.handler、
ー-zip-千ile 千ileb://func.zip
$ aws --endpoint-url=http://localhost:4574
lambda invoke -ー千unction-name my千unc
ー-payload ’{”test11: 11test11}1 result.log
localstack を起動し直すと、
SQSやLambdaは再度作成する必要があります。
いちいち面倒くさい。
17/08/19 オープンデベ口ツjて-ズカンファレンス2017Tokyo 13
- 14. そうだ
jupyter-notebookを使おう
• bash kernelで、設定のCし|コマンドを実行すれば、
かんたんに再実行できます。
・ 見出しをつけておけば、 ヒストリから再実行するよりも探しやすい0
. マウスクリックでJll頁に実行できて、 実行結果も一緒に残ります。
・ トライ&エラーの過程も残せて便利です。
・ インストール
$ conda install jupyter jupyter_console qtconsole
notebook nbconvert
• bash kernel
condaのパッケージがないためpipで、インストールしますo
$ pip install bash_kernel
・ IPython kernel specの登録コマンドを実行します。
$ python -m bash_kernel.install
17/08/19 オープンデベ口ツjて-ズカンファレンス2017Tokyo 14
- 15. ご JUpyter p州on酬明 L勾out
File Ed� View In鵠rt Cell Kern剖 Help Trusted I Bash 0
�11+ 灰 色 町� 1' ψ 制 ・ C Markdown
4‘
‘’ m
17/08/19
アーカイブ作成
In (SJ: zip - u python.zip hello_world.py
Lambda関数更新
工n [6]: aws -- endpoint-url�http: //localhost:4574 lambda delete-function --function-
In [7 J: aws --endpoint-url=http: I/localhost:4574 lambda create-function --function-
Lambda関数実行
工n [aJ: aws --endpoint-url=http: I/localhost:4574 lambda inv。ke --function-name hell
・'StatusCode'・: 200
}
In [ J:
オープンデベロッJ\ーズカンファレンス2017 Tokyo 15