Amazon Cognito ストリーム - Amazon Cognito

Amazon Cognito ストリーム

Amazon Cognito Sync を初めて使用する場合は、AWS AppSync を使用してください。Amazon Cognito Sync と同様に、AWS AppSync はデバイス間でアプリケーションデータを同期化するためのサービスです。

このサービスは、アプリの設定やゲームステートといったユーザーデータの同期化を可能にします。また、複数のユーザーが同期し、共有されたデータでリアルタイムにコラボレートできるようにすることで、これらの機能を拡張します。

Amazon Cognito ストリームは、Amazon Cognito に保存されているデータに対する制御と洞察をデベロッパーに提供します。これで、デベロッパーはデータが更新および同期されるたびにイベントを受け取るように Kinesis ストリームを設定できるようになります。Amazon Cognito は、所有する Kinesis ストリームに各データセットの変更をリアルタイムでプッシュできます。

Amazon Cognito ストリームを使用すると、すべての Sync データを Kinesis に移動することができます。その後、これらをさらなる分析のために Amazon Redshift などのデータウェアハウスツールにストリーミングできます。Kinesis の詳細については、「Amazon Kinesis の使用開始方法」を参照してください。

ストリームの設定

Amazon Cognito ストリームは、Amazon Cognito コンソールで設定できます。Amazon Cognito コンソールで Amazon Cognito ストリームを有効にするには、パブリッシュ先の Kinesis ストリームと、選択されたストリームにイベントを配置するためのアクセス許可を Amazon Cognito に付与する IAM ロールを選択する必要があります。

コンソールのホームページから、以下の操作を行います。

  1. Amazon Cognito ストリームをセットアップする ID プールの名前をクリックします。ID プールの [Dashboard] (ダッシュボード) ページが表示されます。

  2. [Dashboard] (ダッシュボード) ページの右上にある [Edit identity pool] (ID プールの編集) をクリックします。[Manage Federated Identities] (フェデレーティッド ID の管理) ページが表示されます。

  3. スクロールダウンし、[Cognito Streams] (Cognito ストリーム) をクリックして展開します。

  4. [Stream name] (ストリーム名) ドロップダウンメニューで、既存の Kinesis ストリームの名前を選択します。または、[Create stream] (ストリームの作成) をクリックしてストリームを作成し、ストリーム名とシャード数を入力します。シャードに関する情報、およびストリームに必要なシャード数の見積りに関するヘルプについては、Kinesis デベロッパーガイドを参照してください。

  5. [Publish role] (パブリッシュロール) ドロップダウンメニューで、ストリームをパブリッシュするためアクセス権限を Amazon Cognito に付与する IAM ロールを選択します。[Create role] (ロールの作成) をクリックして、AWS IAM コンソールで ID プールに関連付けられたロールを作成または変更します。

  6. [ストリームの状態] ドロップダウンメニューで、[有効] を選択してストリームの更新を有効にします。[Save Changes] (変更の保存) をクリックします。

Amazon Cognito ストリームが正常に設定されると、この ID プール内のデータセットに対する後続の更新がすべてストリームに送信されるようになります。

ストリームのコンテンツ

ストリームに送信される各レコードは、単一の同期を表します。ストリームに送信されるレコードの例を次に示します。

{ "identityPoolId": "Pool Id", "identityId": "Identity Id", "dataSetName": "Dataset Name", "operation": "(replace|remove)", "kinesisSyncRecords": [ { "key": "Key", "value": "Value", "syncCount": 1, "lastModifiedDate": 1424801824343, "deviceLastModifiedDate": 1424801824343, "op": "(replace|remove)" }, ... ], "lastModifiedDate": 1424801824343, "kinesisSyncRecordsURL": "S3Url", "payloadType": "(S3Url|Inline)", "syncCount": 1 }

Kinesis の最大ペイロードサイズである 50 KB を超える更新については、その更新の完全なコンテンツが格納されている事前署名済みの Amazon S3 の URL が含まれます。

Amazon Cognito ストリームを設定した後で Kinesis ストリームを削除する、または Amazon Cognito Sync によって引き受けられないようにロール信頼のアクセス許可を変更する場合、Amazon Cognito ストリームは無効になります。Kinesis ストリームを再作成するか、ロールを修正してから、ストリームを再有効化する必要があります。

一括パブリッシュ

Amazon Cognito ストリームが設定されると、ID プール内の既存のデータに対して一括パブリッシュ操作を実行できるようになります。一括パブリッシュ操作をコンソール経由で開始する、または API 経由で直接開始すると、Amazon Cognito が、更新を受信しているものと同じストリームに対してこのデータのパブリッシュを開始します。

Amazon Cognito は、一括パブリッシュ操作の使用時にストリームに送信されるデータの一意性を保証しません。更新については、更新としてだけではなく、一括パブリッシュの一部として同じものを受け取る場合があります。ストリームからレコードを処理する際は、このことを念頭に置いてください。

すべてのストリームを一括パブリッシュするには、「ストリームの設定」の手順 1~6 に従ってから、[Start bulk publish] (一括パブリッシュを開始) をクリックします。一括パブリッシュ操作は、常に 1 つの進行中操作に制限され、24 時間ごとに 1 つの正常な一括パブリッシュリクエストに制限されます。