Pro Yearly is on sale from $80 to $50! »

AWS Lambda ではじめる Rust

68dad178ea4fa6aa86862b3a66a15306?s=47 Yuki Toyoda
August 26, 2020
130

AWS Lambda ではじめる Rust

AWS GameDay in CyberAgent で発表した資料です。

68dad178ea4fa6aa86862b3a66a15306?s=128

Yuki Toyoda

August 26, 2020
Tweet

Transcript

  1. AWS Lambda meets Rust ではじめる

  2. Yuki Toyoda 事業本部某プロダクト テックリード ❤ 2

  3. 本を出しました。 買ってください。 『実践 プログラミング入門』 3 宣伝

  4. Contents 4 Rust とは、AWS Lambda とは カスタムランタイムを用いた の利用例 AWS Lambda

    で Rust 登場人物のご紹介 まとめ 1 2 3
  5. 1. Rust とは、AWS Lambda とは 登場人物のご紹介

  6. “A language empowering everyone to build reliable and efficient software.”

    6
  7. Rust の特徴 7 爆速 や より平均して早 く、 並のスピードが出 る。 がない。

    安全‍♀ 基本的にセグフォしない。 メモリ安全性を強力に担 保しており、 やデータ 競合などはコンパイル時 に検出される。 開発者体験 一貫性がある文法で開発 者を迷わせない。また、 というビルドツール 兼パッケージ管理ツール が最高。
  8. 先日登壇した資料にさらに詳しく記載した。 プログラミング言語Rustのご紹介 https://speakerdeck.com/helloyuk13/puroguraminguyan-yu-rustfalsegoshao-jie 詳しくは 8

  9. いわゆるサーバーレスを実現するためのサービス。 λ AWS Lambda とは 9

  10. 2. AWS Lambda で Rust カスタムランタイムを使って を 動かしてみる

  11. Lambda のカスタムランタイムで Rust を利用可能に 年の後半に「カスタムランタイム」が 登場し、 も実質利用可能になった。 最初の お試しとして個人的に結構 おすすめ。

    11
  12. やってみるしかない 12 使う必然性はないが、やりたいからやるのだ。

  13. • 今回は、リクエストを送ると内容を に保存する を 作る。 • リクエストを →中でデータを起こす → に保存

    できる形に変換する →保存する。 作るもの 13
  14. ※ クレート のライブラリのこと • lambda-runtime 向けカスタムランタイム。 • serde の Ser

    De をする。 • rusoto-dynamodb 向けの ◦ の 。 • cargo-aws-lambda 向けバイナリの生成〜リリースまでを 一挙に行ってくれる。 必要なクレート 14
  15. • というのが最終的なバイナリ名になる。 ディレクトリ構成 15

  16. がつく関数はマクロである。 がエントリポイント。 lambda-runtime を用意しておく 16

  17. の中身を定義しておく。 lambda-runtime を用意しておく 17

  18. アトリビュート(他言語だとアノテーションとも)を定義するだけ。 serde を使って JSON のパースをできるようにする 18

  19. が扱えるように構造体を に変換する。 DynamoDB へ保存する 19

  20. 保存をかける。 DynamoDB へ保存する 20

  21. デプロイ 21 • がかなり便利で、これを使っておく。 向けの プラグイン。 • の公式では、クロスビルドの設定が必要など、いくつか注意 点がある。 •

    ならこれをインストールしておいて、設定ファイル を書いて実行するだけ。
  22. の を に追加する。複数指定できる。 デプロイ 22

  23. コマンドを叩く。 デプロイ 23

  24. デプロイ 24

  25. 3. まとめ まとめ

  26. • のお試しのために を使うのはおすすめ。 • 手軽に試すために必要なクレートをご紹介した。 • がビルド周りのめんどくささを一気に解消。 • Rust はいいぞ。←一番大事

    • コード https://github.com/yuk1ty/aws-lambda-rust-example まとめ 26
  27. についての質問や、導入のご相談はいつでもどうぞ! 27 ご清聴ありがとうございました