CloudflareワーカーがTCPソケットを作成するためのconnect() APIを導入
InfoQ ホームページ ニュース CloudflareワーカーがTCPソケットを作成するconnect() APIを導入
2023 年 5 月 28 日 2 分で読む
による
レナト・ロシオ
最近の開発者週間中に、Cloudflare はアウトバウンド TCP ソケットを作成するための Worker API を発表しました。 新しいソケット API を使用すると、開発者はデータベースを含むワーカーから TCP ベースのインフラに直接接続できます。
ランタイム API として利用可能な connect() 関数は、開発者が接続が開いたままになるまでデータの読み書きを可能にする TCP ソケットを返します。 ワーカーはすでに HTTP エンドポイントや他の Cloudflare サービスと対話できますが、大多数のデータベースではクライアントが直接 TCP ソケットを開いて接続する必要があります。 CloudflareのプロダクトマネージャーであるBrendan Irvine-Broque氏とCloudflareのプロダクトディレクターであるMatt Silverlock氏は次のように説明しています。
Workers では、可能な限り、ブラウザおよびブラウザ以外の環境全体でサポートされる標準 API をサポートすることを目指しています (...) しかし、TCP ソケットに関しては、ランタイム間で明確に共有される標準が存在しないという課題に直面しました。 私たちは既存の API と提案の最良の要素を組み込むよう努めており、将来の標準に貢献するつもりです。
昨年の秋、CloudflareはVercelおよびShopifyと協力して、Webブラウザ以外のJavaScriptベースの開発環境における標準化されたWeb APIの相互運用可能な実装に焦点を当てた新しいコミュニティグループであるWinterCGを立ち上げました。
新しい API には、cloudflare:sockets から connect 関数をインポートすることでアクセスします。 一般的な使用例の 1 つは、データベースへの接続を作成することです。次に例を示します。
出典: https://blog.cloudflare.com/workers-tcp-socket-api-connect-databases/
PostgreSQL 用の JavaScript データベース ドライバーである pg はすでにサポートされていますが、MySQL ドライバー mysql および mysql2 はまだサポートされていません。 アーバイン・ブロック氏とマット・シルバーロック氏はこう警告する。
リクエストごとに新しい接続が作成されます。 これは、すべてのプラットフォームにわたって、サーバーレス機能からデータベースに接続する際の現在の最大の課題の 1 つです (...) 私たちは、最も一般的なデータベース向けの接続プーリングに対するより単純なアプローチにすでに取り組んでいます。
コンテンツ配信ネットワークは、一部の開発者から要望があった受信 TCP および UDP 接続のサポートや、QUIC ベースのアプリケーション プロトコルなど、将来さらに多くの機能を追加する予定です。
2023年のDeveloper Week中に発表された新機能はconnect() APIだけではありませんでした。Cloudflareは、アプリケーションシークレットを安全に管理するためのソリューションであるSecrets Store、CloudflareのサーバーレスデータベースであるD1の改善、メッセージングサービスキューのコンシューマー同時実行性を導入しました。 さらに、Cloudflareは、Neon、PlanetScale、Supabase on Workersのデータベース統合を発表しました。 UpLeveled の創設者である Karl Horky 氏は次のようにツイートしています。
Neon や他のサーバーレス/エッジ プロバイダーのようなプロキシはなく、通常は TCP 経由で接続するだけです。 これは素晴らしいことのように聞こえますが、最近の他のエッジ データベースの発表よりもはるかに大規模になる可能性があります。
開いている各 TCP ソケットは、ワーカーで同時に開くことができるオープン接続の最大数としてカウントされ、SMTP メール サーバーに電子メールを送信するための TCP 接続をポート 25 に作成することはできません。
Kalix を使用すると、クラウドに簡単に移行し、信じられないほど速く革新できます。 NoOps が必要な、高性能のマイクロサービスと API を構築します。 もっと詳しく知る。
InfoQ で執筆することで多くの扉が開かれ、キャリアの機会が増加しました私にとって。 専門家や思想的リーダーと深く関わり、自分が扱ったトピックについてさらに学ぶことができました。 また、学んだことをより広範なテクノロジー コミュニティに広め、テクノロジーが現実世界でどのように使用されているかを理解することもできます。
私は今年初めに InfoQ のコントリビューター プログラムを発見し、それ以来楽しんでいます。 ソフトウェア開発者のグローバル コミュニティと学習を共有するためのプラットフォームを提供してくれたことに加えて、InfoQ のピアツーピア レビュー システムのおかげで私の執筆力は大幅に向上しました。 。 ソフトウェアの専門知識を共有する場所を探している場合は、InfoQ への貢献を始めてください。
私はテクノロジーを最新の状態に保つ方法として InfoQ .NET キューのニュースを書き始めましたが、それ以上に多くのことを得ることができました。 知識豊富な人々に会い、世界的な知名度を得て、ライティングスキルを向上させました。
InfoQ の編集者になったことは、私のキャリアの中で最良の決断の 1 つでした 。 それは私に挑戦をもたらし、非常に多くの点で私を成長させてくれました 。 もっと多くの人に来てもらいたいです私たちのチームに参加してください。
InfoQ はフルタイムの編集長を募集しています C4Media の国際的な、常にリモートのチームに参加します。 私たちと一緒に、現代の最も革新的なテクノロジーを取り上げ、世界で最も優秀なソフトウェア実践者と協力し、160 万を超える開発チームが新しいテクノロジーや実践を導入して、ソフトウェアとチームが提供できるものの限界を押し上げるのを支援してください。
毎週火曜日に送信される InfoQ の先週のコンテンツのまとめ。 250,000 人を超える上級開発者のコミュニティに参加してください。 例を見る
私たちはあなたのプライバシーを守ります。
コメントを投稿するには、InfoQ アカウントを登録するか、ログインする必要があります。 しかし、登録の背後にはさらに多くのことがあります。
InfoQ のエクスペリエンスを最大限に活用してください。
許可される HTML: a、b、br、blockquote、i、li、pre、u、ul、p
許可される HTML: a、b、br、blockquote、i、li、pre、u、ul、p
許可される HTML: a、b、br、blockquote、i、li、pre、u、ul、p
専門家のコミュニティに参加してください。 レナト・ロシオは多くの扉を開き、キャリアの機会を増やしてくれました ヴィヴィアン・フー InfoQ のピアツーピアレビューシステムは私の文章力を大幅に向上させました オゲネブウェデ・エメニは世界的な知名度を獲得し、私のライティングスキルを向上させました エディン・カピッチ 私のキャリアにおける最良の決断は、さまざまな面で私を成長させてくれました私たちのチームに参加してください。 Thomas Betts InfoQ 常勤編集長 InfoQ のエクスペリエンスを最大限に活用してください。