Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS Lambda ではじめる Rust
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuki Toyoda
August 26, 2020
2
720
AWS Lambda ではじめる Rust
AWS GameDay in CyberAgent で発表した資料です。
Yuki Toyoda
August 26, 2020
Tweet
Share
More Decks by Yuki Toyoda
See All by Yuki Toyoda
パフォーマンスクリティカルな領域へのRust活用戦略
helloyuk13
3
460
Context Oriented Programming of Kotlin
helloyuk13
3
5.2k
カジュアルコントリビュータと学ぶRustコンパイラ
helloyuk13
3
1.9k
2025 年の Rust はどこに向かっているのか?
helloyuk13
6
1.4k
RustでWeb開発コソコソ噂話
helloyuk13
15
20k
SeaQL Projectsについて
helloyuk13
1
620
年末ですし、今年のRustの進捗の話をしましょう
helloyuk13
2
3.1k
SwiftでAWS Lambda
helloyuk13
0
280
Rustハンズオン@エウレカ社
helloyuk13
22
11k
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
Amusing Abliteration
ianozsvald
0
140
A Tale of Four Properties
chriscoyier
163
24k
Building Applications with DynamoDB
mza
96
7k
How to make the Groovebox
asonas
2
2k
Claude Code のすすめ
schroneko
67
220k
Chasing Engaging Ingredients in Design
codingconduct
0
150
4 Signs Your Business is Dying
shpigford
187
22k
Color Theory Basics | Prateek | Gurzu
gurzu
0
260
Designing Experiences People Love
moore
143
24k
The Limits of Empathy - UXLibs8
cassininazir
1
270
Faster Mobile Websites
deanohume
310
31k
Transcript
AWS Lambda meets Rust ではじめる
Yuki Toyoda 事業本部某プロダクト テックリード ❤ 2
本を出しました。 買ってください。 『実践 プログラミング入門』 3 宣伝
Contents 4 Rust とは、AWS Lambda とは カスタムランタイムを用いた の利用例 AWS Lambda
で Rust 登場人物のご紹介 まとめ 1 2 3
1. Rust とは、AWS Lambda とは 登場人物のご紹介
“A language empowering everyone to build reliable and efficient software.”
6
Rust の特徴 7 爆速 や より平均して早 く、 並のスピードが出 る。 がない。
安全♀ 基本的にセグフォしない。 メモリ安全性を強力に担 保しており、 やデータ 競合などはコンパイル時 に検出される。 開発者体験 一貫性がある文法で開発 者を迷わせない。また、 というビルドツール 兼パッケージ管理ツール が最高。
先日登壇した資料にさらに詳しく記載した。 プログラミング言語Rustのご紹介 https://speakerdeck.com/helloyuk13/puroguraminguyan-yu-rustfalsegoshao-jie 詳しくは 8
いわゆるサーバーレスを実現するためのサービス。 λ AWS Lambda とは 9
2. AWS Lambda で Rust カスタムランタイムを使って を 動かしてみる
Lambda のカスタムランタイムで Rust を利用可能に 年の後半に「カスタムランタイム」が 登場し、 も実質利用可能になった。 最初の お試しとして個人的に結構 おすすめ。
11
やってみるしかない 12 使う必然性はないが、やりたいからやるのだ。
• 今回は、リクエストを送ると内容を に保存する を 作る。 • リクエストを →中でデータを起こす → に保存
できる形に変換する →保存する。 作るもの 13
※ クレート のライブラリのこと • lambda-runtime 向けカスタムランタイム。 • serde の Ser
De をする。 • rusoto-dynamodb 向けの ◦ の 。 • cargo-aws-lambda 向けバイナリの生成〜リリースまでを 一挙に行ってくれる。 必要なクレート 14
• というのが最終的なバイナリ名になる。 ディレクトリ構成 15
がつく関数はマクロである。 がエントリポイント。 lambda-runtime を用意しておく 16
の中身を定義しておく。 lambda-runtime を用意しておく 17
アトリビュート(他言語だとアノテーションとも)を定義するだけ。 serde を使って JSON のパースをできるようにする 18
が扱えるように構造体を に変換する。 DynamoDB へ保存する 19
保存をかける。 DynamoDB へ保存する 20
デプロイ 21 • がかなり便利で、これを使っておく。 向けの プラグイン。 • の公式では、クロスビルドの設定が必要など、いくつか注意 点がある。 •
ならこれをインストールしておいて、設定ファイル を書いて実行するだけ。
の を に追加する。複数指定できる。 デプロイ 22
コマンドを叩く。 デプロイ 23
デプロイ 24
3. まとめ まとめ
• のお試しのために を使うのはおすすめ。 • 手軽に試すために必要なクレートをご紹介した。 • がビルド周りのめんどくささを一気に解消。 • Rust はいいぞ。←一番大事
• コード https://github.com/yuk1ty/aws-lambda-rust-example まとめ 26
についての質問や、導入のご相談はいつでもどうぞ! 27 ご清聴ありがとうございました