AWSは最近、フルマネージドのサーバーレスWebSocket APIサービスであるAWS AppSync Eventsに、WebSocket接続によるダイレクトメッセージ発行の新機能を追加した。
同社は以前、AWS AppSync Eventsをリリースしており、開発者は安全でパフォーマンスの高いサーバーレスWebSocket APIを使用して、数人から数百万人のサブスクライバーにリアルタイムのイベントデータを簡単にブロードキャストできる。
クラウドソリューションアーキテクトでAWS Community BuilderのDarryl Ruggles氏は、Xについてツイートした:
Appsync Eventsは数ヶ月前にマネージド/サーバーレスWebSocket APIとして登場しました。AWSでWebSocketを使うには他のアプローチもあるが、これは多くのケースでうまく機能します。そして今回、WebSocket接続で直接メッセージを発行するためのサポートが追加されました。
AWSのプリンシパルプロダクトマネージャーであるBrice Pellé氏は、発表のブログ記事で次のように述べている:
このアップデートにより、開発者はイベントの発行と受信の両方に単一のWebSocket接続を使用できるようになり、リアルタイム機能の開発が効率化され、実装の複雑さが軽減されます。
開発者は、バックエンドのパブリッシングにHTTPエンドポイントを、ウェブやモバイルのクライアントアプリケーションにWebSocketを選択することで、柔軟性を得ることができる。この機能強化により、開発者はコラボレーションツールやライブダッシュボードなど、より応答性が高く魅力的なリアルタイムアプリケーションを構築できるようになる。
開発者は、AppSyncコンソールのPub/Subエディタを使って、新しいWebSocketパブリッシング機能をすぐにテストできる。パブリッシング方法として「WebSocket」を選択すると、送信成功時にpublish_successメッセージがトリガーされる。
(出典:AWSFront-End Web & Mobile blog post)
AppSyncに新しい「publish」WebSocketオペレーションが導入された。WebSocket 接続を確立した後、クライアントは設定されたチャネルのネームスペースにイベントを発行できる。メッセージフォーマットには、ID、チャンネル、イベントの配列(最大5つ)、認証ヘッダーが必要です。配列内の各イベントは有効なJSON文字列でなければならない。
AWSは、開発プロセスをさらに効率化するためのインフラ管理ツールも提供している。AWS Cloud Development Kit(CDK)は、チャネルのネームスペースやAPIキーなど、AppSync Event APIのコンフィギュレーションとデプロイメントを簡素化する、Infrastructure as Codeのフレームワークである。CDKは、より高度な抽象化を提供するL2コンストラクトで構成されており、開発者は使い慣れたプログラミング言語を使用して、AppSync Event APIとそれに関連するチャネルネームスペースを簡単に定義できる。
ソフトウェアエンジニアのYoseph Radding氏がBlueskyに投稿した:
これがAWS CDKの基本的な仕組みです。L2コンストラクトと呼ばれる高次のコンストラクトを定義することで、すぐに使える抽象化を提供しています。例えばLambdaコンストラクトはバージョン、関数、IAMロールを作成します。
最後に、AppSyncがサポートされているすべてのリージョンで、WebSocket経由のパブリッシングが利用できる。クライアントの制限は、1接続あたり毎秒25リクエストだ。HTTPエンドポイントはより高いレートが必要な場合は引き続き使用できる。