SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
2022/04/27

toranoana.deno #6 



虎の穴ラボ

奥谷 一陽

Supabase Edge Functions と Netlify Edge Functions

を使ってみる

– 機能とその比較 –

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
自己紹介

奥谷 一陽

所属:虎の穴ラボ株式会社

担当:とらコインSHOPなど新規事業系の開発

興味:TypeScript、Deno

おすすめコンテンツ:

  『プラネテス』

  『暴太郎戦隊ドンブラザーズ』



Twitter:@okutann88

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
News

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
News

- Supabase とNetlify が deno deployをインフラとしたサービスを
公開








参考: https://deno.com/blog 

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
アジェンダ

- Supabase Edge Functions 触ってみる
- Netlify Edge Functions 触ってみる
- まとめ



Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
Supabase Edge Functions 触ってみる

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
Supabase とは?

- ‘The Open Source Firebase Alternative’ を掲げる
BasS(Backend As A Service)

- postgress データベースや、認証、ストレージなどの機能を提供し
てくれる

参考: https://supabase.com/

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
Supabase Edge Functions とは?

- Supabase が提供してくれるエッジコンピューティング

- Supabase Edge Functions のインフラは、

Deno Deploy 上に構築されている



すなわち、Deno Deploy + バックエンドインフラのサービス

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
触ってみましょう

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
前提

- Supabase には、アカウントを持っているものとします

- supabase CLI は、インストール済みとします

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
Function の作成

コマンドを実行して関数を作成

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
supabase/functions/first-function/index.ts 

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
デプロイ

一旦 Supabase へログイン





続けてデプロイ

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
アクセスする





test-function.ts の記述通りの結果が返ってきます

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
データベースにアクセスしてみる

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
準備

supabase の Table editor で適当なテーブルを作ります。





Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
実装













supabaseのリソースアクセスに必要な値を環境変数として

提供してくれます

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
アクセス







supabaseが提供するデータベースから情報を取得できました

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
いいところ/気がついたこと

- 用意されているリソースへのアクセスがとにかく容易

- 特定のリソースへのアクセスに関わる処理はある程度まとめた単位で
の実装が向いていそう

- バックエンドサービスとしての API 提供が目的とされているDeno
Deploy を直接使うと可能なブラウザ向けのページ生成/配信には向か
ない

- supabase functions new sub/same-function のような、サブディレクトリ
で関数を作成できない

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
Netlify Edge Functions 触ってみる

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
Netlify とは?

- ‘Build the future of the web’ を掲げる、

静的サイトホスティングサービスを代表とする 企業

- 静的 Web サイトホスティングサービス、

だけでなくサーバーレス実行環境を提供

参考:https://www.netlify.com/

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
Netlify Edge Functions とは?

- Netlify が提供する エッジコンピューティング

- Netlify Edge Functions のインフラは、Deno Deploy 上に構築され
ている

- 現在 Beta 公開

強化されているのは、Web サイト/ページとしての要素

サーバレスWebアプリ/ページを作ることを前提とした、

より簡潔な記述の支援と機能

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
触ってみましょう

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
前提

- Netlify にアクセス済みで、サイトが作成されていること

- github もしくは、何かのリポジトリサービスと連携済みであること

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
Function の作成 1

以下の構成で、ディレクトリとファイルを作成します

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
Function の作成 2

関数本体 netlify/edge-functions/test-function.ts





関数とパスを関連付けする netlify.toml

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
デプロイ

github へ push を行うと、作成したNetlifyのサイトに展開されます。

こちらは、ブラウザでアクセスできます。



[デモ用のURLは後で貼ります。youtube live のタイムラインにも乗せ
てもらいます]

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
これだけです

Supabase Edge Functions では「サーバーアプリケーション」を書きました

Netlify Edge Functions では、「関数」をデフォルトエクスポートするだけです


Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
少し掘り下げ

デフォルトエクスポートする関数は、次のようにする必要があります









ポイントになるのは Context オブジェクト

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
Context オブジェクトが、Netlify Edge Functions の特徴

Contextオブジェクトには、次のものが含まれている

- cookies

- geo

- json(value)

- log(...values)

- next()

- rewrite(url)

参考
:https://docs.netlify.com/netlify-labs/experimental-features/edge-functions/
api/#netlify-specific-context-object

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
実装例 geo の利用

geo を使って、アクセス元の情報は、次のように取得できます













https://superb-khapse-e6709a.netlify.app/geo-cookies

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
実装例 geo の利用

geo を使って、アクセス元の情報は、次のように取得できます













https://superb-khapse-e6709a.netlify.app/geo-cookies

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
実装例 ルーティング

ルーティングは、次のように処理できます













Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
実装例 ルーティング

パスと、関数の関連付けは、ワイルドカードを使用します。









https://superb-khapse-e6709a.netlify.app/route/a/
https://superb-khapse-e6709a.netlify.app/route/b/
https://superb-khapse-e6709a.netlify.app/route/c/123

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
実装例 tsx/jsx

Netlify Edge Functions は、tsx/jsxを実行する対象の関数として読み
込んでくれていないようです。

ts/js で記述し、tsx/jsxを呼び出すようにする必要がありました。

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
実装例 tsx/jsx

https://main--superb-khapse-e6709a.netlify.app/tsx



Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
いいところ/気がついたところ

- cookiesや、jsonでのレスポンスなど Web API として欲しい機能が
デフォルトで導入済み

- 独自拡張として、アクセス元の取得などができる

- 関数単位での実装ができる => スコープが小さい

比較した supabase は、supabase Edge Servers といえるくらいに、最
小の関数をデプロイする思想

Copyright  (C) 2021 Toranoana Inc. All Rights Reserved.
まとめ

- Deno Deploy ベースのインフラを使った、特色の異なるサービスが公開されま
した

- Deno Deploy が単純に使われているわけではないサービスとしての特色を
持っています

- 用途がかなり異なるので、何をしたいのか?を検討が必要

- Deno Deploy 本体で十分なケースもあり得る

- Netlify Edge Functions で、NextやNuxt、SvelteKit などが、動作がすると紹介
されているので、期待してます


Contenu connexe

Tendances

新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?naoki koyama
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドコンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドktateish
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!kwatch
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうRyuji Tsutsui
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkanフロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkanItsuki Kuroda
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割Recruit Lifestyle Co., Ltd.
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)NTT DATA Technology & Innovation
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いたAkihiro Kuwano
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方増田 亨
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能Kohei Tokunaga
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までMasahito Zembutsu
 

Tendances (20)

新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドコンセプトから理解するGitコマンド
コンセプトから理解するGitコマンド
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkanフロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
 

Similaire à Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –

Deno で始めるフロントエンド
Deno で始めるフロントエンドDeno で始めるフロントエンド
Deno で始めるフロントエンド虎の穴 開発室
 
Deno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介しますDeno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介します虎の穴 開発室
 
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る虎の穴 開発室
 
今まで公開してきた Deno Third Party Modules -- Deno での WebAssembly の利用の話 --
今まで公開してきた Deno Third Party Modules -- Deno での WebAssembly の利用の話 --今まで公開してきた Deno Third Party Modules -- Deno での WebAssembly の利用の話 --
今まで公開してきた Deno Third Party Modules -- Deno での WebAssembly の利用の話 --虎の穴 開発室
 
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発虎の穴 開発室
 
○○ as Code(LL Diver)
○○ as Code(LL Diver)○○ as Code(LL Diver)
○○ as Code(LL Diver)Yoshiyuki Takano
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすShunsuke Maeda
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術Toru Yamaguchi
 
Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術kazuya noshiro
 
IIJGIO x ビヨンドのオススメポイント
IIJGIO x ビヨンドのオススメポイントIIJGIO x ビヨンドのオススメポイント
IIJGIO x ビヨンドのオススメポイントSuguru Ito
 
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとは
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとはインフラ刷新プロジェクト「Neco」が目指す最高のクラウドとは
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとはShin'ya Ueoka
 
yui-frameworks cloundservice-2010-06-13
yui-frameworks cloundservice-2010-06-13yui-frameworks cloundservice-2010-06-13
yui-frameworks cloundservice-2010-06-13Jun Funakura
 
React + Amplifyで アプリ開発
React + Amplifyで アプリ開発React + Amplifyで アプリ開発
React + Amplifyで アプリ開発虎の穴 開発室
 
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発   takusuta tech conf #1Riot.jsを用いたweb開発   takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1Keisuke Imai
 
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNA
 
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる虎の穴 開発室
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発Satoshi Takano
 
Amplify Studioを使ってみた
Amplify Studioを使ってみたAmplify Studioを使ってみた
Amplify Studioを使ってみた虎の穴 開発室
 
DeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA
 

Similaire à Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 – (20)

Deno で始めるフロントエンド
Deno で始めるフロントエンドDeno で始めるフロントエンド
Deno で始めるフロントエンド
 
Deno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介しますDeno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介します
 
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
【20220120 toranoana.deno#4】deno を使って「ログイン」するサービスを作る
 
今まで公開してきた Deno Third Party Modules -- Deno での WebAssembly の利用の話 --
今まで公開してきた Deno Third Party Modules -- Deno での WebAssembly の利用の話 --今まで公開してきた Deno Third Party Modules -- Deno での WebAssembly の利用の話 --
今まで公開してきた Deno Third Party Modules -- Deno での WebAssembly の利用の話 --
 
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
 
○○ as Code(LL Diver)
○○ as Code(LL Diver)○○ as Code(LL Diver)
○○ as Code(LL Diver)
 
AWS Proton を使ってみた
AWS Proton を使ってみたAWS Proton を使ってみた
AWS Proton を使ってみた
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
 
Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術Unity開発で週イチ呑み会を支える技術
Unity開発で週イチ呑み会を支える技術
 
IIJGIO x ビヨンドのオススメポイント
IIJGIO x ビヨンドのオススメポイントIIJGIO x ビヨンドのオススメポイント
IIJGIO x ビヨンドのオススメポイント
 
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとは
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとはインフラ刷新プロジェクト「Neco」が目指す最高のクラウドとは
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとは
 
yui-frameworks cloundservice-2010-06-13
yui-frameworks cloundservice-2010-06-13yui-frameworks cloundservice-2010-06-13
yui-frameworks cloundservice-2010-06-13
 
React + Amplifyで アプリ開発
React + Amplifyで アプリ開発React + Amplifyで アプリ開発
React + Amplifyで アプリ開発
 
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発   takusuta tech conf #1Riot.jsを用いたweb開発   takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
 
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
 
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
 
Amplify Studioを使ってみた
Amplify Studioを使ってみたAmplify Studioを使ってみた
Amplify Studioを使ってみた
 
DeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechcon
 

Plus de 虎の穴 開発室

Railsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認するRailsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認する虎の穴 開発室
 
虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf虎の穴 開発室
 
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdfDeno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf虎の穴 開発室
 
toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明虎の穴 開発室
 
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと虎の穴 開発室
 
通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」虎の穴 開発室
 
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!虎の穴 開発室
 
セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説虎の穴 開発室
 
いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!虎の穴 開発室
 
【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ虎の穴 開発室
 
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について虎の穴 開発室
 
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜	【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜 虎の穴 開発室
 
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント 虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント 虎の穴 開発室
 
【20220120 toranoana.deno#4】denoでffiの続き
【20220120 toranoana.deno#4】denoでffiの続き【20220120 toranoana.deno#4】denoでffiの続き
【20220120 toranoana.deno#4】denoでffiの続き虎の穴 開発室
 
虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料 虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料 虎の穴 開発室
 
虎の穴ラボにおけるリモートワークの働き方
虎の穴ラボにおけるリモートワークの働き方虎の穴ラボにおけるリモートワークの働き方
虎の穴ラボにおけるリモートワークの働き方虎の穴 開発室
 
【20211202_toranoana.deno#3】denoでFFI
【20211202_toranoana.deno#3】denoでFFI【20211202_toranoana.deno#3】denoでFFI
【20211202_toranoana.deno#3】denoでFFI虎の穴 開発室
 

Plus de 虎の穴 開発室 (20)

FizzBuzzで学ぶJavaの進化
FizzBuzzで学ぶJavaの進化FizzBuzzで学ぶJavaの進化
FizzBuzzで学ぶJavaの進化
 
Railsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認するRailsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認する
 
虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf
 
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdfDeno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
 
toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明
 
GCPの画像認識APIの紹介
GCPの画像認識APIの紹介 GCPの画像認識APIの紹介
GCPの画像認識APIの紹介
 
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
 
GitHub APIとfreshで遊ぼう
GitHub APIとfreshで遊ぼうGitHub APIとfreshで遊ぼう
GitHub APIとfreshで遊ぼう
 
通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」
 
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
 
セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説
 
いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!
 
【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ
 
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
 
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜	【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
 
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント 虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
 
【20220120 toranoana.deno#4】denoでffiの続き
【20220120 toranoana.deno#4】denoでffiの続き【20220120 toranoana.deno#4】denoでffiの続き
【20220120 toranoana.deno#4】denoでffiの続き
 
虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料 虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料
 
虎の穴ラボにおけるリモートワークの働き方
虎の穴ラボにおけるリモートワークの働き方虎の穴ラボにおけるリモートワークの働き方
虎の穴ラボにおけるリモートワークの働き方
 
【20211202_toranoana.deno#3】denoでFFI
【20211202_toranoana.deno#3】denoでFFI【20211202_toranoana.deno#3】denoでFFI
【20211202_toranoana.deno#3】denoでFFI
 

Dernier

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 

Dernier (12)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –

  • 1. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 2022/04/27
 toranoana.deno #6 
 
 虎の穴ラボ
 奥谷 一陽
 Supabase Edge Functions と Netlify Edge Functions
 を使ってみる
 – 機能とその比較 –

  • 2. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 自己紹介
 奥谷 一陽
 所属:虎の穴ラボ株式会社
 担当:とらコインSHOPなど新規事業系の開発
 興味:TypeScript、Deno
 おすすめコンテンツ:
   『プラネテス』
   『暴太郎戦隊ドンブラザーズ』
 
 Twitter:@okutann88

  • 3. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. News

  • 4. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. News
 - Supabase とNetlify が deno deployをインフラとしたサービスを 公開 
 
 
 
 参考: https://deno.com/blog 

  • 5. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. アジェンダ
 - Supabase Edge Functions 触ってみる - Netlify Edge Functions 触ってみる - まとめ
 

  • 6. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. Supabase Edge Functions 触ってみる

  • 7. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. Supabase とは?
 - ‘The Open Source Firebase Alternative’ を掲げる BasS(Backend As A Service)
 - postgress データベースや、認証、ストレージなどの機能を提供し てくれる
 参考: https://supabase.com/

  • 8. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. Supabase Edge Functions とは?
 - Supabase が提供してくれるエッジコンピューティング
 - Supabase Edge Functions のインフラは、
 Deno Deploy 上に構築されている
 
 すなわち、Deno Deploy + バックエンドインフラのサービス

  • 9. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 触ってみましょう

  • 10. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 前提
 - Supabase には、アカウントを持っているものとします
 - supabase CLI は、インストール済みとします

  • 11. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. Function の作成
 コマンドを実行して関数を作成

  • 12. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. supabase/functions/first-function/index.ts 

  • 13. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. デプロイ
 一旦 Supabase へログイン
 
 
 続けてデプロイ

  • 14. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. アクセスする
 
 
 test-function.ts の記述通りの結果が返ってきます

  • 15. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. データベースにアクセスしてみる

  • 16. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 準備
 supabase の Table editor で適当なテーブルを作ります。
 
 

  • 17. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 実装
 
 
 
 
 
 
 supabaseのリソースアクセスに必要な値を環境変数として
 提供してくれます

  • 18. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. アクセス
 
 
 
 supabaseが提供するデータベースから情報を取得できました

  • 19. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. いいところ/気がついたこと
 - 用意されているリソースへのアクセスがとにかく容易
 - 特定のリソースへのアクセスに関わる処理はある程度まとめた単位で の実装が向いていそう
 - バックエンドサービスとしての API 提供が目的とされているDeno Deploy を直接使うと可能なブラウザ向けのページ生成/配信には向か ない
 - supabase functions new sub/same-function のような、サブディレクトリ で関数を作成できない

  • 20. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. Netlify Edge Functions 触ってみる

  • 21. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. Netlify とは?
 - ‘Build the future of the web’ を掲げる、
 静的サイトホスティングサービスを代表とする 企業
 - 静的 Web サイトホスティングサービス、
 だけでなくサーバーレス実行環境を提供
 参考:https://www.netlify.com/

  • 22. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. Netlify Edge Functions とは?
 - Netlify が提供する エッジコンピューティング
 - Netlify Edge Functions のインフラは、Deno Deploy 上に構築され ている
 - 現在 Beta 公開
 強化されているのは、Web サイト/ページとしての要素
 サーバレスWebアプリ/ページを作ることを前提とした、
 より簡潔な記述の支援と機能

  • 23. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 触ってみましょう

  • 24. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 前提
 - Netlify にアクセス済みで、サイトが作成されていること
 - github もしくは、何かのリポジトリサービスと連携済みであること

  • 25. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. Function の作成 1
 以下の構成で、ディレクトリとファイルを作成します

  • 26. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. Function の作成 2
 関数本体 netlify/edge-functions/test-function.ts
 
 
 関数とパスを関連付けする netlify.toml

  • 27. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. デプロイ
 github へ push を行うと、作成したNetlifyのサイトに展開されます。
 こちらは、ブラウザでアクセスできます。
 
 [デモ用のURLは後で貼ります。youtube live のタイムラインにも乗せ てもらいます]

  • 28. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. これだけです
 Supabase Edge Functions では「サーバーアプリケーション」を書きました
 Netlify Edge Functions では、「関数」をデフォルトエクスポートするだけです 

  • 29. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 少し掘り下げ
 デフォルトエクスポートする関数は、次のようにする必要があります
 
 
 
 
 ポイントになるのは Context オブジェクト

  • 30. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. Context オブジェクトが、Netlify Edge Functions の特徴
 Contextオブジェクトには、次のものが含まれている
 - cookies
 - geo
 - json(value)
 - log(...values)
 - next()
 - rewrite(url)
 参考 :https://docs.netlify.com/netlify-labs/experimental-features/edge-functions/ api/#netlify-specific-context-object

  • 31. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 実装例 geo の利用
 geo を使って、アクセス元の情報は、次のように取得できます
 
 
 
 
 
 
 https://superb-khapse-e6709a.netlify.app/geo-cookies

  • 32. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 実装例 geo の利用
 geo を使って、アクセス元の情報は、次のように取得できます
 
 
 
 
 
 
 https://superb-khapse-e6709a.netlify.app/geo-cookies

  • 33. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 実装例 ルーティング
 ルーティングは、次のように処理できます
 
 
 
 
 
 

  • 34. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 実装例 ルーティング
 パスと、関数の関連付けは、ワイルドカードを使用します。
 
 
 
 
 https://superb-khapse-e6709a.netlify.app/route/a/ https://superb-khapse-e6709a.netlify.app/route/b/ https://superb-khapse-e6709a.netlify.app/route/c/123

  • 35. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 実装例 tsx/jsx
 Netlify Edge Functions は、tsx/jsxを実行する対象の関数として読み 込んでくれていないようです。
 ts/js で記述し、tsx/jsxを呼び出すようにする必要がありました。

  • 36. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. 実装例 tsx/jsx
 https://main--superb-khapse-e6709a.netlify.app/tsx
 

  • 37. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. いいところ/気がついたところ
 - cookiesや、jsonでのレスポンスなど Web API として欲しい機能が デフォルトで導入済み
 - 独自拡張として、アクセス元の取得などができる
 - 関数単位での実装ができる => スコープが小さい
 比較した supabase は、supabase Edge Servers といえるくらいに、最 小の関数をデプロイする思想

  • 38. Copyright  (C) 2021 Toranoana Inc. All Rights Reserved. まとめ
 - Deno Deploy ベースのインフラを使った、特色の異なるサービスが公開されま した
 - Deno Deploy が単純に使われているわけではないサービスとしての特色を 持っています
 - 用途がかなり異なるので、何をしたいのか?を検討が必要
 - Deno Deploy 本体で十分なケースもあり得る
 - Netlify Edge Functions で、NextやNuxt、SvelteKit などが、動作がすると紹介 されているので、期待してます