Deno Deploy Beta 3が来たぞ
2021/10/28にDeno Deploy Beta 3がリリースされました。
ツイートにもありますが、トピックは以下の5点です。
- Outbound TCP and TLS connections
- DNS resolution
- URLPattern
- Playgrounds
- Organizations
公式の記事をもとに、アップデートされた点を見ていきます。
Beta2のときの記事はこちら:
外向きのTCP/TLSコネクションを張れるようになった
Deno.connect
またはDeno.connectTls
を使って外向きのTCP/TLSコネクションを張れるようになりました。
これにより、DBに直接接続するなど、HTTP以外の通信処理をできるようになりました。
名前解決が出来るようになった
Deno.resolveDns()
を使えるようになりました。
const ips = await Deno.resolveDns("deno.land", "A");
console.log(ips)
URLPattern APIが追加された
Deno 1.14.0にて追加(1.15にて安定化)されていたURLPattern APIがDeno Deploy側でも使えるようになりました。
path-to-regexpライクなルーティングDSLを、外部のWebフレームワーク等の追加なしで書けるようになります。
Playgroundが追加された
こちらはBeta 3より少し早く発表されていましたが、Playgroundが追加されました。
CodePenやCodeSandboxなどのように、Webブラウザ上で直接コードを編集・動作確認できます。
また、https://dash.deno.com/playground/xxx
のURLが発行され、他のユーザーとシェアすることもできます。
前述のURLPatternの使用例がPlaygroundとして公開されています。
iframe
タグを利用して、PlaygroundをWebページ内に埋め込むこともできます。
<iframe width="100%" height="600" src="https://embed.deno.com/playground/example-sift?no-border=on&layout=both"></iframe>
Embed codeの生成・表示確認用に https://embed.deno.com が用意されています。
Zennでは直接HTMLを書くことはできないのでここに表示することはできないのですが、CodePen等の先行サービスは独自記法で対応しているので、@[denodeploy](id)
のような書き方で埋め込めるようになったら良いなーと思っています。
Organizationが追加された
これまでDeno Deployのダッシュボードは登録者個人でしか見られませんでしたが、Organizationを作って他のユーザーと共有することができるようになりました。
これで企業その他のチームでDeno Deployを使うことも簡単になりますね。
ドキュメントはこちら。
deployctlはアーカイブされた
Deno Deployをローカルで動作させるツールとしてdeployctlが提供されていましたが、リポジトリがアーカイブされました。
今後はdeno run
で実行することが推奨されるようです。
型情報を利用したい場合はdeployctl types
の出番はあるのではないかと思っていますが、アーカイブされた以上、更新もなさそうですね…。
ちなみに、Neovimにてdeno run
を実行するコマンドを以下の記事で紹介していますので、ユースケースが合う方は使ってみてください。
listenAndServeが推奨になった
明記されていませんが、サーバー用スクリプトの書き方が変化しています。
Beta 1時点ではaddEventListener()
を使用する記法でしたが、Beta 2でネイティブHTTPサーバー(Deno.listen
とDeno.serveHttp
)を使う形に変化しました。
その後、std/httpがネイティブHTTPサーバーをラップしたものに修正され、Beta 3の記事ではこのモジュールのlistenAndServe
がメインで使われています。
まだBetaなので更に変更が入るかもしれませんが、それまでは(少なくとも新しいプロジェクトでは)listenAndServe
を使うのが良さそうです。
追記: 非推奨になりました
以下の記事をご確認ください。
所感
TCP/TLSコネクションやDNS resolutionに関しては自分の知見が浅く、直接のユースケースが思いつきませんでしたが、Playgroundsは面白そうです。
記事中に書いたように、CodePenなどを意識しているのではないかと思うのですが、これをホスティングサービスと一緒にするというのは珍しいんじゃないかと思います。
また、今後正式なサービスとして運用するとなると、Organizationが追加されたのも納得です。
現状は何も発表されていませんが、このあたりは有料機能になったりするかもな、と思っています。
おわりに
GAリリースへ向けてブラッシュアップが進んでいますね。
予定ではQ4 2021
とのことなので、もう間もなく正式版になるのだと思います。楽しみです。
あと、Beta版バージョンアップ紹介のブログのイラストは、だんだんと描き込みが上がっていっているとのことです。かわいい。
Discussion