Cloudflareホスティングに成功しますた!

Nuxt Hubのデプロイで発生していたエラーを、Nuxt Hubチームに問い合わせしてみました。エラーはAzure Cosmosへのクエリー実行時に発生していたのですが、CosmosDBのアクセスライブラリーを、@azure/cosmos → @cfworker/cosmos に変更の提案があり、試したところ、エラーが解消しました!

Cloudflareホストのページ

ページ移動時のレスポンスはまだまだ改善の余地がありそうですが、最初のレスポンスはAzureに比べ各段に改善した気がします。

さて、@azure/cosmosがCloudflareで動かなかった理由ですが、Cloudflare workerが完全なNode.jsランタイムではないからということらしいです。なので、Node.js前提のパッケージが全て問題なく動作するわけではないと。言われてみれば、さもありなんという気がします。そもそもコードが動くこと自体が驚きなんですから。

Cloudflare workerには、この問題に対処するための、'nodejs_compat_v2'というcompatibilityFlagsがあるらしいのですが、これで@azure/cosmosが動くようになるかのテストはまだ成功していません。まずは問題の状況が見えてきたという段階です。

とにかく、Nuxtで作成していれば同じコードでホスティングは自由に選択できる!というのは誤解でした。そして、ビルド時のpresetでホスティングの違いがすべて吸収できるわけでもないようです。それがわかったことで、むしろスッキリした感じもします。

Cloudflare workerの互換性をセットして@azure/cosmosを動くようにするのか?それとも、ホスト依存コードを受け入れるのか? 依存性を受け入れるのであれば、いっそ、CosmosDBをやめて、CloudflareのDataBaseやKVやストレージを使うのが素直なのでしょう。たいがい、コード開発前にホスティングが決まっている場合が多いでしょう。ならば、ホスティングに合わせてコードするので問題ないような気がします。どうしたものでしょう。

登録:2025-02-27 01:23
更新:2025-02-27 02:57
by nasu38yen
Copyright (C) 2014 Stadio Peace All Rights Reserved.