Upgrade to Pro — share decks privately, control downloads, hide ads and more …

demo-build-curd-app-with-serverless-elixir

 demo-build-curd-app-with-serverless-elixir

2a67c9a199a83a5eada6276f20630cb1?s=128

ohr486

June 02, 2019
Tweet

Transcript

  1. DEMO build crud app with serverless elixir おーはら@tokyo.ex

  2. agenda • about me • how to run • demo

    • まとめ
  3. about me • Tsunenori Ohara/おーはら ◦ Twitter: @ohrdev ◦ Github:

    ohr486
  4. how to run repo: https://github.com/ohr486/serverless_elixir_demo 利用ライブラリ: - erllambda - mix_erllambda

    以下のようなアプリを作成します - CR(U)D操作のできるAPI - 環境はAWS、Lambda、ApiGatewayを利用 - DBはDynamoDBを利用
  5. step0 • release buildの為のdocker imageのbuild ◦ https://github.com/alertlogic/erllambda_docker • build ◦

    mix deps.get ◦ docker run -it --rm -v `pwd`:/buildroot -w /buildroot -e MIX_ENV=prod erllambda:21-elixir mix erllambda.rellease
  6. step1 • cloudformationの為のS3 bucketを作成

  7. step2 • パッケージング ◦ aws cloudformation package --template-file etc/template.yaml --output-template-file

    packaged.yaml --s3-bucket japanex-demo
  8. step3 • deploy ◦ aws cloudformation deploy --capabilities CAPABILITY_IAM --template-file

    packaged.yaml --stack-name japanex-demo
  9. step4 • deployスタックを確認 ◦ aws cloudformation describe-stacks --stack-name japanex-demo --query

    'Stacks[].Outputs' ◦ 作成したendpointを確認 • API ENDPOINTの設定 ◦ export APIENDP=xxxxxxx
  10. step5 • アイテムの作成 (CRUD) ◦ curl -X POST "$APIENDP?id=foo2&bar=quz2"

  11. step6 • アイテムリスト取得 ◦ curl $APIENDP

  12. step7 • アイテム削除 ◦ curl -X DELETE "$APIENDP?id=foo2"

  13. step8 • アプリ削除 ◦ aws cloudformation delete-stack --stack-name japanex-demo

  14. まとめ • 簡単なCR(U)Dアプリをserverlessで作成するデモを行いました • デモの通り、まだまだオペレーションが煩雑です ◦ このあたりをいい具合にラップしてくれるツール /FW等は現状まだありません ◦ oss貢献のチャンス!