Amazon Web Services ブログ

AWS AppSync Events のデータソース統合を使用してリアルタイムアプリケーションを強化

4 月 24 日、AWS AppSync Events がチャネル名前空間のデータソース統合をサポートするようになったことをお知らせします。これにより、デベロッパーは、より高度なリアルタイムアプリケーションを作成できるようになりました。この新機能により、AWS Lambda 関数、Amazon DynamoDB テーブル、Amazon Aurora データベース、および他のデータソースをチャネル名前空間ハンドラーに関連付けることができます。AWS AppSync Events を利用すると、データ検証、イベント変換、イベントの永続的ストレージなどの機能を備えたリッチなリアルタイムアプリケーションを構築できます。

これらの新機能により、デベロッパーは、Lambda 関数を利用してイベントを変換およびフィルタリングすることで高度なイベント処理ワークフローを作成したり、新しい AppSync_JS バッチユーティリティを使用してイベントのバッチを DynamoDB に保存したりできます。この統合により、複雑なインタラクティブフローを実現でき、開発時間と運用上のオーバーヘッドを削減できます。例えば、複雑な統合コードを記述することなく、イベントをデータベースに自動的に保存できるようになりました。

データソース統合の概要

AWS マネジメントコンソールを使用してデータソース統合をセットアップする方法を順に見ていきましょう。まず、コンソールで AWS AppSync に移動し、Event API を選択 (または新規作成) します。

AWS コンソールのスクリーンショット

イベントデータを DynamoDB に直接永続化

複数の種類のデータソース統合から選択できます。この最初の例では、データソースとして DynamoDB テーブルを作成します。まず DynamoDB テーブルが必要なので、コンソールで DynamoDB に移動し、event-messages という新しいテーブルを作成します。この例で必要なのは、id というパーティションキーを使用してテーブルを作成することだけです。ここで、[テーブルを作成] をクリックし、デフォルトのテーブル設定を受け入れてから、コンソールで AppSync に戻ります。

DynamoDB の AWS コンソールのスクリーンショット

AppSync コンソールで、先ほど設定した Event API に戻り、タブ付きナビゲーションパネルから [データソース] を選択して、[データソースを作成] ボタンをクリックします。

AWS コンソールのスクリーンショット

データソースに名前を付けた後、[データソース] ドロップダウンメニューから [Amazon DynamoDB] を選択します。これで DynamoDB の設定オプションが表示されます。

AWS コンソールのスクリーンショット

データソースの設定が完了したら、ハンドラーロジックを実装できます。DynamoDB にイベントを永続化するパブリッシュハンドラーの例を次に示します:

import * as ddb from '@aws-appsync/utils/dynamodb'
import { util } from '@aws-appsync/utils'

const TABLE = 'events-messages'

export const onPublish = {
  request(ctx) {
    const channel = ctx.info.channel.path
    const timestamp = util.time.nowISO8601()
    return ddb.batchPut({
      tables: {
        [TABLE]: ctx.events.map(({id, payload}) => ({
          channel, id, timestamp, ...payload,
        })),
      },
    })
  },
  response(ctx) {
    return ctx.result.data[TABLE].map(({ id, ...payload }) => ({ id, payload }))
  },
}
JavaScript

ハンドラーコードを追加するために、タブ付きナビゲーションで [名前空間] をクリックします。そこでは、新しい [デフォルト] の名前空間が既に作成されています。デフォルトの名前空間をクリックして開くと、設定の詳細のすぐ下に [イベントハンドラー] を追加するためのボタンがあります。

AWS コンソールのスクリーンショット

[イベントハンドラーを作成] をクリックすると新しいダイアログが開きます。そこで、設定として [データソースを使用したコード] を選択し、パブリッシュ設定として DynamoDB データソースを選択します。

AWS コンソールのスクリーンショット

ハンドラーを保存したら、コンソールに組み込まれているテストツールを使用して統合をテストできます。ここでのデフォルト値は機能するはずです。以下に示すように、2 つのイベントが DynamoDB テーブルに正常に書き込まれました。

AWS コンソールのスクリーンショット

DynamoDB でキャプチャされたすべてのメッセージは次のとおりです!

AWS コンソールのスクリーンショット

エラー処理とセキュリティ

新しいデータソース統合には、包括的なエラー処理機能が含まれています。同期オペレーションでは、機密性の高いバックエンド情報をクライアントに公開しないことでセキュリティを維持しながら、Amazon CloudWatch にログ記録される特定のエラーメッセージを返すことができます。認可シナリオでは、Lambda 関数を使用してカスタム検証ロジックを実装し、特定のチャネルまたはメッセージタイプに対するアクセスを制御できます。

今すぐご利用いただけます

AWS AppSync Events のデータソース統合は、AWS AppSync が利用可能なすべての AWS リージョンで今すぐご利用いただけます。これらの新機能は、AWS AppSync コンソール、AWS コマンドラインインターフェイス (CLI)、または AWS SDK を通じてご利用いただけます。データソース統合の使用に追加料金はかかりません。お支払いいただくのは、(Lambda 呼び出しや DynamoDB オペレーションなど) 使用した基盤となるリソースと、既存の AppSync Events の使用量についての料金のみです。

AWS AppSync Events とデータソース統合の詳細については、AWS AppSync Events のドキュメントにアクセスしてください。より強力なリアルタイムアプリケーションの構築を今すぐ開始しましょう。

– Micah

原文はこちらです。


ニュースブログはいかがでしたか? こちらの 1 分間のアンケートにぜひご協力ください!

(このアンケートは外部企業に委託して行われます。AWS は、AWS プライバシー通知に記載された内容に従って、お客様の情報を取り扱います。AWS は、このアンケートを通じて収集したデータを所有し、収集した情報をアンケートの回答者と共有することはありません)