

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Cognito Sync ストリームの実装
<a name="cognito-streams"></a>

****  
Amazon Cognito Sync を初めて使用する場合は、[AWS AppSync](https://aws.amazon.com/appsync/) を使用してください。Amazon Cognito Sync と同様に、 AWS AppSync はデバイス間でアプリケーションデータを同期するためのサービスです。  
このサービスは、アプリの設定やゲームステートといったユーザーデータの同期化を可能にします。また、複数のユーザーが同期し、共有されたデータでリアルタイムにコラボレートできるようにすることで、これらの機能を拡張します。

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

Amazon Cognito ストリームを使用すると、すべての Sync データを Kinesis に移動することができます。その後、これらをさらなる分析のために Amazon Redshift などのデータウェアハウスツールにストリーミングできます。Kinesis の詳細については、「[Amazon Kinesis の使用開始方法](https://docs.aws.amazon.com/kinesis/latest/dev/getting-started.html)」を参照してください。

**ストリームの設定**

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

[コンソールのホームページ](https://console.aws.amazon.com/cognito/home)から、次の操作を行います。

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

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

1. 下にスクロールし、[**Cognito ストリーム**] をクリックして展開します。

1. [**ストリーム名**] ドロップダウンメニューで、既存の Kinesis ストリームの名前を選択します。または、[**ストリームの作成**] をクリックしてストリームを作成し、ストリーム名とシャード数を入力します。シャードに関する情報、およびストリームに必要なシャード数の見積りに関するヘルプについては、[Kinesis デベロッパーガイド](https://docs.aws.amazon.com/kinesis/latest/dev/amazon-kinesis-streams.html)を参照してください。

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

1. [**ストリームの状態**] ドロップダウンメニューで、[**有効**] を選択してストリームの更新を有効にします。**[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 の最大ペイロードサイズである 1 MB を超える更新については、Amazon Cognito にその更新の完全なコンテンツが格納されている事前署名済みの 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 つの正常な一括パブリッシュリクエストに制限されます。