Slide 1

Slide 1 text

サーバーレスアーキテクチャでサクッと 作るアイマスbot 2019/07/06 IM@S Engineer Talks nomura.keiichi(K1)

Slide 2

Slide 2 text

自己紹介 K1 ( 野村啓一 : nomura.keiichi) @k1_style クラスメソッド株式会社 事業開発部所属 アプリケーションエンジニア(サーバサイド) Java(Spring Boot, Gradle), AWS 竜宮小町・セクシーギルティ・放課後クライマックスガールズP

Slide 3

Slide 3 text

今日話すこと サーバーレスアーキテクチャとは AWS SAM で、アイドルがSlack で喋りかけてくれる風bot を試しに作った

Slide 4

Slide 4 text

サーバーレスアーキテクチャとは

Slide 5

Slide 5 text

サーバーレスアーキテクチャとは サーバー管理を意識せずアプリケーションやサービスを構築して実 行する手法のこと。 コード実行環境がすぐ利用できる サーバーのOS やミドルウェア等の管理は不要 AWS によるサーバーレスアーキテクチャの解説 https://aws.amazon.com/jp/lambda/serverless-architectures-learn- more/

Slide 6

Slide 6 text

AWS SAM

Slide 7

Slide 7 text

AWS SAM AWS のサーバーレスアプリケーション構築用フレームワーク 利用するAWS 環境を定義するテンプレートと、メインロジックと なるプログラムを開発者が用意 SAM で用意されたCLI でテスト・ビルド・デプロイを実施 https://aws.amazon.com/jp/serverless/sam/

Slide 8

Slide 8 text

サーバーレスアプリケーションに必要な環境の定義をテンプレート に記載

Slide 9

Slide 9 text

AWS Lambda で動作するロジックを実装

Slide 10

Slide 10 text

サーバーレスアプリケーションのテスト・ビルド・デプロイをCLI で 実行 sam local invoke --template template.yaml --event "App-event.json" 2019-07-05 22:33:56 Found credentials in environment variables. 2019-07-05 22:33:56 Invoking handler.App (java8) < 中略> {"body":"{ \"message\": \" 次もこの調子でいくわよ!\" }","headers":{"X-Custom-Header"

Slide 11

Slide 11 text

AWS Toolkit AWS SAM の機能をIDE 上で容易に実行可能にできるIDE プラグイン IntelliJ https://aws.amazon.com/jp/intellij/ eclipse https://aws.amazon.com/jp/eclipse/ Visual Studio https://aws.amazon.com/jp/visualstudio/

Slide 12

Slide 12 text

【参考】AWS Toolkit for JetBrains 使ってみたブログ https://dev.classmethod.jp/cloud/aws/aws-toolkit-for-jetbrains-with- java8-gradle/

Slide 13

Slide 13 text

Slack でアイドルが喋りかけてくれる風bot を試 しに作った

Slide 14

Slide 14 text

いおりんbot

Slide 15

Slide 15 text

デモ curl -s https://xxx.execute-api.region.amazonaws.com/Prod/hello/ 用意したエンドポイントを叩くと、Slack でいおりんが発言する

Slide 16

Slide 16 text

やったこと 1. Slack でBot を用意する 2. AWS Toolkit 導入済みのIntelliJ でAWS Serverless Application のプロ ジェクト作成 3. Bot のエンドポイント等AWS 環境の定義をtemplate.yaml に記述 4. Bot で動かすプログラムとユニットテストを書く 5. AWS Toolkit 使ってデプロイ

Slide 17

Slide 17 text

ソースコード https://github.com/K1-Style/imas-slack-iorin-bot 近日中に、README と解説ブログまとめます。

Slide 18

Slide 18 text

まとめ サーバーレスアーキテクチャの恩恵を活かして、有用なアイマスbot を量産していこう

Slide 19

Slide 19 text

https://k1-style.net @k1_style