Slide 1

Slide 1 text

Cloud FunctionsでURL短縮 サービスを作ろう! Firebase Meetup #9 Cloud Functions Day @Google kappa0923

Slide 2

Slide 2 text

Agenda ▸ 自己紹介 ▸ Cloud Functionsで何を作るか? ▸ どうやって作るのか ▸ ついでにCIも考える ▸ まとめ 2

Slide 3

Slide 3 text

Self Introduction ▸ 渡辺 友康 ▹ kappa0923 ▸ 株式会社アイソルート クラウドソリューショングループ所属 ▹ クラウド周りのアーキテクトやってます ▸ SNS ▹ GitHub : kappa0923 ▹ Twitter : @tom_kappa0923 ▸ Other ▹ GDG Tokyo オーガナイザー 3

Slide 4

Slide 4 text

今日のターゲット 4 経験者 初学者 この辺

Slide 5

Slide 5 text

Cloud Functionsで 何を作るか?

Slide 6

Slide 6 text

何を作るか? URL短縮サービスを作ります! ↓ https://nabe.ga/ 6

Slide 7

Slide 7 text

何を作るか? なんで? 7

Slide 8

Slide 8 text

何を作るか? GitHubにCloudFunctionsを利用した URL短縮のサンプルがあった https://github.com/firebase/functions-samples/t ree/Node-8/url-shortener けどBit.lyのAPIを使ってる。。。 8

Slide 9

Slide 9 text

何を作るか? これなら自分で作っても良いのでは

Slide 10

Slide 10 text

どうやって作るか

Slide 11

Slide 11 text

どうやって作るか 11 ▸ Cloud FunctionsでCloud Firestoreから リダイレクト先のURLを読み込み、 301リダイレクトのレスポンスをすればOK

Slide 12

Slide 12 text

どうやって作るか 12 ▸ リダイレクトの処理はFunctionsの 関数を呼び出すように、firebase.jsonに rewrite設定をしておく ▸ これで独自ドメインで関数が呼び出せる

Slide 13

Slide 13 text

どうやって作るか 13 ▸ Firestoreからの読み込みにはFunctionsで Firebase Admin SDKを使うので FirestoreのルールはロックモードでOK!

Slide 14

Slide 14 text

どうやって作るか 14 ▸ でもFunctionsの実行回数が心配。。。 ▸ なら、キャッシュさせてしまおう! cf. https://firebase.google.com/docs/hosting/functions?hl=ja#manage_cach e_behavior

Slide 15

Slide 15 text

ついでにCIも考える

Slide 16

Slide 16 text

ついでにCIも考える 16 ▸ せっかくなのでCIも実現しよう! cf. https://www.isoroot.jp/blog/1349/ ▸ GOOGLE_APPLICATION_CREDENTIALSを 使ってサービスアカウントでデプロイする cf. https://github.com/firebase/firebase-tools/releases/tag/v6.1.0 ▸ 注意 : Firebase Hosting APIを有効にしておく必要あり

Slide 17

Slide 17 text

ついでにCIも考える 17 ▸ CircleCIだとこんな感じ

Slide 18

Slide 18 text

ついでにCIも考える 18 ▸ Hostingのデプロイは成功するのに Functionsのデプロイに失敗する。。。 ▸ どうやらバグらしい https://github.com/firebase/firebase-tools/issues/787 ▸

Slide 19

Slide 19 text

まとめ

Slide 20

Slide 20 text

まとめ 20 ▸ Cloud FunctionsとHostingのちょっと 変わった使い方を紹介しました ▸ 節約のためにCacheは上手く使いましょう ▸ Firebaseは小さいプロダクトを素早く試すのに◎ いろいろ作ってみよう!

Slide 21

Slide 21 text

お疲れ様でした 何か質問があれば