SlideShare a Scribd company logo
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 などが、動作がすると紹介
されているので、期待してます

Ad

More Related Content

What's hot (20)

目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
murachue
 
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とはガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
Brocade
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
akira6592
 
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
Akira Nakagawa
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
 
M3の医療webサービス群を支える基盤技術
M3の医療webサービス群を支える基盤技術M3の医療webサービス群を支える基盤技術
M3の医療webサービス群を支える基盤技術
IKEDA Kiyoshi
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Motonori Shindo
 
計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)
Makoto SAKAI
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
Preferred Networks
 
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
株式会社MonotaRO Tech Team
 
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
 
先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際
Tetsutaro Watanabe
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
murachue
 
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とはガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
Brocade
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
akira6592
 
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
Akira Nakagawa
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
 
M3の医療webサービス群を支える基盤技術
M3の医療webサービス群を支える基盤技術M3の医療webサービス群を支える基盤技術
M3の医療webサービス群を支える基盤技術
IKEDA Kiyoshi
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Motonori Shindo
 
計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)
Makoto SAKAI
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
Preferred Networks
 
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
株式会社MonotaRO Tech Team
 
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
 
先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際
Tetsutaro Watanabe
 

Similar to 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)
Yoshiyuki Takano
 
AWS Proton を使ってみた
AWS Proton を使ってみたAWS Proton を使ってみた
AWS Proton を使ってみた
虎の穴 開発室
 
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-13
Jun 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 #1
Keisuke Imai
 
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA
 
【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のその後 #denatechcon
DeNA
 
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-13
Jun 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 #1
Keisuke Imai
 
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA
 
【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のその後 #denatechcon
DeNA
 
Ad

More from 虎の穴 開発室 (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
虎の穴 開発室
 
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
虎の穴 開発室
 
Ad

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 などが、動作がすると紹介 されているので、期待してます