

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

# Amazon Chime SDK ミーティングの使用
<a name="mtgs-sdk-mtgs"></a>

このセクションのトピックでは、Amazon Chime SDK ミーティングを使用してカスタム会議アプリケーションを作成する方法について説明します。以下のトピックを、記載されている順序で実行することをお勧めします。

**Topics**
+ [Amazon Chime SDK ミーティング名前空間への移行](meeting-namespace-migration.md)
+ [Amazon Chime SDK ミーティングの会議リージョンの使用](chime-sdk-meetings-regions.md)
+ [Amazon Chime SDK を使用した会議の作成](create-mtgs.md)
+ [Amazon Chime SDK で使用する会議機能の選択](js-meeting-features.md)
+ [Amazon Chime SDK ミーティングで WebRTC メディアを使用する方法](webrtc-media.md)
+ [Amazon Chime SDK ミーティングの動画コーデックの設定](js-meeting-manage-codecs.md)
+ [Amazon Chime SDK ミーティングのネットワークの設定](network-config.md)
+ [Amazon Chime SDK ミーティングのライフサイクルイベントについて](using-events.md)
+ [Amazon Chime SDK ミーティングの Amazon CloudWatch メトリクスについて](sdk-usage-metrics.md)
+ [Amazon Chime SDK メディアパイプラインを作成する](media-pipelines.md)
+ [Amazon Chime SDK ライブ文字起こしの使用](meeting-transcription.md)
+ [Amazon Chime SDK ミーティングでのメディアレプリケーションの使用](media-replication.md)
+ [Amazon Chime SDK ミーティングのトラブルシューティングとデバッグ](troubleshoot-sdk-meetings.md)

# Amazon Chime SDK ミーティング名前空間への移行
<a name="meeting-namespace-migration"></a>

[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間は、Amazon Chime SDK ミーティングのリソースを作成および管理する API 専用の場所です。この名前空間を使用すると、任意の AWS リージョンの Amazon Chime SDK ミーティング API エンドポイントをアドレス指定できます (そのリージョンでそれらのエンドポイントを利用できる場合)。Amazon Chime SDK を使い始めたばかりの場合は、この名前空間を使用してください。リージョンの詳細については、このガイドの「[Amazon Chime SDK で利用可能な AWS リージョン](sdk-available-regions.md)」を参照してください。

[Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 名前空間を使用する既存のアプリケーションでは、最新の API と機能を使用するために、専用の名前空間への移行を計画する必要があります。

**Topics**
+ [移行すべき理由](#migration-reasons)
+ [移行する前に](#before-migrating)
+ [名前空間の相違点](#namespace-differences)

## 移行すべき理由
<a name="migration-reasons"></a>

以下の理由から、[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間に移行することをお勧めします。

**API エンドポイントの選択**  
Amazon Chime SDK ミーティング名前空間は、[API エンドポイントを利用できる任意のリージョン](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html)の API エンドポイントを使用できる唯一の API 名前空間です。`us-east-1` 以外の API エンドポイントを使用する場合は、Amazon Chime SDK ミーティング名前空間を使用する必要があります。  
Amazon Chime SDK ミーティングで AWS リージョンを使用する方法の詳細については、このガイドの[「会議リージョン](https://docs.aws.amazon.com/chime-sdk/latest/dg/chime-sdk-meetings-regions.html)」を参照してください。

**会議 API の更新と新規追加**  
Amazon Chime SDK ミーティング名前空間の会議 API のみを追加または更新します。

## 移行する前に
<a name="before-migrating"></a>

移行する前に、名前空間の相違点に注意してください｡ 以下の表では、名前空間の一覧と説明を示しています。


|  | Amazon Chime SDK ミーティング名前空間 | Amazon Chime 名前空間 | 
| --- | --- | --- | 
| AWS SDK 名前空間 | ChimeSDKMeetings | Chime | 
| リージョン | 複数 | us-east-1 のみ | 
| エンドポイント | https://meetings-chime.region.amazonaws.com | https://service.chime.aws.amazon.com | 
| サービスプリンシパル | meetings.chime.amazonaws.com | chime.amazonaws.com | 
| API | 会議用の API のみ | 会議用の API と Amazon Chime のその他の部分 | 
| [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html) | ExternalMeetingId と MediaRegion は必須です。 | ExternalMeetingId および MediaRegion はオプションです。 | 
| [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeetingWithAttendees.html) | ExternalMeetingId と MediaRegion は必須です。 | ExternalMeetingId および MediaRegion はオプションです。 | 
| ListMeetings | 利用不可 | 利用可能 | 
| ExternalMeetingId | 検証にはパターンマッチングが含まれます | 利用可能 | 
| ExternalUserId | 検証にはパターンマッチングが含まれます  | 利用可能 | 
| 会議タグ API | TagResource, UntagResource, ListTagsForResource | TagMeeting, UntagMeeting, ListMeetingTags | 
| 参加者タグ | 利用不可 | 利用可能 | 
| エコーリダクション | 利用可能 | 利用不可 | 
| ライブ文字起こし言語識別 | 利用可能 | 利用不可 | 
| 参加者の機能 | 利用可能 | 利用不可 | 
| メディアレプリケーション | 利用可能 | 利用不可 | 
| AppKey と TenantID | 利用可能 | 利用不可 | 
| メディアパイプライン | メディアパイプラインは、Amazon Chime SDK ミーティング名前空間で複数のリージョンをサポートします。詳細については、「[Amazon Chime SDK メディアパイプライン名前空間への移行](migrate-pipelines.md)」を参照してください。 | us-east-1 エンドポイント経由で利用可能 | 
| SIP メディアアプリケーション | JoinChimeMeeting アクションに MeetingId は必須 | JoinChimeMeeting アクションに MeetingId は不要 | 
|  **SIP の直接統合**  | 利用不可 | 利用可能 | 

## 名前空間の相違点
<a name="namespace-differences"></a>

以下のセクションでは、`Amazon Chime` 名前空間と `Amazon Chime SDK Meetings` 名前空間の相違点について説明します。

### AWS SDK 名前空間
<a name="namespace-diffs"></a>

Amazon Chime SDK 名前空間では `Chime` という正式名を使用します。Amazon Chime SDK ミーティング名前空間では、`ChimeSDKMeetings` という正式な名前を使用します。名前の正確な形式はプラットフォームによって異なります。

例えば、Node.js で AWS SDK を使用して会議を作成する場合は、コード行を使用して名前空間に対処します。

```
const chimeMeetings = AWS.Chime();
```

Amazon Chime 会議 SDK に移行するには、この行のコードを新しい名前空間とエンドポイントリージョンで更新します。

```
const chimeMeetings = AWS.ChimeSDKMeetings({ region: "eu-central-1" });
```

### Regions
<a name="region-diffs"></a>

[Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 名前空間は、us-east-1 リージョンの API エンドポイントのみをアドレス指定します。[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間は、任意のリージョンの Amazon Chime SDK ミーティング API エンドポイントをアドレス指定できます (そのリージョンでそれらのエンドポイントを利用できる場合)。会議リージョンの最新リストについては、本ガイドの「[Amazon Chime SDK で利用可能な AWS リージョン](sdk-available-regions.md)」を参照してください。

### エンドポイント
<a name="endpoint-diffs"></a>

[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間は、[Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 名前空間とは異なる API エンドポイントを使用します。

会議を変更するために使用できるのは、会議の作成に使用したエンドポイントだけです。つまり、EU-CENTRAL-1 のエンドポイントで作成された会議は、EU-CENTRAL-1 でのみ変更できます。また、`Chime` 名前空間で作成された会議を、`US-EAST-1` の `ChimeSDKMeetings` 名前空間を使用してアドレス指定することはできません。現在のエンドポイントの詳細については、このガイドの「[API マッピング](migrate-from-chm-namespace.md#name-end-map)」を参照してください。

### サービスプリンシパル
<a name="service-principal-diffs"></a>

[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間は、新しいサービスプリンシパル `meetings.chime.amazonaws.com` を使用します。サービスへのアクセスを許可する SQS、SNS またはその他の IAM アクセスポリシーがある場合は、それらのポリシーを更新して新しいサービスプリンシパルへのアクセスを許可する必要があります。

### API
<a name="api-diffs"></a>

[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間には、会議を作成および管理するための API のみが含まれています。[Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 名前空間には、会議用および Amazon Chime サービスのその他の部分用の API が含まれています。

### CreateMeeting の必須フィールド
<a name="create-meeting-diffs"></a>

Amazon Chime SDK ミーティング名前空間では、[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) API および [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html) API を使用する場合は `ExternalMeetingId` フィールドと `MediaRegion` フィールドを指定する必要があります。

### 外部 ID 値
<a name="external-id-diffs"></a>

[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間は、`ExternalMeetingId` および `ExternalUserId` に使用できる値に対して追加の検証を実施します。

### エコーリダクション
<a name="echo-reduction-diffs"></a>

[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間には機械学習ベースのエコーリダクション機能が備わっており、ローカルのラウドスピーカーから発生するノイズや音が会議の音声に入らないように取り除くのに役立ちます。詳細については、GitHub のガイドを参照してください。

### 参加者の機能
<a name="capabilities-diffs"></a>

[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間では、会議の参加者が音声、動画、コンテンツを送受信する機能をきめ細かく制御できます。

### メディアレプリケーション
<a name="media-replication-diffs"></a>

[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間には、プライマリ会議をレプリカ会議にリンクするメディアレプリケーション機能が備わっており、最大 10,000 人が同時にリアルタイムセッションに参加できます。レプリカセッションに接続した参加者は、プライマリセッションに接続したプレゼンターのメディアを受け取りますが、これらの参加者をプライマリ会議の参加者に昇格させることもできます。詳細については、このガイドの「[Amazon Chime SDK ミーティングでのメディアレプリケーションの使用](media-replication.md)」を参照してください。

### AppKey と TenantID
<a name="app-keys-diffs"></a>

[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間は、特定の Amazon Chime SDK ミーティングに対するネットワークからのアクセスを制限する方法を提供します。詳細については、本ガイドの「[Amazon Chime SDK での AppKey と TenantID の使用](app-keys-tenant-ids.md)」を参照してください。

### メディアパイプライン
<a name="media-pipe-diffs"></a>

Amazon Chime SDK メディアパイプラインは、[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間または [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 名前空間のどちらを使用したかにかかわらず、どの会議エンドポイントによって作成された会議でも動作します。メディアパイプラインリージョンの最新リストについては、「[利用できるリージョン](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html)」を参照してください。

### SIP メディアアプリケーション
<a name="sip-app-diffs"></a>

Amazon Chime SDK SIP メディアアプリケーションは、[Amazon Chime SDK ミーティング](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間または [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) 名前空間のどちらを使用したかにかかわらず、どの会議エンドポイントによって作成された会議でも動作します。Amazon Chime SDK ミーティング名前空間を使用して作成された会議で SIP メディアアプリケーションを使用する場合、[JoinChimeMeeting](join-chime-meeting.md) アクションには `MeetingId` パラメータが必要です。

### その他の API
<a name="additional-api-diffs"></a>

会議名前空間には、Chime 名前空間にはない API が増え続けています。Amazon Chime SDK の使用を開始する場合は、会議名前空間を使用して最新の機能にアクセスしてください。

# Amazon Chime SDK ミーティングの会議リージョンの使用
<a name="chime-sdk-meetings-regions"></a>

Amazon Chime SDK ミーティングには、コントロールリージョンとメディアリージョンがあります。コントロールリージョンには、会議の作成、更新、削除に使用される API エンドポイントがあります。メディアリージョンは、実際の会議をホストします。

通常、アプリケーションサービスは [AWS SDK](https://aws.amazon.com/tools/) を使用して、コントロールリージョンの API の[署名と呼び出し](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)を行います。アプリケーションクライアントは、[JavaScript](js-sdk-intro.md)、[iOS](sdk-for-ios.md)、または [Android](sdk-for-android.md) 用の Amazon Chime SDK クライアントライブラリを使用して、メディアリージョンの会議に接続します。

コントロールリージョンは、同じ AWS パーティション内の任意のメディアリージョンで会議を作成できます。ただし、会議の更新は、その会議の作成に使用されたコントロールリージョン内でしか行うことができません。お客様に最も近いメディアリージョンを確認するには、[https://nearest-media-region.l.chime.aws](https://nearest-media-region.l.chime.aws) にアクセスしてください。

`AttendeeJoined` などの会議[イベント](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html#sdk-events)は、会議コントロールリージョンで [EventBridge、Amazon Simple Queue Service (SQS)、または Amazon Simple Notification Service (SNS)](https://docs.aws.amazon.com/chime-sdk/latest/dg/mtgs-sdk-notifications.html) を呼び出します。

 利用可能な Amazon Chime SDK ミーティングコントロールリージョンとメディアリージョンのリストについては、本ガイドの「[Amazon Chime SDK で利用可能な AWS リージョン](sdk-available-regions.md)」を参照してください。

この図は、コントロールリージョンとメディアリージョンを介した一般的なデータフローを示しています。

![\[Amazon Chime SDK コントロールリージョンとメディアリージョンを介したデータフローを示す図。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/control-media-regions.png)


## コントロールリージョンの選択
<a name="choose-meeting-region"></a>

Amazon Chime SDK ミーティングのコントロールリージョンを選択する際には、以下の要素に留意してください。
+ **規制要件**。アプリケーションは地政学的な境界内にある必要があるか、あるいは FIPS 140-2 で検証済みの暗号化モジュールを備えたエンドポイントを使用する必要があるか。
+ **API のレイテンシー**。アプリケーションサービスのリージョンに最も近いコントロール AWS リージョンを使用すると、APIsのネットワークレイテンシーを減らすことができます。その結果、会議の作成に必要な時間が短縮され、ユーザーはより迅速に会議に参加できるようになります。
+ **高可用性**。複数のコントロールリージョンを使用して、高可用性アーキテクチャを実装できます。ただし、各コントロールリージョンは独立して動作します。また、会議の更新は、その会議の作成に使用されたコントロールリージョン内でしか行うことができません。さらに、[EventBridge、Amazon Simple Queue Service (SQS)、または Amazon Simple Notification Service (SNS)](https://docs.aws.amazon.com/chime-sdk/latest/dg/mtgs-sdk-notifications.html) で会議イベントを処理するには、同じリージョンを使用する必要があります。

## メディアリージョンの選択
<a name="choose-media-region"></a>

**注記**  
[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html) API アクションの `MediaRegion` パラメータには常に値を指定することをお勧めします。リージョンの詳細については、「[Amazon Chime SDK で利用可能な AWS リージョン](sdk-available-regions.md)」を参照してください。

Amazon Chime SDK ミーティングに使用するメディアリージョンを選択する際には、以下の一般的な要素を考慮してください。

**規制要件**  
Amazon Chime SDK ミーティングが、地政学的な境界内でホストすることを義務付ける規制の対象となる場合は、固定のアプリケーションロジックに基づいて会議リージョンをハードコーディングすることを検討してください。  
例えば、遠隔医療アプリケーションでは、すべての会議を医師の管轄区域でホストすることが義務付けられている場合があります。アプリケーションがヨーロッパと米国の両方にある診療所をサポートしている場合は、各診療所の住所を使用して、その管轄区域内のリージョンを選択できます。

**会議の品質**  
Amazon Chime SDK ミーティングがメディアリージョンでホストされた場合、各参加者の音声と動画はそのリージョンで送受信されます。参加者とリージョンの間の距離が長くなると、会議の品質はネットワークレイテンシーの影響を受ける可能性があります。Amazon Chime SDK ミーティングのリージョンを指定すると、参加者が相互に地理的に近くにいるか分散しているかにかかわらず、会議の品質を向上させることができます。

Amazon Chime SDK ミーティングのメディアリージョンを選択する際には、以下のいずれかの方法を使用できます。

**メディアリージョンをハードコーディングする**  
すべての Amazon Chime SDK ミーティングが特定の AWS リージョン内でホストされる場合に推奨されます。

**最も近いメディアリージョンを選択する**  
Amazon Chime SDK ミーティングの参加者が同じ AWS リージョンにいるが、会議が別のリージョンでホストされている場合に推奨されます。

## 最も近いメディアリージョンを見つける
<a name="choose-nearest-media-region"></a>

Amazon Chime SDK ミーティングをホストできる最も近いメディアリージョンを見つけるには、[https://nearest-media-region.l.chime.aws](https://nearest-media-region.l.chime.aws) にアクセスします。このエンドポイントは、1 つのリージョン (`{"region": "us-west-2"}` など) を返します。クライアントアプリケーションから URL を呼び出してユーザーに最も近いリージョンを特定し、その結果を [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) API の `MediaRegion` パラメータで使用して、そのリージョンで会議を作成します。

通常、URL を呼び出すのは、クライアントアプリケーションの起動時か、またはネットワーク接続の変更時です。最も近いリージョンを事前に確認しておくことで、会議の作成時に呼び出しのレイテンシーが増えるのを防ぐことができます。

## 最も近い AWS GovCloud (米国) メディアリージョンの検索
<a name="choose-gov-cloud-region"></a>

Amazon Chime SDK 会議をホストできる最も近い AWS GovCloud (米国) リージョンを確認するには、[https://nearest-us-gov-media-region.l.chime.aws](https://nearest-us-gov-media-region.l.chime.aws) を呼び出します。このエンドポイントは、最も近いリージョン (`{"region": "us-gov-west-1"}` など) を返します。クライアントアプリケーションから URL を呼び出して、ユーザーに最も近い AWS GovCloud (米国) を特定し、 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) API の `MediaRegion`パラメータで結果を使用して、そのリージョンで会議を作成します。

通常、URL を呼び出すのは、クライアントアプリケーションの起動時か、またはネットワーク接続の変更時です。最も近いリージョンを事前に確認しておくことで、会議の作成時に呼び出しのレイテンシーが増えるのを防ぐことができます。

## JavaScript 例
<a name="region-javascript"></a>

次の例では、HTML と JavaScript を使用して、最も近いメディアリージョンと AWS GovCloud (米国) メディアリージョンを返します。

```
<html>
<head>
  <title>Amazon Chime SDK - Nearest Media Region</title>
  <script>

async function getNearestMediaRegion(partition)  {

    console.log('Nearest media region partition: ' + partition);

    const url = ('aws-us-gov' == partition) ? 'https://nearest-us-gov-media-region.l.chime.aws' : 'https://nearest-media-region.l.chime.aws';
    let result = ('aws-us-gov' == partition) ? 'us-gov-west-1' : 'us-west-2';

    try { //Find the nearest media region
        console.log('Nearest media region URL: ' + url);
        const response = await fetch(url, {method: 'GET'} );
        const body = await response.json();
        result = body.region;
    } catch (error) {
        console.log(error.message);
    } finally {
        console.log('Nearest media region found: ' + result);
        return result;
    }
}

async function findRegions(partition) {
  aws.innerText = await getNearestMediaRegion();
  awsusgov.innerText = await getNearestMediaRegion('aws-us-gov');
}
  </script>
</head>
<body>
  <h3>Nearest media region, by AWS partition</h3>
  <table>
    <tr><th>Partition</th><th>Media Region</th></tr>
    <tr><td>aws</td><td id="aws">Finding...</td></tr>
    <tr><td>aws-us-gov</td><td id="awsusgov">Finding...</td></tr>
  </table>
  <script>
    findRegions();
  </script>
</body>
</html>
```

## リージョンステータスを確認する
<a name="region-status"></a>

[https://region.status.chime.aws/](https://region.status.chime.aws/) にアクセスして、各リージョンの Amazon Chime SDK サービスの状態を取得します。結果には、推奨リージョンが表示されます。メディアリージョンのステータスが **[推奨]** 以外の場合、最も近いメディアリージョンのエンドポイントはそのリージョンを返しません。

次の例は一般的な結果を示しています。

```
{
  "MeetingsControlRegions": {
    "us-east-1": "recommended",
    "us-west-2": "recommended",
    "eu-central-1": "recommended",
    "eu-west-2": "recommended",
    "ap-south-1": "recommended",
    "ap-southeast-1": "recommended",
    "ap-southeast-2": "recommended",
    "ap-northeast-1": "recommended",
    "ap-northeast-2": "recommended",
    "il-central-1": "recommended",
    "ca-central-1": "recommended",
    "af-south-1": "recommended"
  },
  "MeetingsMediaRegions": {
    "af-south-1": "recommended",
    "ap-northeast-1": "recommended",
    "ap-northeast-2": "recommended",
    "ap-south-1": "recommended",
    "ap-southeast-1": "recommended",
    "ap-southeast-2": "recommended",
    "ca-central-1": "recommended",
    "eu-central-1": "recommended",
    "eu-north-1": "recommended",
    "eu-south-1": "recommended",
    "eu-west-1": "recommended",
    "eu-west-2": "recommended",
    "eu-west-3": "recommended",
    "sa-east-1": "recommended",
    "us-east-1": "recommended",
    "us-west-2": "recommended",
    "us-east-2": "recommended",
    "us-west-1": "recommended",
    "il-central-1": "recommended"
  },
  "MediaPipelineControlRegions": {
    "us-east-1": "recommended",
    "us-west-2": "recommended",
    "eu-central-1": "recommended",
    "eu-west-2": "recommended",
    "ap-south-1": "recommended",
    "ap-southeast-1": "recommended",
    "ap-southeast-2": "recommended",
    "ap-northeast-1": "recommended",
    "ap-northeast-2": "recommended",
    "ca-central-1": "recommended"
  },
  "MediaPipelineDataRegions": {
    "af-south-1": "recommended",
    "ap-northeast-1": "recommended",
    "ap-northeast-2": "recommended",
    "ap-south-1": "recommended",
    "ap-southeast-1": "recommended",
    "ap-southeast-2": "recommended",
    "ca-central-1": "recommended",
    "eu-central-1": "recommended",
    "eu-north-1": "recommended",
    "eu-south-1": "recommended",
    "eu-west-1": "recommended",
    "eu-west-2": "recommended",
    "eu-west-3": "recommended",
    "sa-east-1": "recommended",
    "us-east-1": "recommended",
    "us-west-2": "recommended",
    "us-east-2": "recommended",
    "us-west-1": "recommended"
  }
}
```

# Amazon Chime SDK を使用した会議の作成
<a name="create-mtgs"></a>

次の手順では、サーバーアプリケーションとクライアントアプリケーション用に、音声と動画を使用する会議を作成する方法を説明します。開始する前に、クライアントアプリケーションを Amazon Chime SDK のクライアントライブラリと統合する必要があります。詳細については、[Amazon Chime SDK クライアントライブラリの詳細](mtgs-sdk-client-lib.md) を参照してください。

**音声と動画を使用する会議を作成する方法**

1. サーバーアプリケーションから以下のステップを実行します。

   1. 「*Amazon Chime SDK API リファレンス*」の [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html) API アクションを使用して会議を作成します。`MediaRegion` パラメータを使用して AWS リージョンを指定します。会議リージョンを選択する方法の詳細については、「[会議リージョン](sdk-available-regions.md#sdk-meeting-regions)」を参照してください。

   1. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateAttendee.html) API アクションまたは [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html) API アクションを使用して、会議に参加者を追加します。会議と参加者に関する情報を、サーバーアプリケーションからそれぞれの参加者として承認されたクライアントに安全に転送します。会議と参加者の詳細については、「*Amazon Chime SDK API リファレンス*」の「[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_Meeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_Meeting.html)」と「[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_Attendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_Attendee.html)」を参照してください。

1. クライアントアプリケーションから以下のステップを実行します。

   1. Amazon Chime SDK クライアントライブラリを使用して、`MeetingSessionConfiguration` オブジェクトを作成します。上記のステップの会議と参加者の情報を使用します。

   1. `AudioVideoObserver`インターフェイスを実装します。

   1. `MeetingSessionConfiguration` を使用して `MeetingSession` を作成します。

   1. `MeetingSession` の `AudioVideoFacade` を使用して、リアルタイムメディアを制御します。

      1. `AudioVideoObserver` インターフェイスのインスタンスを登録します。これにより、会議の状態が変化したときにイベントを受信できます。

      1. 音声入力、音声出力、動画入力の初期デバイスを選択します。

      1. オーディオビジュアルセッションを開始します。

      1. ユーザーが動画を共有したいときに、ローカル動画キャプチャを開始します。

      1. 動画タイルを表示するには、動画タイルイベントを管理し、クライアントアプリケーションでタイルを動画サーフェスにバインドします。

      1. ミュートやミュート解除、ローカル動画キャプチャの開始や停止など、その他のユーザー操作を管理します。

      1. 会議から退出するには、オーディオビジュアルセッションを停止します。

   1. (オプション) `MeetingSession` の `AudioVideoFacade` を使用して、画面キャプチャなどのメディアコンテンツを他のクライアントと共有します。

      1. 画面共有セッションを開始します。コンテンツは追加の参加者として会議に参加します。

      1. 共有コンテンツを表示するには、動画タイルイベントを管理し、クライアントアプリケーションでタイルをサーフェスにバインドします。

      1. コンテンツ共有の一時停止、再開、停止など、その他の操作を管理します。

[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteMeeting.html) API アクションを実行すると、会議は終了します。また、以下の場合に会議は自動的に終了します。
+ 会議時間が 24 時間を超えた場合。
+ その会議が[レプリカ会議](media-replication.md)であり、プライマリ会議が終了した場合。
+ 非レプリカ会議で、接続している参加者が 5 分間連続して存在しない場合。

# Amazon Chime SDK で使用する会議機能の選択
<a name="js-meeting-features"></a>

[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) API を呼び出すときに、セッションに参加するクライアントが使用できる機能を指定できます。一部の機能オプションには追加料金が発生することに注意してください。

セッションでは次の機能を使用できます。
+ `Audio.EchoReduction` - 機械学習エコーリダクション。
+ `Video.MaxResolution` - ウェブカメラ動画の最大解像度。
+ `Content.MaxResolution` - コンテンツ共有の最大解像度。
+ `Attendees.MaxCount` - 参加者の最大数。

**Topics**
+ [Audio.EchoReduction の使用](#audio-echo-reduction)
+ [Video.MaxResolution を使用する](#video-max-resolution)
+ [Content.MaxResolution を使用する](#js-content-resolution)
+ [Attendees.MaxCount を使用する](#js-max-attendees)
+ [クライアントアプリでの会議機能の使用](#meeting-features-client-app)

## Audio.EchoReduction の使用
<a name="audio-echo-reduction"></a>

ユーザーのスピーカーからの音が会議に逆流するのを防ぐために `Audio.EchoReduction` を使用します。

エコーリダクションは、会議音声の主出力デバイスをユーザーのスピーカーにするような状況に最適です。例えば、複数のユーザーが会議室の同じデバイスから会議に参加する場合や、リモートの参加者がヘッドフォンをつけていない場合などです。

エコーリダクションは JavaScript と React のクライアントライブラリで利用できます。詳細については、[GitHub のドキュメント](https://aws.github.io/amazon-chime-sdk-js/modules/amazonvoice_focus.html#what-is-echo-reduction)を参照してください。追加料金がかかります。詳細については、「[Amazon Chime SDK の料金](https://aws.amazon.com/chime/chime-sdk/pricing/)」を参照してください。

## Video.MaxResolution を使用する
<a name="video-max-resolution"></a>

`Video.MaxResolution` は会議のウェブカメラ動画の最大解像度を指定する場合に使用します。この機能には次のようなオプションがあります。
+ `None`: カメラ動画は使用できません。
+ `HD`: 高解像度カメラ動画 (1280 x 720p)
+ `FHD`: フルハイビジョンカメラ動画 (1920 x 1080)

FHD (1080p) 動画がリクエストされると、高解像度 WebRTC セッションが作成されます。詳細については、「[Amazon Chime SDK の料金](https://aws.amazon.com/chime/chime-sdk/pricing/)」を参照してください。

クライアントがウェブカメラ動画を指定された上限を超えて送信しようとすると、サービスは動画を拒否し、次のエラーを送信します。

`Disabled video/content send capability, reason: Video resolution is above limit of current meeting feature selection.`

## Content.MaxResolution を使用する
<a name="js-content-resolution"></a>

`Content.MaxResolution` は会議のコンテンツ共有の最大解像度を指定するために使用します。この機能には次のようなオプションがあります。
+ `None`: コンテンツ共有は許可されません。
+ `FHD`: フルハイビジョンコンテンツ共有 (1920 x 1080)
+ `UHD`: 超高精細コンテンツ共有 (3840 x 2160)

UHD (4K) コンテンツがリクエストされると、高解像度 WebRTC セッションが作成されます。

クライアントが最大解像度を超えてコンテンツ共有を送信しようとすると、その解像度は指定された最大解像度まで縮小されます。`MediaTrackConstraints` をコンテンツ共有トラックに適用してスケーリングできます。次の例は、共有トラックをスケーリングする方法を示しています。

```
const constraint: MediaTrackConstraints = {
    width: { ideal: videoQualitySettings.videoWidth },
    height: { ideal: videoQualitySettings.videoHeight },
    frameRate: { ideal: videoQualitySettings.videoFrameRate },
  };
  this.context.logger.info(
    `Video track (content = ${isContentAttendee}) with constraint: ${JSON.stringify(
      constraint
    )}, trackSettings: ${JSON.stringify(trackSettings)}`
  );
  try {
    await mediaStreamTrack.applyConstraints(constraint);
  } catch (error) {
    this.context.logger.info(
      `Could not apply constraint for video track (content = ${isContentAttendee})`
    );
  }
```

次の表に、予想されるコンテンツ共有の動作を示します。


| コンテンツ機能 | コンテンツ共有ネイティブ解像度 | スケーリング | コンテンツコーディング解像度 | 
| --- | --- | --- | --- | 
|  FHD | 1280x720  | いいえ | 1280x720 | 
| FHD | 1920x1080 | いいえ | 1920x1080 | 
| FHD | 3840x2160 | はい | 1920x1080 | 
| UHD | 1920x1080 | いいえ | 1920x1080 | 
| UHD | 3840x2160 | いいえ | 3840x2160 | 
| UHD | 4200 x 2400 | はい | 3780 x 2160 | 

## Attendees.MaxCount を使用する
<a name="js-max-attendees"></a>

`Attendee.MaxCount` は会議に参加できる最大参加者数を指定する場合に使用します。Attendee.MaxCount の上限はセッションタイプによって異なります。標準セッションの場合、最大 250 人の出席者を選択できます。高解像度セッションでは、最大 25 人の参加者を選択する必要があります。**

FHD (1080p) 動画または UHD (4K) コンテンツをリクエストした場合、セッションは高解像度セッションになります。

高解像度セッションには出席者定員料金が適用されます。詳細については、「[Amazon Chime SDK の料金](https://aws.amazon.com/chime/chime-sdk/pricing/)」を参照してください。

## クライアントアプリでの会議機能の使用
<a name="meeting-features-client-app"></a>



### 指定した機能を使用した会議の作成
<a name="js-create-meetings-sdk-namespace"></a>

会議を作成するには、[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) を呼び出し、必要な会議機能を指定します。次の例は、すべての機能を指定する方法を示しています。

```
// You must migrate to the Amazon Chime SDK Meetings namespace.
const chime = AWS.ChimeSDKMeetings({ region: "eu-central-1" });

// Create meeting 
const meetingInfo = await chime.createMeeting({
    ...
    MeetingFeatures: {
      Audio: {
        EchoReduction: 'AVAILABLE' 
      },
      Video: {
        MaxResolution: 'FHD' 
      },
      Content: {
        MaxResolution: 'UHD' 
      },
      Attendee: {
        MaxCount: 25 
      },
    } 
  }).promise();
```

### クライアントでの会議機能の使用
<a name="js-client-level"></a>

必要な機能を備えた会議を作成したら、`MeetingSessionConfiguration` オブジェクトを作成するときに `joinInfo` を渡すことができます。会議機能は `meetingSession` 作成時にウェブカメラの動画解像度とビットレート、コンテンツ共有の解像度とビットレートを設定するために使用されます。

```
const configuration = new MeetingSessionConfiguration(this.joinInfo.Meeting, this.joinInfo.Attendee);

this.meetingSession = new DefaultMeetingSession(
    configuration,
    this.meetingLogger,
    this.deviceController,
    new DefaultEventController(configuration, this.meetingLogger, this.eventReporter)
);
```

# Amazon Chime SDK ミーティングで WebRTC メディアを使用する方法
<a name="webrtc-media"></a>

Amazon Chime SDK は、標準と高解像度の 2 種類の WebRTC セッションをサポートしています。以下のトピックでは、JavaScript、React、iOS、Android 用の Amazon Chime SDK クライアントライブラリを使用する場合に、各タイプのセッションで利用できるメディアについて説明します。

**Topics**
+ [音声](#webrtc-audio)
+ [動画](#video)
+ [コンテンツ共有](#content-share)
+ [データメッセージ](#data-messages)

## 音声
<a name="webrtc-audio"></a>

Amazon Chime クライアントはそれぞれ 1 つの音声ストリームをセッションに送信し、セッションから 1 つの音声ストリームを受信します。通常、ローカルデバイスのマイクがオーディオを生成します。受信したオーディオは、他のセッションクライアントから送信されたオーディオとミックスされたものです。

どちらのセッションタイプも、Opus コーデックを使用して最大 48 kHz のサンプルレートと最大 128 kbps のビットレートでエンコードされた 2 チャネル (ステレオ) をサポートします。ただし、送受信される音声ストリームはクライアントライブラリのタイプによって異なります。
+ JavaScript および React 用の Amazon Chime SDK クライアントライブラリは、デバイスとブラウザがサポートする最高サンプルレート (最大 48 kHz) でのモノおよびステレオオーディオの送受信をサポートします。
+ iOS および Android 用の Amazon Chime SDK クライアントライブラリは、最大 48 kHz のモノオーディオの送信と 48 kHz のステレオオーディオの受信をサポートしています。

## 動画
<a name="video"></a>

Amazon Chime クライアントはそれぞれ 1 つの動画ストリームをセッションに送信し、セッションから最大 25 個の動画ストリームを受信できます。送信される動画は、通常、ローカルデバイスのウェブカメラから送信されます。各クライアントは、受信する動画ストリームを最大 25 個まで選択でき、セッション中いつでも選択を変更できます。

標準セッションでは、H.264、VP8、VP9、AV1 を使用して最大 1500 kbps のビットレートでエンコードされた、毎秒 30 フレームで最大 1280 x 720 の動画解像度がサポートされます。

高解像度セッションでは、H.264、VP8、VP9、AV1 を使用して最大 2500 kbps のビットレートでエンコードされた、毎秒 30 フレームで最大 1920 x 1080 の動画解像度がサポートされます。

JavaScript および React 用の Amazon Chime SDK クライアントライブラリは、1 秒あたり 15 フレームのサイマルキャストでの動画の送信をサポートしており、スケーラブル動画コーディング (SVC) を使用することもできます。SVC は、3 つの空間レイヤーと 3 つの時間レイヤーを含む 1 つの動画ストリームをターゲット値の 100%、50%、25% でエンコードします。このサービスは、視聴者が利用できる帯域幅に基づいて、各視聴者に送信するレイヤーを自動的に選択します。

iOS および Android 用の Amazon Chime SDK クライアントライブラリは、1 秒あたり最大 15 フレームの送信をサポートします。ただし、実際のフレームレートと解像度は Amazon Chime SDK によって自動的に管理されます。

動画のエンコードとデコードでは、パフォーマンスを向上させるためにハードウェアアクセラレーション (利用可能な場合) を使用します。

 クライアントが最大許容ビットレートを超えるビットレートで動画を送信すると、セッションはまず、リアルタイム制御プロトコルを介してクライアントの受信者推定最大ビットレートメッセージの送信を開始します。クライアントが最大許容ビットレートを超えるビットレートで動画を送信し続けると、セッションは受信した動画ストリームパケットを破棄します。

## コンテンツ共有
<a name="content-share"></a>

最大 2 つのクライアントがセッションでコンテンツを共有できます。コンテンツ共有には、動画トラック、音声トラック、またはその両方を含めることができます。コンテンツ共有の一般的な例としては、スクリーンキャプチャをコンテンツのソースとして使用する画面共有があります。もう 1 つの例として、収録済みのコンテンツを動画トラックや音声トラックと共有することが挙げられます。

コンテンツオーディオは、セッションによって送信された音声ストリームにミックスされます。コンテンツオーディオは、Opus コーデックを使用して最大 48 kHz のサンプルレートと最大 128 kbps のビットレートでエンコードされた 2 チャネル (ステレオ) をサポートします。

動画コンテンツはセッションに送信され、別の動画ストリームでクライアントに転送されます。標準セッションは、毎秒 30 フレームで最大 1920 x 1080 の解像度をサポートします。高解像度セッションは、30 フレーム/秒で最大 3840 x 2160 のコンテンツ動画をサポートします。

コンテンツ共有用のスクリーンキャプチャでは、キャプチャされる画面またはウィンドウの解像度が、セッションの種類に応じた最大コンテンツ解像度、1 秒あたり最大 30 フレームまで使用されます。ただし、デバイスとブラウザの機能によってこれらの値が制限される場合があります。

JavaScript および React 用の Amazon Chime SDK クライアントライブラリでは、スクリーンキャプチャやその他のソースからのコンテンツ共有をサポートします。

iOS および Android 用の Amazon Chime SDK クライアントライブラリでは、スクリーンキャプチャからのコンテンツ共有のみをサポートします。

## データメッセージ
<a name="data-messages"></a>

データメッセージは、クライアントがセッション中の他のクライアントに情報をブロードキャストする方法を提供します。例えば、アプリケーションはデータメッセージを使ってセッション中の絵文字リアクションを共有できます。

各データメッセージには以下が含まれます。
+ トピック (最大 64 文字の文字列)。
+ トピックを含めて最大 2 KB のデータ。

クライアントはセッションにデータメッセージを送信し、セッションは接続しているすべてのクライアントにデータメッセージを送信します。

セッションでは、オプションでデータメッセージを最大 5 分間キャッシュできます。クライアントがセッションに参加したり、セッションに再接続したりすると、会議は、以前に送信されていないキャッシュされたデータメッセージをクライアントに自動的に送信します。セッションキャッシュには最大 1024 件のデータメッセージが保存されます。

セッションでは、毎秒最大 100 件のデータメッセージの送信がサポートされます。[ライブ文字起こし](https://docs.aws.amazon.com/chime-sdk/latest/dg/meeting-transcription.html)を使用すると、各クライアントはデータメッセージを介して[文字起こしメッセージ](https://docs.aws.amazon.com/chime-sdk/latest/dg/process-msgs.html)を受信します。この文字起こしメッセージは 1 秒あたりの送信メッセージ総数にカウントされます。

# Amazon Chime SDK ミーティングの動画コーデックの設定
<a name="js-meeting-manage-codecs"></a>

クライアントデバイスは動画コーデックを使用して raw 動画をサービスに送信する前に圧縮し、受信した動画をレンダリングする前に解凍します。

JavaScript 用の Amazon Chime SDK クライアントライブラリを使用する場合、動画を送信するためのコーデックプリファレンスを指定できます。

iOS および Android 用の Amazon Chime SDK クライアントライブラリは、デバイスの機能に基づいて自動的にコーデックを選択します。

## 動画コーデックの環境設定
<a name="codec-list"></a>

JavaScript 用の Amazon Chime SDK クライアントライブラリでは、ウェブカメラとコンテンツ動画用に独立した動画コーデック環境設定を指定できます。

[AudioVideoControllerFacade.setVideoCodecSendPreferences](https://aws.github.io/amazon-chime-sdk-js/interfaces/audiovideocontrollerfacade.html#setvideocodecsendpreferences) 関数を使用して、ウェブカメラ動画を送信するためのコーデック環境設定を設定します。リンク先は GitHub です。

設定は順序付けられた配列として渡され、最も優先度の高いコーデックが最初で、最も優先ドン低いコーデックが最後になります。

複数のコーデック設定を指定すると、サービスはセッション参加者全員がデコードできる最も好ましいコーデックを自動的に選択します。

次の例は、VP9 の動画コーデック環境設定をフォールバックオプションとして VP8 に設定する方法を示しています。

```
// A meeting session has already been created and stored in `this.meetingSession`
this.meetingSession.audioVideo.setVideoCodecSendPreferences(
	[
		VideoCodecCapability.vp9(), 
		VideoCodecCapability.vp8()
	]
);
```

環境設定には次のシナリオが適用されます。
+ **最適** - クライアントは VP9 コーデックを使用して動画をエンコードします。
+ **ローカルフォールバック** - クライアントが VP9 エンコーディングをサポートしていない場合、VP8 エンコーディングにフォールバックします。クライアントが VP8 エンコーディングをサポートしていない場合は、ブラウザとサービスでサポートされているコーデックにフォールバックします。
+ **リモートフォールバック** - セッション内の別のクライアントに VP9 デコーダーがない場合、このクライアントは VP8 エンコーディングにフォールバックします。
+ **ローカル障がい** - クライアントが VP9 または VP8 エンコーディングをサポートしていない場合、動画は送信されません。

コンテンツ共有のプリファレンスを設定するには、[ContentShareControllerFacade.setContentShareVideoCodecPreferences](https://aws.github.io/amazon-chime-sdk-js/interfaces/contentsharecontrollerfacade.html#setcontentsharevideocodecpreferences) 関数を使用して、コンテンツ動画を送信するためのコーデック環境設定を設定します。このリンク先は GitHub です。

 次の例では、VP9 のコンテンツ動画コーデック環境設定を VP8 のフォールバックオプションで設定しています。

```
// A meeting session has already been created and stored in `this.meetingSession`
    this.meetingSession.audioVideo.setContentShareVideoCodecPreferences(
	[
	VideoCodecCapability.vp9(), 
	VideoCodecCapability.vp8()
	]
);
```

# Amazon Chime SDK ミーティングのネットワークの設定
<a name="network-config"></a>

Amazon Chime SDK をクライアントアプリケーションに統合すると、SDK はバックエンドサービスに接続して、音声、動画、コンテンツ共有、データメッセージを送受信します。ユーザーのネットワークで Amazon Chime SDK サービスへのトラフィックがブロックされている場合、ユーザーはサービスを使用できなくなります。ネットワーク管理者はこの情報を使用して、Amazon Chime SDK サービスにアクセスできるようにネットワークを再設定できます。

**注記**  
ネットワークを設定する際には、DNS の拡張メカニズム (EDNS0) をデフォルトで有効にする必要があります。これによってホスト情報が UDP パケットに適したサイズになることで、アプリケーションが Amazon Chime SDK サービスにアクセスできるようになります。

**Topics**
+ [メディアとシグナリング向けの設定](#media-signaling)
+ [Amazon Voice Focus の設定](#voice-focus-config)
+ [エコーリダクションの設定](#echo-reduction)
+ [背景の置換とぼかしの設定](#config-blur)
+ [ブラウザコンテンツセキュリティポリシーの設定](#configure-browser-policy)
+ [Amazon Chime SDK での AppKey と TenantID の使用](app-keys-tenant-ids.md)

## メディアとシグナリング向けの設定
<a name="media-signaling"></a>

Amazon Chime SDK の音声、動画、コンテンツは、可能な限りユーザーデータグラムプロトコル (UDP) トランスポートを使用します。UDP がブロックされている場合、Amazon Chime SDK は、双方向メディアトランスポート用の Transport Layer Security (TLS) 接続の確立を試みます。Amazon Chime SDK のシグナリングとデータメッセージでは、Transmission Control Protocol (TCP) 接続と WebSocket 接続が使用されます。

次の図は、Amazon Chime SDK を実行するアプリケーションを含む一般的なネットワークを示しています。

![\[SDK と会議の間の双方向通信を備え、Amazon Chime SDK アプリケーションを実行するように設定されたネットワーク。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/net-config-diagram.png)


Amazon Chime SDK は、メディアとシグナリングに以下の宛先とポートを使用します。


| ドメイン | IPv4 サブネット | IPv6 サブネット | ポート | 
| --- | --- | --- | --- | 
| \$1.chime.aws | 99.77.128.0/18 | 2600:f0f0:4100::/40 | TCP: 443 UDP:3478 | 

このサブネットは [AWS IP アドレス範囲](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)内の `CHIME_MEETINGS` サービスです。

## Amazon Voice Focus の設定
<a name="voice-focus-config"></a>

iOS および Android 用の Amazon Chime SDK クライアントライブラリには、Amazon Voice Focus モジュールが含まれています。JavaScript 用の Amazon Chime SDK クライアントライブラリは、Amazon CloudFront から Amazon Voice Focus モジュールをダウンロードします。Windows 用の Amazon Chime SDK クライアントライブラリは、Voice Focus をサポートしていません。

Amazon Voice Focus は、以下の宛先とポートを使用します。


| ドメイン | ポート | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP: 443 | 

このサブネットは [AWS IP アドレス範囲](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)内の `CLOUDFRONT` サービスです。

## エコーリダクションの設定
<a name="echo-reduction"></a>

JavaScript 用の Amazon Chime SDK クライアントライブラリは、Amazon CloudFront からエコーリダクションモジュールをダウンロードします。

エコーリダクションは、以下の宛先とポートを使用します。


| ドメイン | ポート | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP: 443 | 

このサブネットは [AWS IP アドレス範囲](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)内の `CLOUDFRONT` サービスです。

## 背景の置換とぼかしの設定
<a name="config-blur"></a>

JavaScript 用の Amazon Chime SDK クライアントライブラリは、Amazon CloudFront から背景の置換とぼかしモジュールをダウンロードします。

背景の置換とぼかしは、以下の宛先とポートを使用します。


| ドメイン | ポート | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP: 443 | 

このサブネットは [AWS IP アドレス範囲](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)内の `CLOUDFRONT` サービスです。

## ブラウザコンテンツセキュリティポリシーの設定
<a name="configure-browser-policy"></a>

JavaScript 用の Amazon Chime SDK クライアントライブラリを使用してアプリケーションを構築する場合、アプリケーション内でブラウザコンテンツセキュリティポリシーを設定する必要があります。詳細については、GitHub の[コンテンツセキュリティポリシーのガイド](https://aws.github.io/amazon-chime-sdk-js/modules/contentsecurity_policy.html)を参照してください。

# Amazon Chime SDK での AppKey と TenantID の使用
<a name="app-keys-tenant-ids"></a>

AppKey と TenantID を使用して、ネットワークからのアクセスを特定のアプリケーションの Amazon Chime SDK WebRTC メディアセッションに制限できます。

開発者は、UDP 経由でリアルタイムな動画を送受信するアプリケーションを作成するために、Amazon Chime SDK を使用します。アプリケーションユーザーには [https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html) サブネットへの UDP アクセスが必要です。組織 (ネットワーク所有者) で AppKey と TenantID を使用して、自社のネットワークからのアクセスを特定のアプリケーションの WebRTC メディアセッションのみに制限できます。

**例 1: AppKey を使用する**  
アプリ A とアプリ B で Amazon Chime SDK が使用されている場合、アプリ A で自社のネットワークから WebRTC メディアセッションにアクセスすることを許可し、アプリ B と Amazon Chime SDK を使用するその他のアプリケーションをブロックできます。組織で、アプリ A の AppKey と HTTPS プロキシを使用してこれを実行できます。詳細については、このトピックで後述する「[アクセスを特定のアプリケーションに制限する](#limit-app-access)」を参照してください。

**例 2: AppKey と TenantID を使用する**  
アプリ A が一般に公開され、多くの顧客によって使用されている場合は、組織でユーザーがセッションに参加している場合にのみ、アプリ A で自社のネットワークから WebRTC メディアセッションにアクセスできるようにして、他のすべてのアプリ A セッションへのアクセスをブロックするとよいでしょう。組織で、アプリケーションの AppKey、組織の TenantID、HTTPS プロキシを使用してこれを実行できます。詳細については、このトピックで後述する「[アクセスを特定のテナントに制限する](#limit-tenant-access)」を参照してください。

AppKey と TenantID を使用するには、リクエストに HTTPS ヘッダーを追加できる HTTPS プロキシサーバーが必要です。以下の図に示すのは、AppKey と TenantID の仕組みです。

![\[AppKey と TenantID でアプリケーションとテナントの WebRTC セッションへのアクセスを制御する方法を示す図。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/app-key-diagram.png)


この図では、アプリ A にはテナント A-1 と A-2 があり、アプリ B にはテナント B-1 と B-2 があります。この場合、AppKey によってアプリ A のみが WebRTC メディアセッションへの接続を許可され、テナント ID ではテナント A-1 のみをセッションに対して許可します。

**Topics**
+ [アクセスを特定のアプリケーションに制限する](#limit-app-access)
+ [アクセスを特定のテナントに制限する](#limit-tenant-access)
+ [HTTPS ヘッダーの例](#header-examples)

## アクセスを特定のアプリケーションに制限する
<a name="limit-app-access"></a>

*AppKey* は、Amazon Chime が AWS アカウントごとに作成する一貫性のある一意の 256 ビット値です。AppKey がない場合は、Amazon サポートにリクエストできます。複数の AWS アカウントがある場合は、すべてのアカウントに共通の AppKey をリクエストできます。

**注記**  
AppKey を安全に公開して共有し、他の組織で自社のネットワークからのアクセスを制限できるようにすることが可能です。

Amazon Chime SDK では、セッションの作成に使用された AWS アカウント ID に基づいて、各 WebRTC メディアセッションを AppKey に自動で関連付けます。ネットワークからのアクセスを特定のアプリケーションに制限するには、次の手順を実行します。

1. すべてのアウトバウンドリクエストを HTTPS プロキシサーバー経由で `CHIME_MEETINGS` サブネットにルーティングします。

1. `CHIME_MEETINGS` サブネットへのすべてのアウトバウンドリクエストに次のヘッダーを追加するようにプロキシサーバーを設定します。

   `X-Amzn-Chime-App-Keys:` *許可されている AppKey のカンマ区切りリスト*。

   例えば、`X-Amzn-Chime-App-Keys:AppKey-A,AppKey-B,AppKey-C` では、それらの AppKey に関連付けられているアプリにサブネットへのアクセスを許可します。

Amazon Chime SDK では `X-Amzn-Chime-App-Keys` ヘッダーに対するインバウンド WebRTC メディアセッションの接続を確認し、次のロジックを適用します。

1. `X-Amzn-Chime-App-Keys` ヘッダーが存在し、セッションの AppKey が含まれている場合は、接続を承認します。

1. `X-Amzn-Chime-App-Keys` ヘッダーが存在するものの、セッションの AppKey が含まれていない場合は、403 エラーで接続を拒否します。

1. `X-Amzn-Chime-App-Keys` ヘッダーが存在しない場合、接続を受け入れます。ユーザーが組織のネットワークの外部からアプリケーションにアクセスできる場合は、セッションにもアクセスできます。

## アクセスを特定のテナントに制限する
<a name="limit-tenant-access"></a>

*TenantID* は開発者が作成した不透明な識別子です。TenantID については、次の点に注意してください。
+ TenantID はアプリケーション間で一意であることが保証されていないため、TenantID リストごとに AppKey を指定する必要があります。
+ TenantID では大文字と小文字が区別されます。開発者の指示どおりに正確に入力してください。
+ 組織で複数のアプリケーションへのアクセスを制限できますが、それらのアプリケーションの一部には TenantID しか指定できません。TenantID のないアプリケーションは、すべての WebRTC メディアセッションに接続できます。

メディアセッションを TenantID に関連付けるには、開発者はまず `TenantIds` プロパティと TenantID のリストを [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) または [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html) リクエストに追加する必要があります。

以下に例を示します。

`CreateMeeting(..., TenantIds : [ tenantId1, tenantId2 ] )`

組織のネットワークからのアクセスを特定のアプリケーションにおける自社の WebRTC メディアセッションに制限するには、次の手順を実行します。

1. 「[アクセスを特定のアプリケーションに制限する](#limit-app-access)」のステップを実行してください。

1. アウトバウンド接続に `X-Amzn-Chime-Tenants` ヘッダーを追加するように HTTPS プロキシサーバーを設定します。この例に示すように区切られた AppKey と TenantID のリストを含めます。`X-Amzn-Chime-Tenants: AppKey-A:tenantId-A-1,tenantId-A-2;AppKey-B:tenantId-B-1,tenantId-B-2`

Amazon Chime SDK では `X-Amzn-Chime-Tenants` ヘッダーに対するインバウンド WebRTC メディアセッションの接続を確認し、次のロジックを適用します。
+ ヘッダーにセッションの `AppKey:tenantId` が含まれている場合は、接続を承認します。
+ ヘッダーにセッションの `AppKey` が含まれているものの、`tenantId` に一致しない場合は、403 エラーで接続を拒否します。
+ ヘッダーにセッションの `AppKey` が含まれていない場合は、接続を承認します。
+ ヘッダーにセッションの `AppKey` が含まれていても、そのセッションに 1 つ以上の許可された `tenantId` がない場合は、403 エラーで接続を拒否します。これは開発者のバグである可能性があります。
+ ヘッダーが存在しない場合、接続を受け入れます。ユーザーが組織のネットワークの外部からアプリケーションにアクセスできる場合は、すべてのセッションにもアクセスできます。

## HTTPS ヘッダーの例
<a name="header-examples"></a>

次の例では、HTTPS ヘッダーで AppKey と TenantID を使用する方法をいくつか示しています。

**1 つのアプリと 1 つのテナント**  
`X-Amzn-Chime-App-Keys: AppKey`  
`X-Amzn-Chime-Tenants: AppKey:orgId`  
ユーザーは、指定されたアプリで組織の WebRTC メディアセッションにのみアクセスできます。その他のアプリはすべてブロックされます。

**1 つのアプリと 2 つのテナント**  
`X-Amzn-Chime-App-Keys: AppKey`  
`X-Amzn-Chime-Tenants: AppKey:engineeringId,salesId`  
ユーザーは、指定されたアプリでエンジニアリングとセールスのメディアセッションにのみアクセスできます。その他のアプリはすべてブロックされます。

**2 つのアプリ、1 つは単一のテナントに限定**  
`X-Amzn-Chime-App-Keys: AppKey1,AppKey2`  
`X-Amzn-Chime-Tenants: AppKey1:orgId`  
ユーザーは、アプリ 1 では組織のメディアセッションにのみアクセスでき、アプリ 2 ではどのセッションにもアクセスできます。その他のアプリはすべてブロックされます。

# Amazon Chime SDK ミーティングのライフサイクルイベントについて
<a name="using-events"></a>

Amazon Chime SDK は会議のライフサイクルイベントを送信します。これを使用して通知をトリガーし、ダウンストリームワークフローを開始できます。会議イベントを使用する例をいくつか次に示します。
+ 参加者が Amazon Chime SDK ミーティングに参加または退席したときにメタデータを更新する。
+ Amazon Chime SDK ミーティングのプッシュ通知または名簿を実装する。
+ Amazon Chime SDK ミーティングでの動画およびコンテンツ共有の使用状況を測定する。

Amazon EventBridge、Amazon Simple Notification Service (SNS)、Amazon Simple Queue Service (SQS) にイベントを送信できます。詳細については、*「Amazon EventBridge ユーザーガイド*」の[AWS 「サービスからのイベント](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html)」を参照してください。

## Amazon Chime SDK ミーティングの開始
<a name="sdk-start-mtg"></a>

Amazon Chime SDK は、新しい会議の開始時に、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:MeetingStarted",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",    
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK ミーティングの終了
<a name="sdk-end-mtg"></a>

Amazon Chime SDK は、アクティブな会議が終了すると、このイベントを送信します。

**注記**  
効率を高めるため、サービスは [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteMeeting.html) API を呼び出すときにこのイベントも送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:MeetingEnded",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",    
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者の追加
<a name="sdk-add-attendee"></a>

Amazon Chime SDK は、新しい参加者がアクティブな会議に追加されると、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeAdded",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者の削除
<a name="sdk-remove-attendee"></a>

Amazon Chime SDK は、ユーザーが [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteAttendee.html) API を使用して参加者をアクティブな会議から削除すると、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333", 
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeDeleted",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者の許可
<a name="sdk-auth-attendee"></a>

Amazon Chime SDK は、会議に既に参加しているユーザーが同じ参加トークンを使用して会議に再度参加すると、このイベントを送信します。例えば、ユーザーはデスクトップからモバイルデバイスに切り替えることができます。これにより、会議は事実上新しいデバイスに "引き渡され" ます。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeAuthorized",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者の会議への参加
<a name="sdk-join-attendee"></a>

Amazon Chime SDK は、既存の参加者が指定したネットワークトランスポートを使用して Amazon Chime SDK ミーティングに参加したときに、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333", 
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeJoined",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",    
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者の会議からの退席
<a name="sdk-leave-attendee"></a>

Amazon Chime SDK は、既存の参加者が指定したネットワークトランスポートを使用して Amazon Chime SDK ミーティングから退席したときに、このイベントを送信します。

**注記**  
サービスは、同じ "退出" アクションの `chime:AttendeeLeft` および `chime:AttendeeDropped`イベントを送信しません。途中退席と退出は異なるアクションであり、システムは各アクションに対応するイベントを送信します。  
例えば、接続が不十分な参加者が午前 11 時に会議に参加するとします。以下のアクションが実行されることを予想できます。  

```
11:00 API – CreateAttendee, CreateMeetingWithAttendee, or BatchCreateAttendee
11:00   Event – chime:AttendeeAdded
11:01 Action – user joins meeting
11:01   Event – chime:AttendeeJoined
11:02 Action – user's connection drops
11:02   Event – chime:AttendeeDropped
11:03 Action – user's connection restored
11:03   Event – chime:AttendeeJoined
11:30 Action – user leaves meeting
11:30   Event – chime:AttendeeLeft
```

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeLeft",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者の会議からの途中退席
<a name="sdk-drop-attendee"></a>

Amazon Chime SDK は、現在の参加者が Amazon Chime SDK ミーティングから途中退席したときに、このイベントを送信します。これは通常、接続が不十分な場合に起こります。サービスが 10～15 秒間パケットを受信しない場合、途中退席したクライアントが考慮され、イベントが発行されます。

サービスは通常、ドロップアクションをトリガーしますが、クライアントもドロップアクションをトリガーできます。例えば、ユーザーがノート PC を Wi-Fi からイーサネットに切り替えたとします。これはネットワークアダプターの変更であり、接続はリセットされます。次いで、WebSocket がリセットされ、drop および join の結合アクションがトリガーされます。

**注記**  
サービスは、同じ "退出" アクションの `chime:AttendeeLeft` および `chime:AttendeeDropped`イベントを送信しません。途中退席と退出は異なるアクションであり、システムは各アクションに対応するイベントを送信します。  
例えば、接続が不十分な参加者が午前 11 時に会議に参加するとします。以下のアクションが実行されることを予想できます。  

```
11:00 API – CreateAttendee, CreateMeetingWithAttendee, or BatchCreateAttendee
11:00   Event – chime:AttendeeAdded
11:01 Action – user joins meeting
11:01   Event – chime:AttendeeJoined
11:02 Action – user's connection drops
11:02   Event – chime:AttendeeDropped
11:03 Action – user's connection restored
11:03   Event – chime:AttendeeJoined
11:30 Action – user leaves meeting
11:30   Event – chime:AttendeeLeft
```

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeDropped",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",  
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者による動画ストリームの開始
<a name="sdk-attendee-video-start"></a>

Amazon Chime SDK は、既存の参加者が動画ストリームを開始したときに、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333", 
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeVideoStarted",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者による動画ストリームの停止
<a name="sdk-attendee-video-stop"></a>

Amazon Chime SDK は、既存の参加者が動画ストリームを停止したときに、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333", 
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeVideoStopped",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者による共有画面の開始
<a name="sdk-attendee-screenshare-start"></a>

Amazon Chime SDK は、既存の参加者が画面の共有を開始したときに、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentVideoStarted",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者による共有画面の停止
<a name="sdk-attendee-screenshare-stop"></a>

Amazon Chime SDK は、既存の参加者が画面の共有を停止したときに、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentVideoStopped",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 出席者の機能が更新されました
<a name="sdk-attendee-capability-updated"></a>

Amazon Chime SDK は、既存の出席者の機能が更新されたときにこのイベントを送信します。

**Example イベントデータ**  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",
  "id": "12345678-1234-1234-1234-111122223333",
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": [],
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeCapabilitiesUpdated",
    "success": "1", // value can be 1 or 0. 1 means success, 0 means failure
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "mymeeting",
    "attendeeId": "attendeeId",
    "externalUserId": "externalUserId"
    "mediaRegion": "us-east-1"
    "attendeeCapabilities": {
    "audio": "SendReceive",
    "video": "SendReceive",
    "content": "SendReceive"
   }
  }
}
```

## Amazon Chime SDK 参加者によるコンテンツの会議への参加
<a name="sdk-content-join"></a>

Amazon Chime SDK は、指定したネットワークトランスポートを使用してコンテンツ共有が Amazon Chime SDK ミーティングに参加したときに、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentJoined",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者によるコンテンツの会議からの退席
<a name="sdk-content-leave"></a>

Amazon Chime SDK は、指定したネットワークトランスポートを使用してコンテンツ共有が Amazon Chime SDK ミーティングから退席したときに、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentLeft",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者によるコンテンツの会議からの途中退席
<a name="sdk-content-drop"></a>

Amazon Chime SDK は、コンテンツ共有が Amazon Chime SDK ミーティングから切断されたときにこのイベントを送信します。これは通常、低帯域幅が原因で生じます。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentDropped",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "networkType": "Voip",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者によるコンテンツの動画ストリームの開始
<a name="sdk-content-start-stream"></a>

Amazon Chime SDK は、コンテンツ共有がビデオのストリーミングを開始すると、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333",  
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentVideoStarted",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

## Amazon Chime SDK 参加者によるコンテンツの動画ストリームの停止
<a name="sdk-content-stop-stream"></a>

Amazon Chime SDK は、コンテンツ共有がビデオのストリーミングを停止すると、このイベントを送信します。

**Example イベントデータ**  
次の例は、このイベントのデータを示しています。  

```
{
  "version": "0",
  "source": "aws.chime",
  "account": "111122223333", 
  "region": "us-east-1",
  "detail-type": "Chime Meeting State Change",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "resources": []
  "detail": {
    "version": "0",
    "eventType": "chime:AttendeeContentVideoStopped",
    "timestamp": 12344566754,
    "meetingId": "87654321-4321-4321-1234-111122223333",
    "attendeeId": "87654321-4321-4321-1234-111122223333",
    "externalUserId": "87654321-4321-4321-1234-111122223333",
    "externalMeetingId": "87654321-4321-4321-1234-111122223333",
    "mediaRegion": "us-east-1"
  }
}
```

# Amazon Chime SDK ミーティングの Amazon CloudWatch メトリクスについて
<a name="sdk-usage-metrics"></a>

Amazon Chime SDK を使用すると、サービスと使用状況のメトリクスが CloudWatch に送信されます。このメトリクスにより、CloudWatch のグラフとダッシュボードを使用して、Amazon Chime SDK サービスの利用状況をモニタリングできます。メトリクスは、呼び出す各 API のデータをキャプチャします。

以下のセクションでは、メトリクスをリストして説明します。

**Topics**
+ [サービスメトリクス](#service-metrics)
+ [API 使用状況メトリクス](#usage-metrics)

## サービスメトリクス
<a name="service-metrics"></a>

Amazon Chime SDK は、以下のサービスメトリクスを `AWS/ChimeSDK` 名前空間に公開します。


| メトリクス | 単位 | 説明 | 
| --- | --- | --- | 
| `AttendeeAuthorizationSuccess` | カウント | 成功した承認試行の総数。成功とは、参加者が会議への参加を許可されたことを意味します。 | 
| `AttendeeAuthorizationError` | カウント | 承認失敗の総数。これは、参加者が会議に参加できなかったことを示します。 | 
| `AttendeeAudioDrops` | カウント | 音声ドロップの総数。 | 
| `AttendeeContentDrops` | カウント | コンテンツ共有ドロップの総数。 | 
| `MeetingSQSNotificationErrors` | カウント | SQS 通知エラーの総数。 | 
| `MeetingSNSNotificationErrors` | カウント | SNS 通知エラーの総数。 | 

## API 使用状況メトリクス
<a name="usage-metrics"></a>

API 使用状況メトリクスは、 AWS サービスクォータに対応しています。使用量がサービスクォータに近づいたときに警告するアラームを設定することもできます。CloudWatch とサービスクォータの統合の詳細については、「Amazon CloudWatch ユーザーガイド」の「[AWS 使用状況メトリクス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html)」を参照してください。

Amazon Chime SDK は、以下の API メトリクスを `ChimeSDK` サービス名と共に `AWS/Usage` 名前空間に公開します。


| メトリクス | 説明 | 
| --- | --- | 
| `CallCount` | Amazon Chime SDK 内の API に対して行われた呼び出しの総数。SUM は、指定した期間に API に対して行われた呼び出しの総数を表します。 | 
| `ErrorCount` | Amazon Chime SDK 内の API によってスローされたエラーの総数。SUM は、指定した期間に API に対して行われた呼び出しの総数を表します。 | 
| `ThrottleCount` | Amazon Chime SDK 内の API によってスローされたスロットリングエラーの総数。SUM は、指定した期間に API に対して行われた呼び出しの総数を表します。 | 

Amazon Chime SDK は、使用状況メトリクスを以下のディメンションと共に `AWS/Usage` 名前空間に公開します。


| ディメンション | 説明 | 
| --- | --- | 
| Service | リソースを含む AWS サービスの名前。Amazon Chime SDK 使用状況メトリクスの場合、このディメンションの値は `ChimeSDK` です。 | 
| タイプ | 報告されるエンティティのタイプ。Amazon Chime SDK の使用状況メトリクスの有効な値は `API` のみです。 | 
| リソース | メトリクスを報告するリソースのタイプ。Amazon Chime SDK 使用状況メトリクスの場合、このディメンションの値は API の名前です。 | 
| Class | 追跡されているリソースのクラス。Amazon Chime SDK のメトリクスの有効な値は `None` のみです。 | 

# Amazon Chime SDK メディアパイプラインを作成する
<a name="media-pipelines"></a>

このセクションでは、Amazon Chime SDK ミーティングのキャプチャまたはストリーミングに使用されるメディアパイプラインを作成する方法を示します。開始する前に、クライアントアプリケーションを Amazon Chime SDK クライアントライブラリと統合する必要があります。詳細については、「[Amazon Chime SDK クライアントライブラリの詳細](mtgs-sdk-client-lib.md)」を参照してください。メディアパイプラインの詳細については、「*AWS Business Productivity ブログ*」の「[Capture Amazon Chime SDK Meetings Using media pipelines](https://aws.amazon.com/blogs//business-productivity/capture-amazon-chime-sdk-meetings-using-media-capture-pipelines/)」を参照してください。

**重要**  
お客様とそのエンドユーザーは、Amazon Chime SDK ミーティングのレコーディングが電子通信記録に関する法律または規制の対象となる場合があることを理解する必要があります。レコーディングに関するすべての適用法を遵守することは、お客様とそのエンドユーザーの責任です。これには、録画されたセッションのすべての参加者にセッションまたは通信がレコーディングされていることを適切に通知し、同意を得ることが含まれます。  
お客様とそのエンドユーザーは、メディアライブコネクタサービスを使用してストリーミングされるすべてのコンテンツについて責任を負い、かかるコンテンツが法律に違反したり、第三者の権利を侵害または悪用したり、Amazon との契約の重要な条件に違反したりしないようにする必要があります。

**Topics**
+ [Amazon Chime SDK メディアパイプラインを作成するための考慮事項](creating-media-pipelines-considerations.md)
+ [アクティブな Amazon Chime SDK メディアパイプラインのデフォルトの制限について](media-pipelines-limits.md)
+ [Amazon Chime SDK メディアパイプライン名前空間への移行](migrate-pipelines.md)
+ [Amazon Chime SDK メディアパイプラインの作成について](create-pipeline.md)
+ [Amazon Chime SDK ミーティングでメディアキャプチャパイプラインを作成する](capture-pipe-config.md)
+ [Amazon Chime SDK ミーティングでメディア連結パイプラインを作成する](create-concat-pipe.md)
+ [Amazon Chime SDK ミーティングのメディアライブコネクタパイプラインの作成](connector-pipe-config.md)
+ [Amazon Chime SDK を使用してメディアストリームパイプラインを作成する](create-media-stream-pipeline.md)
+ [Amazon Chime SDK ミーティングで音声と動画を単一のビューに合成する](pipeline-compositing.md)
+ [Amazon Chime SDK メディアパイプラインのサービスリンクロールの作成](create-pipeline-role.md)
+ [Amazon Chime SDK メディアパイプラインイベントの使用](media-pipe-events.md)
+ [Amazon Chime SDK メディアパイプラインを停止するためのベストプラクティス](stop-pipe-best-practices.md)

# Amazon Chime SDK メディアパイプラインを作成するための考慮事項
<a name="creating-media-pipelines-considerations"></a>

メディアパイプラインは、以下のパイプラインのいずれかで構成できます。
+ **メディアキャプチャ** – メディアキャプチャパイプラインを使用し、音声、動画、コンテンツ共有ストリームに加えて、会議イベントやデータメッセージをキャプチャします。すべてのメディアキャプチャパイプラインでは、作成した [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (S3) バケットにデータを保存します。Amazon Chime SDK ミーティングごとに 1 つのメディアキャプチャパイプラインを作成できます。詳細については、[Amazon Chime SDK メディアパイプラインの作成について](create-pipeline.md) を参照してください。
+ **メディア連結** – メディア連結パイプラインを使用して、メディアキャプチャパイプラインからのアーティファクトを連結します。連結パイプラインは、メディアキャプチャおよびライブコネクタパイプラインとは独立して機能します。詳細については、[Amazon Chime SDK ミーティングでメディア連結パイプラインを作成する](create-concat-pipe.md) を参照してください。
+ **メディアライブコネクタ** – メディアライブコネクタパイプラインを使用して、Amazon Chime SDK ミーティングを RTMP エンドポイントにストリーミングできるサービスに接続します。Amazon Chime SDK ミーティングごとにメディアライブコネクタパイプラインを 1 つまで作成できます。詳細については、[Amazon Chime SDK ミーティングのメディアライブコネクタパイプラインの作成](connector-pipe-config.md) を参照してください。
+ **メディアストリーム** – メディアストリームパイプラインを使用して、会議の全参加者の個別の音声と、メディア連結パイプラインによって生成された混合音声をキャプチャします。すべてのメディアストリームパイプラインでは、データを [Amazon Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/what-is-kinesis-video.html) (KVS) に保存します。詳細については、[Amazon Chime SDK を使用してメディアストリームパイプラインを作成する](create-media-stream-pipeline.md) を参照してください。

作成されるパイプラインは、使用する名前空間によって異なります。`Chime` 名前空間を使用する場合、作成できるのはメディアキャプチャパイプラインのみです。`ChimeSdkMediaPipelines` 名前空間を使用する場合は、メディア連結パイプラインとメディアライブコネクタパイプラインの作成や合成機能の使用も可能です。`ChimeSdkMediaPipelines` 名前空間に移行する必要がある場合は、[Amazon Chime SDK メディアパイプライン名前空間への移行](migrate-pipelines.md) を参照してください。

# アクティブな Amazon Chime SDK メディアパイプラインのデフォルトの制限について
<a name="media-pipelines-limits"></a>

次の表では、各リージョンにおけるアクティブなメディアパイプラインのデフォルトの上限が一覧表示されています。それぞれのパイプラインのタイプは上限に加算されます。いずれかのリージョンの制限を超えると、[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API、[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html) API、および [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaLiveConnectorPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaLiveConnectorPipeline.html) API は**リソース制限超過**の例外をスローします。

 AWS コンソールの **Service Quotas** ページを使用してアクティブなパイプラインの制限を調整するか、[カスタマーサポート担当者](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html)にお問い合わせください。Amazon Chime SDK ミーティングでの上限の詳細については、「[Amazon Chime SDK のクォータ](meetings-sdk.md#mtg-limits)」を参照してください。


| リージョン | アクティブなパイプラインのデフォルトの上限 | 
| --- | --- | 
| us–east–1 | 100 | 
| us-west-2 | 10 | 
| ap-northeast-1 | 10 | 
| ap-northeast-2 | 10 | 
| ap-south-1 | 10 | 
| ap-southeast-1 | 10 | 
| ap-southeast-2 | 10 | 
| ca-central-1 | 10 | 
| eu-central-1 | 10 | 
| eu-west-2 | 10 | 

# Amazon Chime SDK メディアパイプライン名前空間への移行
<a name="migrate-pipelines"></a>

`ChimeSdkMediaPipelines` 名前空間を使用して、メディアパイプライン API エンドポイントが利用可能な任意の AWS リージョンのエンドポイントに対処します。Amazon Chime SDK を使い始めたばかりの場合は、この名前空間を使用してください。リージョンの詳細については、このガイドの「[Amazon Chime SDK で利用可能な AWS リージョン](sdk-available-regions.md)」を参照してください。

[Amazon Chime](https://docs.aws.amazon.com/chime/latest/APIReference/API_Operations_Amazon_Chime.html) 名前空間を使用する既存のアプリケーションでは、専用の名前空間への移行を計画する必要があります。

**Topics**
+ [パイプラインを移行する理由](#pipeline-migration-reasons)
+ [パイプラインを移行する前に](#migration-prerequisites)

## パイプラインを移行する理由
<a name="pipeline-migration-reasons"></a>

以下の理由から、`ChimeSdkMediaPipelines` 名前空間に移行することをお勧めします。

**API エンドポイントの選択**  
Amazon Chime SDK メディアキャプチャ名前空間は、API エンドポイントを利用できる任意のリージョンの API エンドポイントを使用できる唯一の API 名前空間です。リージョンの詳細については、「[Amazon Chime SDK で利用可能な AWS リージョン](sdk-available-regions.md)」を参照してください。`us-east-1` 以外の API エンドポイントを使用する場合は、`ChimeSdkMediaPipelines` 名前空間を使用する必要があります。現在のエンドポイントの詳細については、このガイドの「[API マッピング](migrate-from-chm-namespace.md#name-end-map)」を参照してください。

**更新および新規追加されたメディアパイプライン API**  
`ChimeSdkMediaPipelines` 名前空間のメディアパイプライン API のみを追加または更新します。

## パイプラインを移行する前に
<a name="migration-prerequisites"></a>

移行する前に、名前空間の相違点に注意してください｡ 以下の表では、名前空間の一覧と説明を示しています。


| 項目 | メディアパイプライン名前空間 | Chime 名前空間 | 
| --- | --- | --- | 
|  名前空間名  |  ChimeSdkMediaPipelines  |  Chime  | 
|  Regions  |  複数  |  us-east-1 のみ  | 
|  エンドポイント  |  https://media-pipelines-chime.*region*.amazonaws.com  |  https://service.chime.aws.amazon.com  | 
|  サービスプリンシパル  |  mediapipelines.chime.amazonaws.com  |  chime.amazonaws.com  | 
|  API  |  メディアパイプラインの API のみ  |  メディアパイプラインの API と Amazon Chime のその他の部分  | 
|  会議  |  `us-west-2`、`ap-southeast-1`、`eu-central-1` リージョンのメディアパイプラインは、Amazon Chime SDK ミーティングの名前空間で作成された会議でのみ機能します。`us-east-1` リージョンのメディアパイプラインは、どちらの名前空間のどの会議エンドポイントによって作成された会議でも動作します。  |  メディアパイプラインは、どちらの名前空間のどの会議エンドポイントによって作成された会議でも動作します。  | 
| デフォルトのアクティブメディアパイプライン | us-east-1 リージョンでは 100、us-west-2、ap-southeast-1、および eu-central-1 の各リージョンでは 10。 | us-east-1 の 100 のみ。 | 
|  サービスリンクロール  |  AWSServiceRoleForAmazonChimeSDKMediaPipelines  |     | 
|  [タグ]  |  利用可能  |  メディアパイプライン API では使用できません。  | 
| CloudTrail イベントソース | chime-sdk-media-pipelines.amazonaws.com | chime.amazonaws.com | 
| メディアライブコネクタ | 利用可能 |  メディアパイプライン API では使用できません。  | 
| コンポジット | 利用可能 |  メディアパイプライン API では使用できません。  | 
| 連結 | 利用可能 | 利用できません。 | 

以下のリストは、Chime 名前空間と AWS ChimeSdkMediaPipelines 名前空間の違いの詳細を示しています。

**名前空間名**  
Amazon Chime SDK 名前空間では `AWS.Chime` という正式名を使用します。Amazon Chime SDK メディアパイプライン名前空間では、`AWS.ChimeSDKMediaPipelines` という正式な名前を使用します。名前の正確な形式はプラットフォームによって異なります。  
例えば、Node.js コードの次の行は `chime` 名前空間をアドレス指定します。  

```
const chimeMediaPipelines = AWS.Chime();
```
メディアパイプライン SDK 名前空間に移行するには、そのコードを新しい名前空間とエンドポイントリージョンで更新します。  

```
const chimeMediaPipelines = AWS.ChimeSDKMediaPipelines({ region: "eu-central-1" });
```

**Regions**  
Amazon Chime 名前空間は、US-EAST-1 リージョンの API エンドポイントのみをアドレス指定します。Amazon Chime SDK メディアパイプライン名前空間は、任意のリージョンの Amazon Chime SDK メディアパイプライン API エンドポイントをアドレス指定できます (そのリージョンにそれらのエンドポイントが存在する場合)。メディアパイプラインのリージョンの最新リストについては、本ガイドの「[Amazon Chime SDK で利用可能な AWS リージョン](sdk-available-regions.md)」を参照してください。

**エンドポイント**  
メディアキャプチャパイプラインを変更するには、パイプラインを作成したのと同じエンドポイントを使用する必要があります。例えば、eu-central-1 のエンドポイント経由でパイプラインを作成した場合は、eu-central-1 を使用してそのパイプラインを操作する必要があります。現在のエンドポイントの詳細については、このガイドの「[API マッピング](migrate-from-chm-namespace.md#name-end-map)」を参照してください。

**サービスプリンシパル**  
[Amazon Chime SDK メディアパイプライン](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間は、新しいサービスプリンシパル `mediapipelines.chime.amazonaws.com` を使用します。サービスへのアクセスを許可する Amazon S3 バケットポリシーまたはその他の IAM ポリシーがある場合は、それらのポリシーを更新して新しいサービスプリンシパルへのアクセスを許可する必要があります。  
例えば、メディアパイプラインを作成する場合、「[Amazon Chime SDK メディアキャプチャパイプラインで Amazon S3 バケットを作成する](create-s3-bucket.md)」に記載されているポリシー権限を新しいサービスプリンシパルに追加する必要があります。ポリシーの詳細については、「IAM ユーザーガイド」の「[AWS JSON ポリシーの要素: プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)」を参照してください。

**API**  
Amazon Chime SDK メディアパイプライン名前空間には、メディアパイプラインを作成および管理する API のみが含まれています。Amazon Chime 名前空間には、メディアパイプライン、会議、および Amazon Chime サービスのその他の部分用の API が含まれています。

**会議**  
IAD リージョンのメディアパイプラインは、どちらの名前空間のどの会議エンドポイントによって作成された会議でも動作します。

**サービスリンクロール**  
Amazon Chime SDK メディアパイプライン名前空間専用。*AWSServiceRoleForAmazonChimeSDKMediaPipelines* ロールを作成します。

**[タグ]**  
[Amazon Chime SDK メディアパイプライン](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html)名前空間は、タグをサポートします。1 つ以上のタグを含む [CreateMediaCapturePipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API または [CreateMediaLiveConnectorPipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaLiveConnectorPipeline.html) API を呼び出す場合、ロールには `TagResource` オペレーションを呼び出すアクセス許可が必要です。

# Amazon Chime SDK メディアパイプラインの作成について
<a name="create-pipeline"></a>

Amazon Chime SDK メディアパイプラインを作成するには、複数の手順から成るプロセスに従います。また、複数のタイプのパイプラインを作成できます。次のリストでは、作成プロセスについて概説し、さまざまなタイプのパイプラインの作成に関する詳細情報へのリンクを提示しています。
+ Amazon S3 バケットを作成する。バケットは、会議と同じ AWS リージョンに作成する必要があります。詳細については、[Amazon Chime SDK メディアキャプチャパイプラインで Amazon S3 バケットを作成する](create-s3-bucket.md) を参照してください。
+ `AWSServiceRoleForAmazonChimeSDKMediaPipelines` という名前のサービスにリンクされたロールを作成します。これにより、メディアパイプラインでユーザーに代わって会議にアクセスできるようになります。詳細については、[Amazon Chime SDK メディアパイプラインのサービスリンクロールの作成](create-pipeline-role.md) を参照してください。
+ [Amazon Chime SDK メディアパイプライン API](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html) を操作するための十分なアクセス許可を持つ IAM ロールを作成します。そうしたロールを作成するには、IAM コンソールから [AmazonChimeSDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-chime-sdk) 管理ポリシーを追加することが推奨されます。このポリシーには必要な API が含まれています。

  また、IAM ロールには、すべてのリソースで Amazon S3 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html) API を呼び出すためのアクセス許可が付与されている必要があります。次の例は、そのための一般的なバケットポリシーを示しています。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Action": "s3:GetBucketPolicy",
              "Effect": "Allow",
              "Resource": "*"
          }
      ]
  }
  ```

------

それらの項目を取得したら、これらのトピックを参照してパイプラインの作成に関する情報を確認します。
+ [Amazon Chime SDK ミーティングでメディアキャプチャパイプラインを作成する](capture-pipe-config.md)
+ [Amazon Chime SDK ミーティングでメディア連結パイプラインを作成する](create-concat-pipe.md)
+ [Amazon Chime SDK ミーティングのメディアライブコネクタパイプラインの作成](connector-pipe-config.md)
+ [Amazon Chime SDK を使用してメディアストリームパイプラインを作成する](create-media-stream-pipeline.md)

# Amazon Chime SDK ミーティングでメディアキャプチャパイプラインを作成する
<a name="capture-pipe-config"></a>

メディアキャプチャパイプラインでは、音声、動画、コンテンツ共有ストリームに加えて、会議イベントやデータメッセージをキャプチャします。すべてのメディアキャプチャパイプラインでは、作成した [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (S3) バケットにデータを保存します。Amazon Chime SDK ミーティングごとに 1 つのメディアキャプチャパイプラインを作成できます。

以下のセクションでは、メディアキャプチャパイプラインを作成する方法について説明します。記載されている順序に従ってください。

**Topics**
+ [Amazon Chime SDK メディアキャプチャパイプラインで Amazon S3 バケットを作成する](create-s3-bucket.md)
+ [Amazon Chime SDK メディアキャプチャパイプラインで Amazon S3 バケットのサーバー側の暗号化を有効にする](sse-kms.md)
+ [AWS KMS キーによるオブジェクトレベルのサーバー側の暗号化の有効化](using-kms-keys-for-encryption.md)
+ [Amazon Chime SDK メディアキャプチャパイプラインを作成する](create-capture-pipe.md)
+ [Amazon Chime SDK メディアキャプチャアーティファクトを処理する](artifacts.md)
+ [Amazon Chime SDK メディアキャプチャパイプラインで音声フォルダを設定する](configure-audio.md)
+ [Amazon Chime SDK メディアキャプチャパイプラインで動画フォルダを設定する](configure-video.md)
+ [Amazon Chime SDK メディアキャプチャパイプラインのデータチャネルフォルダ内のメッセージについて](data-channel.md)
+ [Amazon Chime SDK メディアキャプチャパイプラインの Amazon S3 バケットフォルダ構造について](capture-folder-structure.md)
+ [Amazon Chime SDK メディアキャプチャパイプラインの会議イベントファイルについて](meeting-events.md)
+ [Amazon Chime SDK メディアキャプチャパイプラインの文字起こしファイルについて](transcription-messages.md)
+ [Amazon Chime SDK メディアキャプチャパイプラインのデータストリームを連結する](concatenate-streams.md)

# Amazon Chime SDK メディアキャプチャパイプラインで Amazon S3 バケットを作成する
<a name="create-s3-bucket"></a>

Amazon S3 コンソールの AWS SDKs、または AWS CLI を使用して Amazon S3 バケットを作成できます。詳細については、「Amazon Simple Storage Service (S3) ユーザーガイド」の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。

メディアキャプチャパイプラインの Amazon S3 バケットは、Amazon Chime SDK ミーティングと同じ AWS アカウントに属している必要があります。さらに、Amazon Chime SDK サービスプリンシパル [mediapipelines.chime.amazonaws.com](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) に `s3:PutObject` および `s3:PutObjectAcl` アクセス許可を付与する必要があります。これを行うには、Amazon S3 コンソールまたは AWS Command Line Interface () を使用しますAWS CLI。Amazon S3 バケットは、利用可能な [Amazon Chime SDK メディアリージョン](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html)のいずれかに属している必要があります。

**注記**  
必ず IAM ユーザーにポリシーを追加して、バケットへのアクセスを許可してください。また、デフォルトで AWS を無効にするリージョンを使用する場合は、そのリージョンに Amazon S3 バケットが必要です。  
デフォルトでは、AWS によって以下のリージョンが無効になっています。有効にするまで、これらのリージョンで会議リソースをホストすることはできません。  
アフリカ (ケープタウン)
アジアパシフィック (香港)
アジアパシフィック (ジャカルタ)
欧州 (ミラノ)
中東 (バーレーン)
これらのリージョンのいずれかを使用する場合、Amazon S3 バケットが必要です。これは、Amazon S3 API を使用し、デフォルトでブロックされておらず、既にバケットがあるリージョンと通信する場合にも適用されます。ブロックされたリージョンの有効化に関する詳細については、「AWS 全般リファレンス」の「[AWS リージョンの管理](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)」を参照してください。

バケットを作成したら、その ARN を記録します。これを使用して、メディアキャプチャパイプラインを作成します。

次の例は、Amazon S3 バケットのポリシーを示しています。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "AWSChimeMediaCaptureBucketPolicy",
    "Statement": [
        {
            "Sid": "AWSChimeMediaCaptureBucketPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "mediapipelines.chime.amazonaws.com"
            },
            "Action": [ "s3:PutObject", "s3:PutObjectAcl" ],
            "Resource": "arn:aws:s3:::Bucket_Name/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                "aws:SourceArn": "arn:aws:chime:*:123456789012:*"
                }
            }
        }
    ]
}
```

------

# Amazon Chime SDK メディアキャプチャパイプラインで Amazon S3 バケットのサーバー側の暗号化を有効にする
<a name="sse-kms"></a>

Amazon Simple Storage Service (Amazon S3) バケットのサーバー側の暗号化を有効にするには、以下のタイプの暗号化キーを使用します。
+ Amazon S3 マネージドキー
+ Key Management Service (KMS) のカスタマーマネージド AWS キー
**注記**  
Key Management Service は、カスタマーマネージドキーと AWS マネージドキーの 2 種類のキーをサポートしています。Amazon Chime SDK ミーティングは、カスタマーマネージドキーのみをサポートしています。

## Amazon S3 マネージドキーを使用する
<a name="s3-keys"></a>

Amazon S3 コンソール、CLI、REST API を使用して、Amazon S3 バケットのサーバー側の暗号化を有効にします。いずれの場合でも、暗号化キータイプとして **Amazon S3 キー**を選択します。これ以上の操作は不要です。バケットをメディアキャプチャに使用すると、アーティファクトはサーバー側でアップロードおよび暗号化されます。詳細については、「Amazon S3 ユーザーガイド」の「[Amazon S3 の暗号化の指定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-s3-encryption.html)」をご参照ください。

## 所有しているキーを使用する
<a name="customer-key"></a>

管理するキーによる暗号化を有効にするには、カスタマーマネージドキーによる Amazon S3 バケットのサーバー側の暗号化を有効にしてから、Amazon Chime がキーを使用し、アップロードされたアーティファクトを暗号化できるようにするステートメントをキーポリシーに追加する必要があります。

1. KMS でカスタマーマネージドキーを作成します。詳細については、*Amazon S3*[S3 ユーザーガイド」の AWS KMS 「 (SSE-KMS) を使用したサーバー側の暗号化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)の指定」を参照してください。

1. `GenerateDataKey` アクションを実行し、Amazon Chime SDK サービスプリンシパルである `mediapipelines.chime.amazonaws.com` で使用するキーの生成を可能にするステートメントをキーポリシーに追加します。

   この例は、典型的なステートメントを示しています。

   ```
   ...
   {
       "Sid": "MediaPipelineSSEKMS",
       "Effect": "Allow",
       "Principal": {
           "Service": "mediapipelines.chime.amazonaws.com"
       },
       "Action": "kms:GenerateDataKey",
       "Resource": "*",
       "Condition": {
           "StringEquals": {
              "aws:SourceAccount": "Account_Id"
           },
           "ArnLike": {
               "aws:SourceArn": "arn:aws:chime:*:Account_Id:*"
           }
       }
   }
   ...
   ```

1. メディア連結パイプラインを使用する場合は、Amazon Chime SDK サービスプリンシパルである `mediapipelines.chime.amazonaws.com` に `kms:Decrypt` アクションの使用を許可するステートメントをキーポリシーに追加します。

1. キーによるサーバー側の暗号化を有効にするように Amazon S3 バケットを設定します。

# AWS KMS キーによるオブジェクトレベルのサーバー側の暗号化の有効化
<a name="using-kms-keys-for-encryption"></a>

メディアキャプチャパイプラインとメディア連結パイプラインは、 AWS Key Management Service (AWS KMS) カスタマーマネージドキーを使用して、Amazon S3 バケット内の個々のオブジェクトのサーバー側の暗号化 (SSE) を有効にできます。これを設定するには、[CreateMediaCapturePipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API コールを使用する必要があります。メディア連結パイプラインは、関連付けられたメディアキャプチャパイプラインのサーバー側の暗号化パラメータを使用します。

カスタマーマネージドキーを使用して AWS KMS 個々のオブジェクト (オブジェクトレベルの SSE) の SSE を有効にするには、[CreateMediaCapturePipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API コール`SinkIamRoleArn`中に `SseAwsKeyManagementParams`構造と を指定する必要があります。

1. `SseAwsKeyManagementParams` 構造で `AwsKmsKeyId`パラメータを使用してキーを指定します AWS KMS 。キー ID は、キーの ID、ARN、またはエイリアスを使用して指定できます。

1. `SinkIamRoleArn` パラメータを使用して、 AWS KMS キーとシンク Amazon S3 バケットにアクセスする IAM ロールを指定します。

1. 必要に応じて、 `SseAwsKeyManagementParams`構造の `AwsKmsEncryptionContext`パラメータを使用して、セキュリティを強化するために AWS KMS キーアーティファクトとともに使用する暗号化コンテキストを指定できます。

**注記**  
`AwsKmsKeyId` パラメータと `SinkIamRoleArn`パラメータは共依存しています。両方が存在し、有効である場合、Media Capture Pipeline はロールを引き受け、指定された AWS KMS キーを使用して、指定された Amazon S3 バケットシンクに各アーティファクトを配置します。[CreateMediaConcatenationPipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html) API コールには新しいパラメータはありませんが、指定された場合は前述のパラメータを使用します。アーティファクトを連結する予定がある場合は、リソース設定が次の[設定](#using-kms-keys-for-encryption-config)セクションの説明に従って設定され、時間の経過とともに永続化されていることを確認します。

## 設定
<a name="using-kms-keys-for-encryption-config"></a>

アーティファクトを Amazon S3 バケットに配置する`SinkIamRoleArn`には、プリンシパルと同じアクセス許可とアクセス許可が必要です。Amazon S3 バケットで予想されるデフォルトのアクセス許可の詳細については、[「Amazon Chime SDK メディアキャプチャパイプライン用の Amazon S3 バケットの作成](https://docs.aws.amazon.com/chime-sdk/latest/dg/create-s3-bucket.html)」を参照してください。個々のオブジェクトに対して SSE を有効にするには、Amazon S3 バケットで、 を使用して指定された IAM ロール`SinkIamRoleArn`が、呼び出し元の IAM ID に期待されるのと同じ一連のアクションを実行できるようにする必要があります。これを実現するには、Amazon S3 バケットのアクセス許可ポリシーに次のプリンシパルを追加します。

```
...
"Principal": {
    ...
    "AWS": "arn:aws:iam::<YOUR_ACCOUNT_ID>;:role/<SINK_IAM_ROLE_NAME>"
    ...
},
...
```

は、 に `SinkIamRoleArn`の実行を許可するキーを指す`AwsKmsKeyId`必要があります`GenerateDataKey`。Media Concatenation Pipeline を使用する場合、 AWS KMS キーは `Decrypt`アクションの使用も許可する必要があります。次の例を参照してください。

**注記**  
リソースはワイルドカード を使用するように設定されています。これは`“*”`、 AWS KMS キーポリシーのこのコンテキストでは「自身」を意味します。

```
{
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::<YOUR_ACCOUNT_ID>:role/<YOUR_CUSTOMER_ROLE_ID>"
    },
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
    ],
    "Resource": "*"
}
```

`SinkIamRoleArn` ロールには、サービスがロールを引き受けることを可能にする信頼関係が必要です。次の例を参照してください。

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "mediapipelines.chime.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "<YOUR_ACCOUNT_ID>"
        },
        "ArnLike": {
            "aws:SourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:*"
        }
    }
}
```

には、Media Capture Pipeline に対する以下の最小アクセス許可ポリシー`SinkIamRoleArn`が必要です。次の例を参照してください。

```
{
    "Effect": "Allow",
    "Action": "kms:GenerateDataKey",
    "Resource": "arn:aws:kms:<KMS_KEY_REGION>:<KMS_KEY_ACCOUNT_ID>:key/<MS_KEY_ID>",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "<YOUR_ACCOUNT_ID>"
        },
        "ArnLike": {
            "aws:SourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:*"
        }
    }
},
{
    "Effect": "Allow",
    "Action": ["s3:PutObject", "s3:PutObjectAcl"],
    "Resource": "arn:aws:s3:::<YOUR_DEDICATED_KMS_BUCKET_ID>/*",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "<YOUR_ACCOUNT_ID>"
        },
        "ArnLike": {
            "aws:SourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:*"
        }
    }
}
```

さらに、発信者が `SinkIamRoleArn`サービスに渡すことを許可する必要があります。呼び出し元にそのようなアクセス許可がない場合は、明示的に追加する必要があります。次の例を参照してください。

```
{
    "Effect": "Allow",
    "Action": "iam:PassRole",
    "Resource": "<SINK_IAM_ROLE_ARN>",
    "Condition": {
        "ArnLike": {
            "iam:AssociatedResourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:media-pipeline/*"
        },
        "StringEquals": {
            "iam:PassedToService": "mediapipelines.chime.amazonaws.com"
        }
    }
}
```

## メディア連結の実装
<a name="media-concatenation-implementatoin"></a>

メディアキャプチャ後にメディア連結パイプラインを使用する予定がある場合は、[Amazon Chime SDK メディア連結パイプラインの構築](create-concat-pipe-steps.md)「」を参照して必要なアクセス許可を理解してください。オブジェクトレベルの SSE の AWS KMS キーでパイプラインを機能させるには、 AWS KMS キーと Amazon S3 バケットの`SinkIamRoleArn`アクセス許可 (許可されたアクション) を展開する必要があります。次の例を参照してください。

```
...
{
    ...
    {
        ...
        "Action": ["kms:GenerateDataKey","kms:Decrypt"]
        "Resource": "arn:aws:kms:<KMS_KEY_REGION>:<KMS_KEY_ACCOUNT_ID>:key/<KMS_KEY_ID>",
        ...
    }
    ...
    {
        "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:ListBucket"],
        "Resource": "arn:aws:s3:::<YOUR_DEDICATED_KMS_BUCKET_ID>/*",
    }
    ...
}
...
```

# Amazon Chime SDK メディアキャプチャパイプラインを作成する
<a name="create-capture-pipe"></a>

Amazon S3 バケットを作成して設定した後、メディアキャプチャパイプラインを作成します。

**メディアキャプチャパイプラインを作成するには**
+ [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API を呼び出します。

  バケット ARN を `SinkArn` パラメータとして使用します。

成功すると、会議に参加してキャプチャする参加者が Amazon Chime SDK によって作成されます。

メディアキャプチャパイプラインを作成してそのアクセス許可を設定した後、5 秒間のメディアチャンクを 1 つのファイルに連結するメディア連結パイプラインを作成します。詳細については、このセクションで後述する「[Amazon Chime SDK ミーティングでメディア連結パイプラインを作成する](create-concat-pipe.md)」を参照してください。

# Amazon Chime SDK メディアキャプチャアーティファクトを処理する
<a name="artifacts"></a>

Amazon Chime SDK ミーティング中に、メディアキャプチャパイプラインでは次のタイプのアーティファクトを作成します。
+  音声
+ 動画
+ データチャネルメッセージ
+ 会議イベント
+ 文字起こしメッセージ

パイプラインで Amazon S3 バケット内の一連のフォルダにアーティファクトを作成します。また、特定のタイプのアーティファクトを制限するように音声および動画フォルダを設定できます。以下のセクションでは、フォルダ構造、フォルダの設定方法、Amazon S3 バケットのアクセス許可の設定方法、アーティファクトファイルの連結方法について説明します。

# Amazon Chime SDK メディアキャプチャパイプラインで音声フォルダを設定する
<a name="configure-audio"></a>

音声フォルダには、混合音声ストリームの 5 秒の MP4 ファイルが含まれています。つまり、参加者全員の音声に加えて、発言中のスピーカーの動画が含まれます。このフォルダには、会議全体のファイルが含まれています。必要に応じて、音声アーティファクトのみを含むようにフォルダを設定できます。各ファイル名には *yyyy-mm-dd-hour-min-seconds-milleseconds* のタイムスタンプが含まれています。タイムスタンプは UTC で、開始時刻を示しています。音声アーティファクトのみを含むようにフォルダを設定できます。

```
"ArtifactsConfiguration": { 
         "Audio": { 
            "MuxType": "AudioOnly"
         },
         "Content": {
            "State": "Disabled"
         },
         "Video": {
            "State": "Disabled"
         }
      }
```

# Amazon Chime SDK メディアキャプチャパイプラインで動画フォルダを設定する
<a name="configure-video"></a>

動画フォルダには、動画ストリーム (および、API リクエストで指定されている場合はコンテンツ共有ストリーム) を含む 5 秒の MP4 ファイルが含まれています。各ファイル名には、<yyyy-mm-dd-hour-min-seconds-milleseconds>-<attendeeID> という参加者 ID 付きのタイムスタンプが含まれます。コンテンツ共有の動画チャンクは <yyyy-mm-dd-hour-min-seconds-milleseconds>-<attendeeID>\$1content.mp4 として追加されます。動画アーティファクトのみを含むようにフォルダを設定できます。

```
"ArtifactsConfiguration": { 
         "Audio": { 
            "MuxType": "AudioOnly"
         },
         "Content": {
            "State": "Disabled"
         },
         "Video": {
            "MuxType": "VideoOnly"
            "State": "Enabled"
         }
      }
```

# Amazon Chime SDK メディアキャプチャパイプラインのデータチャネルフォルダ内のメッセージについて
<a name="data-channel"></a>

data-channel フォルダには .txt 形式のデータメッセージが含まれており、各メッセージは JSON オブジェクトです。メッセージはすべての設定オプションと共に表示されます。ファイル名には *yyyy-mm-dd-hour-min-seconds-milleseconds* のタイムスタンプが含まれます。この例は、メッセージ内のデータフィールドを示しています。

```
{
    "Timestamp": "string", 
    "Topic": "string", 
    "Data": "string", 
    "SenderAttendeeId": "string"
}
```

# Amazon Chime SDK メディアキャプチャパイプラインの Amazon S3 バケットフォルダ構造について
<a name="capture-folder-structure"></a>

メディアキャプチャパイプラインの Amazon S3 バケットでは、このようなフォルダ構造が使用されています。

```
S3 bucket path/
  audio
  video  
  data-channel
  meeting-events
  transcription-messages
```

# Amazon Chime SDK メディアキャプチャパイプラインの会議イベントファイルについて
<a name="meeting-events"></a>

meeting-events フォルダには .txt 形式の会議イベントが含まれており、各イベントは JSON オブジェクトです。メッセージはすべての設定オプションと共に表示されます。ファイル名には <yyyy-mm-dd-hour-min-seconds-milleseconds> のタイムスタンプが含まれます。この例は、一般的なイベントファイルのフィールドとデータを示しています。

```
{
    "Timestamp": "string",
    "EventType": "AttendeeJoined | AttendeeLeft | AttendeeVideoJoined | AttendeeVideoLeft | ActiveSpeaker | CaptureStarted | CaptureEnded  | AudioTrackMute | AudioTrackUnmute",
    "EventParameters": {
        # ...
    }
}
```

# Amazon Chime SDK メディアキャプチャパイプラインの文字起こしファイルについて
<a name="transcription-messages"></a>

transcription-messages フォルダには、.txt 形式の文字起こしファイルが含まれています。ただし、このフォルダではライブ文字起こしが有効になっている場合にのみ、ファイルを受信します。ライブ文字起こしの有効化に関する詳細については、「[Amazon Chime SDK ライブ文字起こしの使用](meeting-transcription.md)」を参照してください。

このフォルダには、部分的な文字起こしメッセージと完全な文字起こしメッセージがすべて含まれおり、各メッセージは JSON オブジェクトです。ファイル名には <yyyy-mm-dd-hour-min-seconds-milleseconds> のタイムスタンプが含まれます。文字起こしファイルの例は、「[受信した Amazon Chime SDK ライブ文字起こしイベントの処理](delivery-examples.md)」で確認できます。

# Amazon Chime SDK メディアキャプチャパイプラインのデータストリームを連結する
<a name="concatenate-streams"></a>

**注記**  
メディアキャプチャアーティファクトを連結するプロセスを自動化するには、このガイドの「[Amazon Chime SDK ミーティングでメディア連結パイプラインを作成する](create-concat-pipe.md)」を参照してください。

この例では、ffmpeg を使用して動画または音声ファイルを 1 つの mp4 ファイルに連結します。まず、すべての入力ファイルを含む filelist.txt ファイルを作成します。以下の形式を使用します。

```
file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'
```

次に、以下のコマンドを使用して入力ファイルを連結します。

```
ffmpeg -f concat -i filelist.txt -c copy output.mp4
```

メディア連結パイプラインの詳細については、このガイドの「[Amazon Chime SDK ミーティングでメディア連結パイプラインを作成する](create-concat-pipe.md)」を参照してください。

# Amazon Chime SDK ミーティングでメディア連結パイプラインを作成する
<a name="create-concat-pipe"></a>

メディア連結パイプラインを使用し、メディアキャプチャパイプラインで生成したアーティファクト (ファイル) を連結します。

メディアキャプチャパイプラインでは、メディアストリームをチャンク化し、それらのアーティファクトを Amazon S3 バケットに保存することで、会議のコンテンツをキャプチャします。メディアキャプチャパイプラインでは、次のタイプのアーティファクトを作成します。
+  音声
+ 動画
+ 共有コンテンツ
+ データチャネルメッセージ
+ 文字起こしメッセージ
+ 会議イベント
+ 合成された動画 (共有コンテンツと複数の動画ストリームが動画タイルとしてグリッドに表示されます)。

メディア連結パイプラインを使用すると、各タイプのアーティファクトを 1 つのファイルに連結してから、それらの大容量のファイルを Amazon S3 バケットに保存できます。メディアキャプチャイベントの終了を待たずにメディア連結パイプラインを作成できますが、連結パイプラインではキャプチャパイプラインが停止したときにのみ連結を開始します。

**注記**  
メディアキャプチャパイプライン、メディア連結パイプライン、および Amazon S3 バケットは、同じ AWS アカウントに存在する必要があります。

**Topics**
+ [Amazon Chime SDK 連結パイプラインのアーキテクチャ](concat-architecture.md)
+ [Amazon Chime SDK メディア連結パイプラインの構築](create-concat-pipe-steps.md)
+ [Amazon Chime SDK 連結パイプラインの Amazon S3 バケットフォルダ構造について](concat-folder-structure.md)

# Amazon Chime SDK 連結パイプラインのアーキテクチャ
<a name="concat-architecture"></a>

次の図は、メディア連結パイプラインのアーキテクチャを示しています。

![\[メディア連結パイプラインのアーキテクチャを示す図。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/concatenation-pipe-architecture-2.png)


この図では、[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) リクエストを受信すると、メディアパイプラインコントロールプレーンでメディアパイプラインデータプレーン内のメディアキャプチャパイプラインを起動します。その後、データプレーンで 5 秒ごとにキャプチャしたチャンクをキャプチャバケットにプッシュします。[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html) リクエストを受信すると、メディアパイプラインコントロールプレーンでは、指定されたメディアキャプチャパイプラインが終了するのを待ってから、メディアパイプラインデータプレーンでメディア連結パイプラインを起動します。次に、データプレーンでバケット内のキャプチャされたチャンクを読み取り、連結されたアーティファクトを連結バケットにプッシュします。

# Amazon Chime SDK メディア連結パイプラインの構築
<a name="create-concat-pipe-steps"></a>

Amazon Chime SDK メディア連結パイプラインを作成するには、複数のステップから成るプロセスに従います。このプロセスのステップを以下に示します。

1. メディアキャプチャパイプラインのデータシンクとして使用するための Amazon S3 バケットを作成した後、バケットポリシーを設定します。Amazon S3 バケットのサーバー側の暗号化の有効化については、このガイドの「[Amazon S3 バケットのサーバー側の暗号化を有効にする](https://docs.aws.amazon.com/chime-sdk/latest/dg/sse-kms.html)」を参照してください。メディアキャプチャパイプラインで使用するための Amazon S3 バケットを作成した場合は、そのバケットのポリシーに `s3:GetObject` および `s3:ListBucket` アクションを追加する必要があります。`s3:ListBucket` アクションには、バケットに対するアクセス許可が必要です。その他のアクションには、バケット内のオブジェクトに対するアクセス許可が必要です。バケットレベルとオブジェクトレベルのアクセス許可を指定するには、2 つの異なる Amazon リソースネーム (ARN) を使用する必要があります。

   次の例は、バケットポリシーを示しています。必要に応じてこの例をコピーして貼り付けてください。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "AWSChimeMediaCaptureBucketPolicy",
       "Statement": [
           {
               "Sid": "AWSChimeMediaCaptureBucketPolicy",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "mediapipelines.chime.amazonaws.com"
                   ]
               },
               "Action": [
                   "s3:PutObject",
                   "s3:PutObjectAcl",
                   "s3:GetObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::[Bucket-Name]/*",
                   "arn:aws:s3:::[Bucket-Name]"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012"
                   },
                   "ArnLike": {
                   "aws:SourceArn": "arn:aws:chime:*:123456789012:*"
                   }
               }
           }
       ]
   }
   ```

------

1.  メディア連結パイプラインのデータシンクとして使用するための Amazon S3 バケットを作成し、バケットポリシーを設定します。Amazon S3 バケットのサーバー側の暗号化の有効化については、このガイドの「[Amazon S3 バケットのサーバー側の暗号化を有効にする](https://docs.aws.amazon.com/chime-sdk/latest/dg/sse-kms.html)」を参照してください。

   次の例はポリシーを示しています。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "AWSChimeMediaConcatenationBucketPolicy",
       "Statement": [
           {
               "Sid": " AWSChimeMediaConcatenationBucketPolicy ",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "mediapipelines.chime.amazonaws.com"
                   ]
               },
               "Action": [
                   "s3:PutObject",
                   "s3:PutObjectAcl",
                   "s3:GetObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::[Bucket-Name]/*",
                   "arn:aws:s3:::[Bucket-Name]"
               ],
               "Condition": {
                   "StringEquals": {
                   "aws:SourceAccount": "123456789012"
                   },
                   "ArnLike": {
                   "aws:SourceArn": "arn:aws:chime:*:123456789012:*"
                   }
               }
           }
       ]
   }
   ```

------
**注記**  
1 つの Amazon S3 バケットをメディアキャプチャパイプラインとメディア連結パイプラインに使用できます。ただし、そうする場合は、ステップ 2 で示したメディア連結バケットポリシーに `s3:GetObject` および `s3:ListBucket` アクセス許可を追加する必要があります。連結バケットポリシーにこれらのアクセス許可を付与したくない場合は、パイプラインごとに個別のバケットを作成します。

1. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API を使用して、メディアキャプチャパイプラインを作成します。その一環として、パイプラインの ARN を取得します。ARN の取得に関する詳細については、「[Amazon Chime SDK メディアパイプラインの作成について](create-pipeline.md)」を参照してください。ARN は次のステップで使用します。

1. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html) API を使用して連結パイプラインを作成します。

   次の例はリクエストの本文を示しています。*Path* フィールドはオプションで、デフォルトでは連結パイプラインの ID になります。
**注記**  
過去 30 日間に作成された `MediaPipelineArn` を使用する必要があります。

   ```
   {
       "Sources": [
           {
               "Type": "MediaCapturePipeline",
               "MediaCapturePipelineSourceConfiguration": {
                   "MediaPipelineArn": "Media_Pipeline_Arn",  //must be <30 days old
                   "ChimeSdkMeetingConfiguration": {
                       "ArtifactsConfiguration": {
                           "Audio": {
                               "State": "Enabled"
                           },
                           "Video": {
                               "State": "Enabled | Disabled"
                           },
                           "Content": {
                               "State": "Enabled | Disabled"
                           },
                           "DataChannel": {
                               "State": "Enabled | Disabled"
                           },
                           "TranscriptionMessages": {
                               "State": "Enabled | Disabled"
                           },
                           "MeetingEvents": {
                               "State": "Enabled | Disabled"
                           },
                           "CompositedVideo": {
                               "State": "Enabled | Disabled"
                           }
                       }
                   }
               }
           }
       ],
       "Sinks": [
           {
               "Type": "S3Bucket",
               "S3BucketSinkConfiguration": {
                   "Destination": "arn:aws:s3:::[Bucket_Name]/[Path]"
               }
           }
       ]
   }
   ```

   キャプチャパイプラインが停止するたびに連結が開始されます。連結パイプラインは、連結の完了後に停止します。

# Amazon Chime SDK 連結パイプラインの Amazon S3 バケットフォルダ構造について
<a name="concat-folder-structure"></a>

メディア連結パイプラインの Amazon S3 バケットでは、このフォルダ構造が使用されています。

```
S3 bucket path/
  audio
  video
  composited-video
  data-channel
  meeting-events
  transcription-messages
```

**注記**  
メディアパイプラインの作成時にプレフィックスを指定すると、フォルダへのパスはバケット名/プレフィックスになります。プレフィックスなしの場合、パスはバケット名/メディアパイプライン ID になります。`S3BucketSinkConfiguration` オブジェクトの `Destination` フィールドでプレフィックスを指定します。連結されたファイル名は、メディアファイルの場合はメディアパイプライン ID.mp4、テキストファイルの場合はメディアパイプライン ID.txt になります。

# Amazon Chime SDK ミーティングのメディアライブコネクタパイプラインの作成
<a name="connector-pipe-config"></a>

次のセクションでは、メディアライブコネクタパイプラインの Real-Time Messaging Protocol (RTMP)、音声、動画の設定を一覧表示して説明します。

**RTMP 設定**  
メディアライブコネクタパイプラインは TLS/SSL 接続を介した RTMP をサポートしています。シンク URL はストリーム URL とストリームキーで構成されています。URL は次の形式に従います。

`rtmp(s)://stream-server/stream-key`

以下の例は、一般的なストリーミングプラットフォームに接続する方法を示しています。
+ **Amazon Interactive Video Service (IVS)** – rtmps://a1b2c3d4e5f6.global-contribute.live-video.net:443/app/*IVS-stream-key*
+ **YouTube** – rtmps://a.youtube.com/live2/*stream-key*
+ **Twitch** – rtmps://live.twitch.tv/app/*primary-stream-key*

**重要**  
RTMPS では暗号化を使用し、ストリームが無許可のエンティティによって傍受されないようにします。ベストプラクティスとして、データセキュリティの強化が必要な場合は RTMPS を使用することが挙げられます。

**オーディオ設定**  
メディアライブコネクタパイプラインは、以下の音声設定をサポートしています。
+ **コーデック** – AAC
+ **サンプルレート** – 44100 Hz または 48000 Hz。デフォルトは 44100 Hz。
+ **チャネル** – モノラルまたはステレオ。デフォルトはモノラルです。

**ビデオ設定**  
メディアライブコネクタパイプラインでは H264 エンコーダーを使用します。1280x720 (HD) または 1920x1080 (FHD) を使用できます。どちらの解像度も毎秒 30 フレームで、2 秒ごとに 1 つのキーフレームを使用します。

**メディアライブコネクタパイプラインを停止する**  
メディアライブコネクタパイプラインを停止するためのベストプラクティスとして、[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html) API を呼び出すことが挙げられます。IVS などのストリーミングプラットフォームでストリームを終了しても、メディアライブコネクタパイプラインは停止しません。

# Amazon Chime SDK を使用してメディアストリームパイプラインを作成する
<a name="create-media-stream-pipeline"></a>

メディアストリームパイプラインでは、会議での全参加者の個別の音声のほか、メディア連結パイプラインで生成された混合音声をキャプチャします。すべてのメディアストリームパイプラインでは、データを [Amazon Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/what-is-kinesis-video.html) (KVS) に保存します。

[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html) API を呼び出してビデオストリームを作成します。Amazon Chime SDK ミーティングごとに 1 つのメディアストリームパイプラインを作成できます。

**注記**  
会議で [MediaRegion](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html#chimesdk-meeting-chime_CreateMeeting-request-MediaRegion) としてオプトインリージョンを使用する場合、KVS ストリームは同じリージョンにある必要があります。例えば、会議で `af-south-1` リージョンを使用している場合、KVS ストリームも `af-south-1` にある必要があります。ただし、会議で AWS がデフォルトでオンにしているリージョンを使用している場合、KVS ストリームはオプトインリージョンを含む利用可能な任意のリージョンに存在することができます。例えば、会議で `ca-central-1` を使用する場合、KVS ストリームは `eu-west-2`、`us-east-1`、`af-south-1`、または Amazon Chime SDK がサポートする他のリージョンに存在できます。  
会議が使用する AWS リージョンを確認するには、[GetMeeting](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_GetMeeting.html) API を呼び出し、レスポンスから [MediaRegion](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html#chimesdk-meeting-chime_CreateMeeting-request-MediaRegion) パラメータを使用します。  
オプトインリージョンの詳細については、このガイド[Amazon Chime SDK で利用可能な AWS リージョン](sdk-available-regions.md)の「」および[「 アカウント管理リファレンスガイド」の「アカウントで使用できる AWS リージョンを指定する](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#rande-manage-enable.html)」を参照してください。 *AWS *

次のセクションでは、メディアストリームパイプラインを作成する方法について説明します。記載されている順序に従ってください。

**Topics**
+ [Amazon Chime SDK メディアストリームパイプライン用の Kinesis Video Streams プールの作成](create-kvs-pool.md)
+ [Amazon Chime SDK メディアストリームパイプラインの Kinesis Video Streams プールのコードの例](pool-creation-code.md)
+ [Amazon Chime SDK メディアストリームパイプラインを作成する](create-stream-pipeline.md)
+ [Amazon Chime SDK メディアストリームパイプラインのコードの例](pipeline-creation-code.md)
+ [Amazon Chime SDK メディアストリームパイプラインで Event Bridge 通知を使用する](media-stream-event-bridge.md)
+ [Amazon Chime SDK メディアストリームパイプラインデータの使用](media-stream-tips-tricks.md)

# Amazon Chime SDK メディアストリームパイプライン用の Kinesis Video Streams プールの作成
<a name="create-kvs-pool"></a>

メディアストリームパイプラインの Kinesis Video Streams (KVS) プールは、Amazon Chime SDK ミーティングと同じ AWS アカウントに属している必要があります。[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html) API を呼び出して Kinesis Video Streams プールを作成します。

次の図は、メディアパイプラインの Kinesis Video Streams プールのアーキテクチャを示しています。画像内の数字は、以下の番号付きテキストに対応しています。

![\[Kinesis Video Streams プールを作成する API コールを示した図。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/media-stream-pool-architecture.png)


図中の手順を説明します。

1. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html) API を呼び出します。

1. メディアパイプラインコントロールプレーンでは、ご使用のアカウントに代わって Kinesis Video Streams (KVS) とプールを作成および管理します。

KVS プールの操作、つまりプールでストリームを作成、更新、削除するプロセスは非同期的に行われます。そのため、Event Bridge 通知では `Chime Media Pipeline Kinesis Video Pool State Change` 詳細タイプを使用してプールでのストリームの状態を伝えます。

プールを一度作成すると、他の会議にまたいで再利用できます。また、必要に応じて他のプールを作成し、不要になったらプールを削除することもできます。

プールは、同時通話件数に基づいて自動的にスケールアップされます。不要なプールは削除できます。

**注記**  
プールを削除する場合、プールが完全に削除されるのを待ってから、プール内の KVS ストリームを削除する必要があります。プールが完全に削除されると、Event Bridge 通知が表示されます。これは、プールを使用する会議がすべて終了した後に行われます。[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipelineKinesisVideoStreamPool.html) API を呼び出して、特定の KVS プールの `PoolId` を表示することもできます。  
Kinesis Video Streams [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DeleteStream.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DeleteStream.html) API を呼び出すと、その命名文字列を使用してプール内のストリームを検索および削除できます。[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipelineKinesisVideoStreamPool.html) API を呼び出して、特定の KVS プールの `PoolId` を表示することもできます。次のセクションの例でその方法について説明します。

# Amazon Chime SDK メディアストリームパイプラインの Kinesis Video Streams プールのコードの例
<a name="pool-creation-code"></a>

次の例は、Kinesis Video Streams (KVS) プールを作成、更新、取得、一覧表示、削除する方法を示しています。詳細については、各セクションを展開してください。

## インポートと一般的な変数
<a name="imports-variables"></a>

```
'''
Define imports and common variables
'''

import boto3
from uuid import uuid4
import json

client = boto3.client("chime-sdk-media-pipelines", region_name='us-east-1')
pool_name = 'MyDemoKvsPool'

def pretty_print_json(obj):
    print(json.dumps(obj, default=str, indent=4))
```

## CreateMediaPipelineKinesisVideoStreamPool
<a name="create-stream-sample"></a>

```
response = client.create_media_pipeline_kinesis_video_stream_pool(
        StreamConfiguration={
            'Region': 'us-east-1',
            'DataRetentionInHours': 24
        },
        PoolName=pool_name,
        ClientRequestToken=str(uuid4()),
        Tags=[
            {
                'Key': 'MyTagForAccessControl',
                'Value': 'SomeTagValue'
            },
        ]
)

pretty_print_json(response['KinesisVideoStreamPoolConfiguration'])
```

**出力:**

```
{
    "PoolArn": "arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/MyDemoKvsPool",
    "PoolName": "MyDemoKvsPool",
    "PoolId": "ChimeMediaPipelines-MyDemoKvsPool-1f4e1a69-e718-4884-bf92-8a393ac0405b",
    "PoolStatus": "CREATING",
    "StreamConfiguration": {
        "Region": "us-east-1",
        "DataRetentionInHours": 24
    },
    "CreatedTimestamp": "2023-10-13 01:26:09.979000+00:00",
    "UpdatedTimestamp": "2023-10-13 01:26:09.979000+00:00"
}
```

## GetMediaPipelineKinesisVideoStream
<a name="get-stream-sample"></a>

```
response = client.get_media_pipeline_kinesis_video_stream_pool(
        Identifier=pool_name
)

pretty_print_json(response['KinesisVideoStreamPoolConfiguration'])
```

**出力:**

```
{
    "PoolArn": "arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/MyDemoKvsPool",
    "PoolName": "MyDemoKvsPool",
    "PoolId": "ChimeMediaPipelines-MyDemoKvsPool-1f4e1a69-e718-4884-bf92-8a393ac0405b",
    "PoolStatus": "ACTIVE",
    "StreamConfiguration": {
        "Region": "us-east-1",
        "DataRetentionInHours": 24
    },
    "CreatedTimestamp": "2023-10-13 01:26:09.979000+00:00",
    "UpdatedTimestamp": "2023-10-13 01:26:09.979000+00:00"
}
```

## UpdateMediaPipelineKinesisVideoStream
<a name="update-stream-sample"></a>

```
response = client.update_media_pipeline_kinesis_video_stream_pool(
    Identifier=pool_name,
    StreamConfiguration={
        'DataRetentionInHours': 48
    }
)
pretty_print_json(response['KinesisVideoStreamPoolConfiguration'])
```

**出力:**

```
{
    "PoolArn": "arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/MyDemoKvsPool",
    "PoolName": "MyDemoKvsPool",
    "PoolId": "ChimeMediaPipelines-MyDemoKvsPool-d08c26ae-0336-4e2e-acdf-805a7d71b891",
    "PoolStatus": "UPDATING",
    "PoolSize": 40,
    "StreamConfiguration": {
        "Region": "us-east-1",
        "DataRetentionInHours": 48
    },
    "CreatedTimestamp": "2023-10-13 01:44:23.010000+00:00",
    "UpdatedTimestamp": "2023-10-13 01:44:28.486000+00:00"
}
```

## ListMediaPipelineKinesisVideoStream
<a name="list-stream-sample"></a>

```
list_of_pools = []
max_results = 100
next_token = None
while(True):
    if next_token:
        response = client.list_media_pipeline_kinesis_video_stream_pools(
            NextToken=next_token,
            MaxResults=max_results
        )
    else:
        response = client.list_media_pipeline_kinesis_video_stream_pools(
            MaxResults=max_results
        )

    list_of_pools.extend(response['KinesisVideoStreamPools'])
    next_token = response.get('NextToken')
    if not next_token:
        break
pretty_print_json(list_of_pools)
```

**出力:**

```
[
    {
        "PoolName": "MyDemoKvsPool",
        "PoolId": "ChimeMediaPipelines-MyDemoKvsPool-6588e703-f046-4288-ba7f-0c03de76a6bb",
        "PoolArn": "arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/MyDemoKvsPool"
    }
]
```

## DeleteMediaPipelineKinesisVideoStream
<a name="delete-stream-sample"></a>

```
client.delete_media_pipeline_kinesis_video_stream_pool(
    Identifier=pool_name
)
```

**出力**: 成功した `delete_media_pipeline_kinesis_video_stream_pool` リクエストには本文はありません。

# Amazon Chime SDK メディアストリームパイプラインを作成する
<a name="create-stream-pipeline"></a>

チャイムメディアストリームパイプラインは、Amazon Chime SDK 会議と同じ AWS アカウントに属している必要があります。Amazon Chime SDK メディアストリームパイプラインを作成するには、[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html) API を呼び出し、ソースとシンクを指定します。

次の図は、Amazon Chime SDK メディアストリームパイプラインのアーキテクチャを示しています。図の数字は、次の各説明の番号に対応しています。

![\[メディアストリームプールを作成する API コールを示した図。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/media-stream-pipe-architecture.png)


図中の手順を説明します。

1. `CreateMediaStreamPipeline` API を呼び出します。リクエストでは、ストリームのソースとシンクを指定します。個別の音声、混合音声、またはその両方のどれをキャプチャするのかを指定します。KVS プールの ARN をリクエストに含めます。
   + ソース配列は `SourceType` と `SourceArn` で構成されます。`ChimeSdkMeeting SourceType` を使用する必要があり、`SourceArn` は `ChimeSdkMeeting` の ARN です。
   + シンク配列は `SinkType`、`SinkArn`、`ReservedStreamCapacity`、`MediaStreamType` で構成されます。`KinesisVideoStreamPoolSinkType` のみがサポートされており、`SinkArn` は `KinesisVideoStreamPool` の ARN です。`MediaStreamType` では、シンクにストリーミングされるメディアのタイプ (`MixedAudio` または `IndividualAudio`) を制御します。`ReservedStreamCapacity` では、`KinesisVideoStreamPool` から `MediaStreamType` に対して割り当てるストリームの数を設定します。
     + `IndividualAudio` と `MixedAudio` の両方をストリーミングしたい場合は、`Sinks` 配列に 2 つのシンクオブジェクト (1 つは `IndividualAudio` 用、もう 1 つは `MixedAudio` 用) を作成します。`SinkArn` (`KinesisVideoStreamPool` の ARN) はシンクごとに異なる場合があります。
     + 個別の音声または混合音声のみをストリーミングするには、目的の `MediaStreamType` でシンクオブジェクトを 1 つ作成します。
   + 次の点に注意してください。
     + `KinesisVideoStreamPool` で [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html) API を `SinkType` として呼び出す場合、`SinkARN` は、`CreateMediaStreamPipeline` が呼び出されているコントロールプレーンリージョンに属している必要があります。

       例えば、`us-east-1` でメディアストリームパイプラインを作成する場合は、`us-east-1` で `KinesisVideoStreamPool` を使用する必要があります。
     + `ReservedStreamCapacity` は、`MixedAudio` `MediaStreamType` を指定する場合は **1** に、`IndividualAudio` `MediaStreamType` を指定する場合は **1-10** の間にする必要があります。

1. メディアパイプラインデータプレーンでは KVS [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html) API を呼び出して、指定した KVS プールに属する KVS ストリームに個別の音声を保存します。

1. メディアパイプラインデータプレーンでは KVS `PutMedia` API を呼び出して、指定した KVS プールに属するストリームに混合音声を保存します。

**注記**  
[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaStreamPipeline.html) API を呼び出した後、ビルダーは[メディアパイプラインイベント](media-pipe-events.md)を使用するか、[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipeline.html) API を呼び出して、パイプラインの状態が `InProgress` であるかどうかを判断できます。  
パイプラインの状態が `InProgress` に達すると、メディア (`IndividualAudio` と `MixedAudio` を任意に組み合わせたもの) が KVS にストリーミングされます。  
`IndividualAudio` ストリームタイプでは、参加者 ID と `KinesisVideoStreamPool` から割り当てられた KVS ストリーム間に 1:1 のマッピングが存在します。このマッピングは、メディアパイプラインの存続期間にわたって適用されます。  
どの KVS ストリームが参加者 ID にマッピングされているか、または MixedAudio に割り当てられているかを知るには、以下のいずれかの方法を使用します。  
[Event Bridge 通知](media-stream-event-bridge.md)を使用する。それぞれの通知には、参加者 ID や参加者の音声をストリーミングする KVS ARN などの情報が表示されます。`IndividualAudio` または `MixedAudio` ストリーミングセッションが開始されると、`chime:MediaPipelineKinesisVideoStreamStart` イベントが送信されます。ストリーミングセッションは、参加者が通話から退出するか (`IndividualAudio` の場合)、会議が終了すると終了します。
Kinesis Video Streams で各フラグメントと共に送信される永続メタデータを使用します。このメタデータには、Event Bridge で送信されるものと同様の情報が含まれています。ビルダーは、このソリューションを使用して [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_ListStreams.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_ListStreams.html) Kinesis Video Streams API のプレフィックスとしてプール名を指定することで、`KinesisVideoStreamPool` のすべてのストリームを解析する必要があります。
メディアストリームパイプラインは、ミーティングが削除されるか、そのメディアストリームパイプラインに対して [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html) API が呼び出されると終了します。メディアパイプラインの終了を示す [Event Bridge 通知](media-pipe-events.md)も送信されます。

# Amazon Chime SDK メディアストリームパイプラインのコードの例
<a name="pipeline-creation-code"></a>

以下の例は、混合音声、個別の音声、またはその両方のメディアストリームパイプラインを作成する方法を示しています。詳細については、各セクションを展開してください。

## CreateMediaStreamPipeline (混合音声向け)
<a name="create-mixed-sample"></a>

```
response = client.create_media_stream_pipeline(
    Sources=[
        {
            'SourceType': 'ChimeSdkMeeting',
            'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
        },
    ],
    Sinks=[
        {
            'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
            'SinkType': 'KinesisVideoStreamPool',
            'ReservedStreamCapacity': 1,
            'MediaStreamType': 'MixedAudio'
        },
    ],
    ClientRequestToken='sample token',
    Tags=[
        {
            'Key': 'sample key',
            'Value': 'sample value'
        },
    ]
)
```

**レスポンス**:

```
{
    'MediaStreamPipeline': {
        'MediaPipelineId': '45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'MediaPipelineArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline/45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'CreatedTimestamp': '2023-07-25T21:48:48.265Z',
        'UpdatedTimestamp': '2023-07-25T21:48:48.376Z',
        'Status': 'Initializing',
        'Sources': [
            {
                'SourceType': 'ChimeSdkMeeting',
                'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
            },
        ],
        'Sinks': [
            {
                'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
                'SinkType': 'KinesisVideoStreamPool',
                'ReservedStreamCapacity': 1,
                'MediaStreamType': 'MixedAudio'
            },
        ]
    }
}
```

## CreateMediaStreamPipeline (個別の音声向け)
<a name="create-individual-sample"></a>

```
response = client.create_media_stream_pipeline(
    Sources=[
        {
            'SourceType': 'ChimeSdkMeeting',
            'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
        },
    ],
    Sinks=[
        {
            'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
            'SinkType': 'KinesisVideoStreamPool',
            'ReservedStreamCapacity': 5,
            'MediaStreamType': 'IndividualAudio'
        },
    ],
    ClientRequestToken='sample token',
    Tags=[
        {
            'Key': 'sample key',
            'Value': 'sample value'
        },
    ]
)
```

**レスポンス**:

```
{
    'MediaStreamPipeline': {
        'MediaPipelineId': '45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'MediaPipelineArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline/45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'CreatedTimestamp': '2023-07-25T21:48:48.265Z',
        'UpdatedTimestamp': '2023-07-25T21:48:48.376Z',
        'Status': 'Initializing',
        'Sources': [
            {
                'SourceType': 'ChimeSdkMeeting',
                'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
            },
        ],
        'Sinks': [
            {
                'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
                'SinkType': 'KinesisVideoStreamPool',
                'ReservedStreamCapacity': 5,
                'MediaStreamType': 'IndividualAudio'
            },
        ]
    }
}
```

## CreateMediaStreamPipeline (混合音声および個別の音声向け)
<a name="create-both-sample"></a>

```
response = client.create_media_stream_pipeline(
    Sources=[
        {
            'SourceType': 'ChimeSdkMeeting',
            'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
        },
    ],
    Sinks=[
        {
            'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
            'SinkType': 'KinesisVideoStreamPool',
            'ReservedStreamCapacity': 1,
            'MediaStreamType': 'MixedAudio'
        },
        {
            'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
            'SinkType': 'KinesisVideoStreamPool',
            'ReservedStreamCapacity': 5,
            'MediaStreamType': 'IndividualAudio'
        },
    ],
    ClientRequestToken='sample token',
    Tags=[
        {
            'Key': 'sample key',
            'Value': 'sample value'
        },
    ]
)
```

**レスポンス**:

```
{
    'MediaStreamPipeline': {
        'MediaPipelineId': '45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'MediaPipelineArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline/45bc79a0-4591-4ebe-a642-d42c4e279f2d',
        'CreatedTimestamp': '2023-07-25T21:48:48.265Z',
        'UpdatedTimestamp': '2023-07-25T21:48:48.376Z',
        'Status': 'Initializing',
        'Sources': [
            {
                'SourceType': 'ChimeSdkMeeting',
                'SourceArn': 'arn:aws:chime:us-east-1:account-ID:meeting/bed804cf-8cf0-4991-9b8d-d1acc2987433'
            },
        ],
        'Sinks': [
            {
                'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
                'SinkType': 'KinesisVideoStreamPool',
                'ReservedStreamCapacity': 1,
                'MediaStreamType': 'MixedAudio'
            },
            {
                'SinkArn': 'arn:aws:chime:us-east-1:account-ID:media-pipeline-kinesis-video-stream-pool/foo',
                'SinkType': 'KinesisVideoStreamPool',
                'ReservedStreamCapacity': 5,
                'MediaStreamType': 'IndividualAudio'
            },
        ]
    }
}
```

# Amazon Chime SDK メディアストリームパイプラインで Event Bridge 通知を使用する
<a name="media-stream-event-bridge"></a>

[Amazon Chime SDK メディアパイプラインイベントの使用](media-pipe-events.md) の他にも、メディアストリームパイプラインでは、KVS へのストリーミングを開始および停止したとき、および動画プールの状態が変化したときに Event Bridge 通知を送信します。

**Topics**
+ [Amazon Chime SDK メディアストリームパイプラインのイベントについて](stream-pipe-events.md)
+ [Amazon Chime SDK メディアストリームパイプラインの Kinesis Video Streams プールイベントについて](media-stream-pool-events.md)

# Amazon Chime SDK メディアストリームパイプラインのイベントについて
<a name="stream-pipe-events"></a>

メディアストリームパイプラインでは次のイベントを送信します。詳細については、各セクションを展開してください。

## Amazon Chime Media Stream Pipeline Kinesis Video Stream Start
<a name="stream-pipe-kvs-start"></a>

Amazon Chime SDK メディアパイプラインでは、メディアストリームパイプラインで会議から音声を受信し、その音声を KVS にストリーミングし始めると、このイベントが送信されます。空の `AttendeeId` および `ExternalUserId` フィールドは、メディアパイプラインによって混合音声が KVS ストリームに送信されたことを示します。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamStart", 
        "timestamp": 1627503649251, 
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706", 
        "externalMeetingId": "Meeting_Id", 
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491", 
        "mediaRegion": "ap-southeast-1",
        
        "attendeeId": "Attendee_Id", 
        "externalUserId": "External_User_Id",
                
        "kinesisVideoStreamArn": "arn:aws:kinesisvideo:us-east-1:123456:stream/Chime*",
        "startFragmentNumber": "1234567899444",
        "startTime": "yyyy-mm-ddThh:mm:ssZ"
                
    }
}
```

## Amazon Chime Media Stream Pipeline Kinesis Video Stream End
<a name="stream-pipe-kvs-stop"></a>

KVS へのストリーミングが終了すると、メディアパイプラインによってこのイベントが Event Bridge に送信されます。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamEnd", 
        "timestamp": 1627503649251, 
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706", 
        "externalMeetingId": "Meeting_Id", 
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491", 
        "mediaRegion": "ap-southeast-1",
        
        "attendeeId": "Attendee_Id", 
        "externalUserId": "External_User_Id",
                
        "kinesisVideoStreamArn": "arn:aws:kinesisvideo:us-east-1:123456:stream/Chime*",
        "startFragmentNumber": "1234567899444",
        "startTime": "yyyy-mm-ddThh:mm:ssZ",
        "endTime": "yyyy-mm-ddThh:mm:ssZ",
        "endFragmentNumber": "1234567899555"
    }
}
```

# Amazon Chime SDK メディアストリームパイプラインの Kinesis Video Streams プールイベントについて
<a name="media-stream-pool-events"></a>

プールの状態が変化すると、メディアパイプラインによって次のイベントが Event Bridge に送信されます。詳細については、各セクションを展開してください。

## Amazon Chime Media Pipeline Kinesis Video Pool Active
<a name="kvs-pool-active"></a>

[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaPipelineKinesisVideoStreamPool.html) API でプールを作成した後に、メディアパイプラインによってこのイベントが送信されます。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolActive", 
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
}
```

## Amazon Chime Chime Media Pipeline Kinesis Video Pool Updated
<a name="kvs-pool-updated"></a>

[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaPipelineKinesisVideoStreamPool.html) API でプールを更新した後に、メディアパイプラインによってこのイベントが送信されます。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolUpdated", 
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
}
```

## Amazon Chime Media Pipeline Kinesis Video Pool Deleted
<a name="kvs-pool-deleted"></a>

[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipelineKinesisVideoStreamPool.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipelineKinesisVideoStreamPool.html) によってプールが削除されると、メディアパイプラインによってこのイベントが Event Bridge に送信されます。

プールの削除について詳しくは、このセクションの「[Amazon Chime SDK メディアストリームパイプライン用の Kinesis Video Streams プールの作成](create-kvs-pool.md)」を参照してください。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolDeleted", 
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
 }
```

## Amazon Chime Media Pipeline Kinesis Video Pool Temporary Failure
<a name="kvs-pool-temp-failure"></a>

動画プールで一時的に障害が発生すると、メディアパイプラインによって次のイベントが Event Bridge に送信されます。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolTemporaryFailure", 
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
 }
```

## Amazon Chime Media Pipeline Kinesis Video Pool Permanent Failure
<a name="kvs-pool-perm-failure"></a>

動画プールに恒久的に障害が発生すると、メディアパイプラインによって次のイベントが Event Bridge に送信されます。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolPermanentFailure", 
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
}
```

AWS アカウントが Amazon Kinesis ビデオストリームの制限を超えた場合、次の追加のメディアパイプラインイベントが表示されます。

```
{
    "version": "0",
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483",
    "detail-type": "Chime Media Pipeline Kinesis Video Pool State Change",
    "source": "aws.chime",
    "account": "111122223333",
    "time": "2021-07-28T20:20:49Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "eventType": "chime:MediaPipelineKinesisVideoStreamPoolStreamLimitExceeded",
        "timestamp": 1627503649251,
        "mediaRegion": "ap-southeast-1",
        "poolArn" : "ARN of the KVS Pool"
    }
}
```

# Amazon Chime SDK メディアストリームパイプラインデータの使用
<a name="media-stream-tips-tricks"></a>

通知中のメタデータを使用して KVS ARN、フラグメント番号、フラグメントタイムスタンプを取得できます。そうした情報は、KVS ストリームで音声データを処理するのに役立ちます。

また、KVS ARN と KVS API を組み合わせてストリームからデータを読み取ることもできます。ユースケースに応じて、[https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html) API と [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetMediaForFragmentList.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetMediaForFragmentList.html) API を呼び出します。通常、[https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_ListFragments.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_ListFragments.html) API を呼び出す前に `GetMediaForFragmentList` が呼び出されます。詳細については、「Amazon Kinesis Video Streams のよくある質問」の「[ストリームからのデータの読み取り](https://aws.amazon.com/kinesis/video-streams/faqs/)」を参照してください。

ユースケースによってはビルダーは Kinesis Video Streams パーサーライブラリを使用でき、これにより、続けて KVS [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_GetMedia.html) API が使用されます。

メディアストリームパイプラインによって、次の会議および参加者のメタデータが各フラグメントに追加されます。

```
"meetingId"
"externalMeetingId"
"attendeeId"
"externalUserId"
"sampleRate"
"channels"
```

メディアデータは MKV 形式で格納されます。MKV 音声データはすべて AAC でエンコードされます。詳細については、「Kinesis Video Streams デベロッパーガイド」の「[Kinesis Video Streams データモデル](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-data.html)」を参照してください。

# Amazon Chime SDK ミーティングで音声と動画を単一のビューに合成する
<a name="pipeline-compositing"></a>

Amazon Chime SDK メディアパイプラインは、音声、ウェブカメラ動画、コンテンツ共有動画ストリームの単一のビューへの合成をサポートしています。その後、ライブコネクタを使用して、その単一のビューを Amazon Interactive Video Service、Twitch、YouTube Live などのストリーミングサービスに送信できます。合成された動画は Amazon Simple Storage Service にキャプチャして、保存したり、再利用したりすることもできます。

合成時には `GridView` というデフォルトの画面レイアウトが使用され、これは次のような動作をします。
+ ウェブカメラ動画だけがアクティブな場合、`GridView` ではストリームを次のグリッドパターンで編成します。  
![\[4 列、4 行のグリッドには、人物の輪郭が表示されます。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/grid-no-content-share.png)

  グリッドには最大 25 件のウェブカメラストリームが表示され、ユーザーがカメラをオンにした時点の順にタイルが並び替えられます。
+ `GridView` には、`Landscape` と `Portrait` という 2 つのキャンバスの向きがあります。デフォルトの向きである横向きでは、1280x720 と 1920x1080 (FHD の場合) の動画解像度をサポートしています。縦向きでは、720x1280 と 1080x1920 (FHD の場合) の解像度がサポートされています。
+ 動画タイルの順序、位置、総数、タイルのアスペクト比、角の半径、枠の色、枠線の太さ、ハイライトの色を構成できます。
+ 会議中に参加者が画面を共有すると、コンテンツ共有用のスペースを確保するためにウェブカメラの動画タイルが動的に変化します。次のセクションで説明するレイアウト構成のいずれかを使用して、これらの変化と動画タイルの位置を制御します。

**レイアウト構成について**  
参加者がコンテンツ共有を開始したときに、次のレイアウト構成のいずれかを使用して、共有コンテンツとウェブカメラの動画ストリームを合成する方法を選択できます。
+ `ActiveSpeakerOnlyConfiguration` では、動画コンテンツを全画面表示にして、発言中のスピーカーのウェブカメラ動画を隅に重ねて合成します。隅の位置は指定できます。
+ `PresenterOnlyConfiguration` では動画コンテンツを全画面表示にして、プレゼンターのウェブカメラ動画を隅に重ねて合成します。隅の位置は指定できます。
+ `VerticalLayoutConfiguration` では、動画コンテンツをウェブカメラ動画と隣接する垂直の列に合成します。この列は共有コンテンツの右または左に表示できます。
+ `HorizontalLayoutConfiguration` では、動画コンテンツとウェブカメラ動画を隣接する水平の行に合成します。この行は共有コンテンツの上または下に表示できます。

合成されたレイアウトは、コンテンツ共有がアクティブか否かに基づき、`GridView` と選択したレイアウト間で自動的に切り替わります。

以下のトピックでは、グローバルな `GridView` 設定と各構成レイアウトの使用方法を説明します。

**Topics**
+ [Amazon Chime SDK ミーティングで合成するためのキャンバスの向きの設定](canvas-orientation.md)
+ [Amazon Chime SDK ミーティングで合成するための枠線と角の属性の設定](video-attribute.md)
+ [Amazon Chime SDK ミーティングでの合成にレイアウト設定を使用する](compositing-layouts.md)

# Amazon Chime SDK ミーティングで合成するためのキャンバスの向きの設定
<a name="canvas-orientation"></a>

合成時には、キャンバスにすべての動画ストリームを含めます。キャンバスでは `Landscape` または `Portrait` の向きを指定できます。横向きのアスペクト比は 16:9 です。縦向きのアスペクト比は 9:16 です。

次の図では、縦方向の向きを示しています。

![\[縦向き (垂直) のウィンドウに 2 つの動画タイルが表示されている画像。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/compositing-portrait-with-tile.png)


次の例は、右上隅に動画タイルがある縦向きのキャンバスを実装する方法を示しています。この例では、発言中のスピーカーがタイルに表示されます。詳細については、[ActiveSpeakerOnlyConfiguration](compositing-layouts.md#active-speaker-only)を参照してください。

```
{
   "CompositedVideo":{
      "Layout":"GridView",
      "Resolution":"FHD",
      "GridViewConfiguration":{
         "ContentShareLayout":"ActiveSpeakerOnly",
         "ActiveSpeakerOnlyConfiguration":{
            "ActiveSpeakerPosition":"TopRight"
         }
      },
      "CanvasOrientation": "Portrait"       
   }
}
```

次の図では、横向きを示しています。

![\[横向き (水平) のウィンドウに 2 つの動画タイルが表示されている画像。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/compositing-landscape-with-tile.png)


**CanvasOrientation**  
説明 – 向きの設定 (横向きまたは縦向き)。  
使用できる値 – `Landscape` \$1 `Portrait`  
*必須* – いいえ  
デフォルト – 横向き

# Amazon Chime SDK ミーティングで合成するための枠線と角の属性の設定
<a name="video-attribute"></a>

必要に応じて、`VideoAttribute` パラメータを使用して動画タイルの枠線と角の設定を指定できます。色、幅、角の丸みを指定できます。ハイライトの色も指定でき、参加者が発言すると枠線がその色に変わります。

属性の設定は、共有するコンテンツを問わず、すべてのレイアウトに適用されます。

次の画像は、枠線の色と角の半径が適用された動画タイルを示しています。

![\[画面共有と角が丸い赤色の枠線を備えた動画タイルの画像。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/compositing-speaker-border.png)


次の例は、各属性の使用方法を示しています。この場合、動画タイルの角は丸く、半径は 5 ピクセルです。タイルの枠線は緑色で、幅は 5 ピクセルです。スピーカーが話すと、`HighlightColor` 属性によって枠線の色が赤に変わります。

```
{
   "CompositedVideo":{
      "Layout":"GridView",
      "Resolution":"FHD",
      "GridViewConfiguration":{
         "ContentShareLayout":"ActiveSpeakerOnly",
         "ActiveSpeakerOnlyConfiguration":{
            "ActiveSpeakerPosition":"TopRight"
         }
         "VideoAttribute": {
            "CornerRadius"   : 10,                               
            "BorderColor"    : "Green", 
            "HighlightColor" : "Red",  
            "BorderThickness": 5 
          },      
       }
   }
}
```

**VideoAttribute**  
説明 – 動画タイルの枠線と丸い角の設定を指定します  
使用できる値 – `BorderColor` \$1 `BorderThickness` \$1 `CornerRadius` \$1 `HighlightColor`  
*必須* – いいえ

**VideoAttribute.BorderColor**  
説明 – あらゆる動画タイルの枠線の色を定義します  
使用できる値 – 赤、緑、青などの色の名前  
*必須* – いいえ

**VideoAttribute.BorderThickness**  
説明 - あらゆる動画タイルの枠線の太さをピクセル単位で定義します  
タイプ – 整数  
使用できる値 – 1～20  
*必須* – いいえ

**VideoAttribute.CornerRadius**  
説明 – あらゆる動画タイルの角の半径をピクセル単位で定義します。  
タイプ – 整数  
使用できる値 – 1～20  
*必須* – いいえ

**VideoAttribute.HighlightColor**  
説明 – プレゼンターまたはスピーカーが話すときに表示される枠線の色を定義します  
使用できる値 – 赤、緑、青などの色の名前  
*必須* – いいえ

# Amazon Chime SDK ミーティングでの合成にレイアウト設定を使用する
<a name="compositing-layouts"></a>

以下のトピックでは、さまざまな構成レイアウトの使用方法を説明します。レイアウトは、参加者がコンテンツ共有を開始したときにのみ有効になります。詳細については、各セクションを展開してください。

## ActiveSpeakerOnlyConfiguration
<a name="active-speaker-only"></a>

`ActiveSpeakerOnlyConfiguration` では、共有コンテンツと発言中のスピーカーの動画を表示します。つまり、話している人がコンテンツ共有ストリームに重なる小さな動画タイルに表示されます。

次の図は、スピーカータイルの構成と利用可能な位置を示しています。

![\[ウィンドウの中央に大きな動画タイル、左上に小さなタイルがある画像。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/compositing-active-speaker-4x.png)


次の例は、`ActiveSpeakerOnly` レイアウトをプログラムで実装する方法を示しています。この場合、プレゼンタータイルは左上隅に表示されます。

```
{
   "CompositedVideo":{
      "Layout":"GridView",
      "Resolution":"FHD",
      "GridViewConfiguration":{
         "ContentShareLayout":"ActiveSpeakerOnly",
         "ActiveSpeakerOnlyConfiguration":{
            "ActiveSpeakerPosition":"TopLeft"
         }
      }
   }
}
```

**ActiveSpeakerOnlyConfiguration**  
説明 – `ActiveSpeakerOnly` 動画タイルの構成の設定  
タイプ – ActiveSpeakerOnlyConfiguration オブジェクト  
*必須* – いいえ

**ActiveSpeakerOnlyConfiguration.ActiveSpeakerPosition**  
説明 – 発言中のスピーカーの動画タイルの位置  
タイプ – 文字列  
有効な値 – `TopLeft` \$1 `TopRight` \$1 `BottomLeft` \$1 `BottomRight`  
*必須* – いいえ  
デフォルト – `TopRight`

## PresenterOnlyConfiguration
<a name="presenter-only"></a>

`PresenterOnlyConfiguration` では、発言者を問わず、共有コンテンツとプレゼンターの動画のみを表示します。次の画像は、構成を示しています。

![\[4 つの画面の画像。各画面の中央には共有ウィンドウがあり、それぞれの隅に動画タイルがあります。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/compositing-presenter-only-4x.png)


次の例は、プレゼンターを右上に配置してレイアウトをプログラムで実装する方法を示しています。

```
{
    "CompositedVideo": {
    "Layout": "GridView",
    "Resolution": "FHD",
     "GridViewConfiguration": {
         "ContentShareLayout": "PresenterOnly",
         "PresenterOnlyConfiguration": { 
             "PresenterPosition": "TopRight"
             }
         }           
     }
}
```

**PresenterOnlyConfiguration**  
説明 – `PresenterOnly` レイアウトの構成の設定  
タイプ – `PresenterOnlyConfiguration` オブジェクト  
*必須* – いいえ

**PresenterOnlyConfiguration.PresenterPosition**  
説明 – プレゼンターの動画タイルの位置  
タイプ – 文字列  
有効な値 – `TopLeft` \$1 `TopRight` \$1 `BottomLeft` \$1 `BottomRight`  
*必須* – いいえ  
デフォルト – `TopRight`

## HorizontalLayoutConfiguration
<a name="horizontal-layout"></a>

`HorizontalLayoutConfiguration` では、共有コンテンツと動画ストリームを水平に表示します。`TilePosition` 設定を使用して、コンテンツ共有ストリームの上または下にタイルを表示することができます。プレゼンターは常に左側に表示されます。追加のタイルは、`JoinSequence` で指定された順序で表示されます。

次の図は、コンテンツ共有ストリームの下のタイルを示しています。

![\[中央に大きなタイルが 1 つあり、その下にある線に 4 つの小さなタイルが並んでいる画像。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/compositing-horizontal-bottom.png)


次の例は、水平レイアウトをプログラムで実装する方法を示しています。この場合、レイアウトではタイルを `SpeakerSequence` の順番に並べ替えたうえで、共有画面の下に配置します。このレイアウトでは最大 4 つのタイルを使用でき、16/9 のアスペクト比が適用されます。

```
{
   "CompositedVideo":{
      "Layout":"GridView",
      "Resolution":"FHD",
      "GridViewConfiguration":{
         "ContentShareLayout":"Horizontal",
         "HorizontalLayoutConfiguration":{
            "TileOrder":"SpeakerSequence",
            "TilePosition":"Bottom",
            "TileCount":4,
            "TileAspectRatio":"16/9"
         }
      }
   }
}
```

**HorizontalLayoutConfiguration**  
説明 – 水平レイアウトの構成の設定  
タイプ – HorizontalLayoutConfiguration オブジェクト  
*必須* – いいえ

**HorizontalLayoutConfiguration.TilePosition**  
説明 – 共有コンテンツの上または下にタイルを配置します。  
タイプ - 文字列  
有効な値 – `Bottom` \$1 `Top`  
*必須* – いいえ  
デフォルト — 下部

**HorizontalLayoutConfiguration.TileOrder**  
説明 – ユーザーが参加したとき、または発言したときにタイルの順番を並べ替えます。  
タイプ – 文字列  
有効な値 – `JoinSequence` \$1 `SpeakerSequence`  
*必須* – いいえ  
デフォルト – JoinSequence

**HorizontalLayoutConfiguration.TileCount**  
説明 – 画面共有中に引き続き表示されるタイルの数を指定します  
タイプ – 整数  
有効な値 – 1～10  
*必須* – いいえ  
デフォルト – 4

**HorizontalLayoutConfiguration.TileAspectRatio**  
説明 – タイルのアスペクト比を指定します  
タイプ – 整数  
有効な値 – *n***/***n*  
*必須* – いいえ  
デフォルト – 16/9、値はすべてのタイルに適用されます

## VerticalLayoutConfiguration
<a name="vertical-layout"></a>

`VerticalLayoutConfiguration` では、共有コンテンツと最新の 4 つの動画を右側に積み重ねて表示します。プレゼンターは常に一番上に表示されます。他の参加者は `TileOrder` で指示された順序で表示されます。

![\[ウィンドウの中央に大きな動画タイルがあり、右側に 4 つの小さなタイルが積み重なっている画像。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/grid-vertical.png)


次の例は、垂直レイアウトをプログラムで実装する方法を示しています。この場合、レイアウトではタイルを JoinSequence の順番に並べて、共有画面の右に配置します。このレイアウトでは最大 4 つのタイルを使用でき、16/9 のアスペクト比が適用されます。

```
{
   "CompositedVideo":{
      "Layout": "GridView",
      "Resolution": "FHD",
      "GridViewConfiguration":{
         "ContentShareLayout": "Vertical",
         "VerticalLayoutConfiguration":{
            "TileOrder": "JoinSequence",
            "TilePosition": "Right",
            "TileCount": 4,
            "TileAspectRatio": "16/9"
         }
      }
   }
}
```

**VerticalLayoutConfiguration**  
説明 – 垂直レイアウトの構成の設定  
タイプ – VerticalLayoutConfiguration オブジェクト  
*必須* – いいえ

**VerticalLayoutConfiguration.TilePosition**  
説明 – 共有コンテンツの右または左にタイルを配置します。  
タイプ – 文字列  
有効な値 – `Bottom` \$1 `Top`  
*必須* – いいえ  
デフォルト — 下部

**VerticalLayoutConfiguration.TileOrder**  
説明 – ユーザーが参加したとき、または発言したときにタイルの順番を並べ替えます。  
タイプ – 文字列  
有効な値 – `JoinSequence` \$1 `SpeakerSequence`  
*必須* – いいえ  
デフォルト – JoinSequence

**VerticalLayoutConfiguration.TileCount**  
説明 – タイルの数を指定します  
タイプ – 整数  
有効な値 – 1～10  
*必須* – いいえ  
デフォルト – 4

**VerticalLayoutConfiguration.TileAspectRatio**  
説明 – タイルのアスペクト比を指定します  
タイプ – 整数  
有効な値 – *n***/***n*  
*必須* – いいえ  
デフォルト – 9/16、値はすべてのタイルに適用されます

# Amazon Chime SDK メディアパイプラインのサービスリンクロールの作成
<a name="create-pipeline-role"></a>

以下のセクションでは、Amazon Chime SDK ミーティングへのアクセスをメディアパイプラインに許可するサービスにリンクされたロールの作成方法について説明します。

**Topics**
+ [ロールのアクセス許可を設定する](#pipeline-role-permissions)
+ [サービスリンクロールの作成](#create-sl-role)
+ [サービスリンクロールの編集](#edit-pipeline-role)
+ [サービスリンクロールの削除](#delete-pipeline-role)
+ [サービスにリンクされたロールをサポートするリージョン](#role-supported-regions)

## ロールのアクセス許可を設定する
<a name="pipeline-role-permissions"></a>

メディアパイプラインでは、*AWSServiceRoleForAmazonChimeSDKMediaPipelines* という名前のサービスにリンクされたロールを使用します。このロールにより、キャプチャパイプラインでユーザーに代わって Amazon Chime SDK 会議にアクセスし、Amazon CloudWatch にメトリクスを公開できます。このロールでは `mediapipelines.chime.amazonaws.com` サービスを信頼します。

ロールのアクセス許可ポリシーにより、Amazon Chime SDK はすべての AWS リソースに対して次のアクションを実行できます。
+ アクション: `cloudwatch:PutMetricData`。対象リソース: `all AWS resources`
+ アクション: `all AWS resources` 上で `chime:CreateAttendee`
+ アクション: `all AWS resources` 上で `chime:DeleteAttendee`
+ アクション: `all AWS resources` 上で `chime:GetMeeting`
+ アクション: `arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*` 上で `kinesisvideo:CreateStream`
+ アクション: `arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*` 上で `kinesisvideo:PutMedia`
+ アクション: `arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*` 上で `kinesisvideo:UpdateDataRetention`
+ アクション: `arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*` 上で `kinesisvideo:DescribeStream`
+ アクション: `arn:aws:kinesisvideo:*:111122223333:stream/ChimeMediaPipelines-*` 上で `kinesisvideo:GetDataEndpoint`
+ アクション: `kinesisvideo:ListStreams`。対象リソース: `arn:aws:kinesisvideo:*:111122223333:stream/*`

サービスにリンクされたロールの作成、編集、削除を IAM エンティティ (ユーザー、グループ、ロールなど) に許可するには、アクセス許可を設定する必要があります。詳細については、「IAM ユーザーガイド」の「[Service linked role permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)」を参照してください。

## サービスリンクロールの作成
<a name="create-sl-role"></a>

IAM コンソールを使用して、Amazon Chime SDK メディアパイプラインで使用するためのサービスにリンクされたロールを作成できます。これらのステップを完了するには、IAM 管理者権限が必要です。お持ちでない場合、システム管理者に相談してください。

**ロールを作成するには**

1.  AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam) で IAM コンソールを開きます。

1. IAM コンソールのナビゲーションペインで、**[ロール]**、**[ロールを作成]** を選択します。

1. **[AWS サービス]** ロールタイプを選択した後、**[Chime SDK メディアパイプライン]** を選択します。

   IAM ポリシーが表示されます。

1. ポリシーの横にあるチェックボックスを選択してから、**[次へ: タグ]** を選択します。

1. **[次へ: レビュー]** を選択します。

1. 必要に応じて説明を編集してから **[Create role]** (ロールの作成) を選択します。

CLI または AWS API AWS を使用して、*mediapipelines.chime.amazonaws.com* という名前のサービスにリンクされたロールを作成することもできます。 AWS CLI で、次のコマンドを実行します。

```
aws iam create-service-linked-role --aws-service-name mediapipelines.chime.amazonaws.com
```

ロールの作成の詳細については、「IAM ユーザーガイド」の「[サービスにリンクされたロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)」を参照してください。このロールを削除する場合、この同じプロセスを使用して、もう一度ロールを作成できます。

## サービスリンクロールの編集
<a name="edit-pipeline-role"></a>

サービスにリンクされたロール *AWSServiceRoleForAmazonChimeSDKMediaPipelines* を編集することはできません。このロールは他のエンティティによって参照される場合があるため、ロールの作成後にロールの名前を変更することはできません。ただし、IAM を使用してロールの説明を編集することはできます。詳細については、「*IAM ユーザーガイド*」の「[サービスリンクロールの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)」を参照してください。

## サービスリンクロールの削除
<a name="delete-pipeline-role"></a>

サービスにリンクされたロールが不要な場合は、削除することを推奨します。そのためには、まず、そのロールを使用するメディアパイプラインを削除します。CLI または [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html) API AWS を使用してパイプラインを削除できます。

**CLI を使用してパイプラインを削除する**  
CLI AWS でこのコマンドを使用して、アカウントのメディアパイプラインを削除します。

```
aws chime-sdk-media-pipelines delete-media-capture-pipeline --media-pipeline-id Pipeline_Id
```

**API を使用してパイプラインを削除する**  
[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html) API を使用して、アカウント内のメディアパイプラインを削除します。

**ロールの削除**  
パイプラインを削除したら、IAM コンソール、CLI、または AWS API AWS を使用してロールを削除できます。ロールの削除の詳細については、「IAM ユーザーガイド」の「[サービスにリンクされたロールの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)」を参照してください。

## サービスにリンクされたロールをサポートするリージョン
<a name="role-supported-regions"></a>

Amazon Chime SDK は、サービスが利用可能なすべての AWS リージョンでサービスにリンクされたロールの使用をサポートしています。詳細については、「*Amazon Web Services 全般のリファレンス*」の「[Amazon Chime SDK エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html)」を参照してください。

# Amazon Chime SDK メディアパイプラインイベントの使用
<a name="media-pipe-events"></a>

各タイプのメディアパイプラインでライフサイクルイベントを送信し、これを使用して通知をトリガーし、ダウンストリームワークフローを開始することができます。メディアパイプラインイベントの使用例をいくつか次に示します。
+ メディアパイプラインが完了した後に、キャプチャしたメディアを処理する。
+ メディアパイプラインに一時的な障害が発生した場合に、会議参加者に通知する。
+ メディアパイプラインに恒久的に障害が発生した場合に、会議を中止する。

Amazon EventBridge、Amazon Simple Notification Service (SNS)、Amazon Simple Queue Service (SQS) にイベントを送信できます。詳細については、*Amazon EventBridge ユーザーガイド*の「[AWS サービスからのイベント](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html)」を参照してください。

## Amazon Chime SDK media pipeline created
<a name="media-pipeline-create"></a>

Amazon Chime SDK では、メディアパイプラインが作成されたときにこのイベントを送信します。

**例: イベントデータ**  
 以下はこのイベントのサンプルデータです。

```
{
    "version": "0", 
    "id": "5ee6265a-0a40-104e-d8fd-a3b4bdd78483", 
    "detail-type": "Chime Media Pipeline State Change", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "time": "2021-07-28T20:20:49Z", 
    "region": "us-east-1", 
    "resources": [], 
    "detail": {
        "version": "0", 
        "eventType": "chime:MediaPipelineInProgress", 
        "timestamp": 1627503649251, 
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706", 
        "externalMeetingId": "Meeting_Id",
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491", 
        "mediaRegion": "ap-southeast-1"
    }
}
```

## Amazon Chime SDK media pipeline deleted
<a name="media-pipeline-delete"></a>

Amazon Chime SDK は、メディアパイプラインが正常に停止した後にこのイベントを送信します。

**例: イベントデータ**  
以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "9e11e429-97fd-9532-5670-fac3f7abc05f",
    "detail-type": "Chime Media Pipeline State Change",
    "source": "aws.chime",
    "account": "365135496707",
    "time": "2021-07-28T20:21:50Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "version": "0",
        "eventType": "chime:MediaPipelineDeleted",
        "timestamp": 1627503710485,
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706",
        "externalMeetingId": "Meeting_Id",
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491",
        "mediaRegion": "ap-southeast-1"
    }
}
```

## Amazon Chime SDK media pipeline has a temporary failure
<a name="pipeline-temp-failure"></a>

Amazon Chime SDK では、メディアパイプラインに一時的な障害が発生したときにこのイベントを送信します。

**例: イベントデータ**  
以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "abc141e1-fc2e-65e8-5f18-ab5130f1035a",
    "detail-type": "Chime Media Pipeline State Change",
    "source": "aws.chime",
    "account": "365135496707",
    "time": "2021-07-28T21:16:42Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "version": "0",
        "eventType": "chime:MediaPipelineTemporaryFailure",
        "timestamp": 1627507002882,
        "meetingId": "7a5434e3-724a-4bbb-9eb6-2fb209dc0706",
        "externalMeetingId": "Meeting_Id",
        "mediaPipelineId": "ebd62f4e-04a9-426d-bcb0-974c0f266400",
        "mediaRegion": "eu-south-1"
    }
}
```

## 進行中の Amazon Chime SDK メディアパイプライン
<a name="pipeline-in-progress"></a>

Amazon Chime SDK は、メディアパイプラインがアーティファクトのキャプチャを開始すると、このイベントを送信します。

**例: イベントデータ**  
以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "9e11e429-97fd-9532-5670-fac3f7abc05f",
    "detail-type": "Chime Media Pipeline State Change",
    "source": "aws.chime",
    "account": "365135496707",
    "time": "2021-07-28T20:21:50Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "version": "0",
        "eventType": "chime:MediaPipelineInProgress",
        "timestamp": 1627503710485?,
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706",
        "externalMeetingId": "Meeting_Id",
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491",
        "mediaRegion": "ap-southeast-1"
    }
}
```

## Amazon Chime SDK media pipeline permanent failure
<a name="pipeline-perm-failure"></a>

Amazon Chime SDK では、メディアパイプラインに恒久的に障害が発生したときにこのイベントを送信します。

**例: イベントデータ**  
以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "9e11e429-97fd-9532-5670-fac3f7abc05f",
    "detail-type": "Chime Media Pipeline State Change",
    "source": "aws.chime",
    "account": "365135496707",
    "time": "2021-07-28T20:21:50Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "version": "0",
        "eventType": "chime:MediaPipelinePermanentFailure",
        "timestamp": 1627503710485,
        "meetingId": "1e6bf4f5-f4b5-4917-b8c9-bda45c340706",
        "externalMeetingId": "Meeting_Id",
        "mediaPipelineId": "e40ee45e-2ed1-408e-9156-f52b8208a491",
        "mediaRegion": "ap-southeast-1"
    }
}
```

# Amazon Chime SDK メディアパイプラインの Amazon S3 バケットアクセス許可の設定
<a name="s3-permissions"></a>

Amazon S3 バケットを作成していない場合は、会議をホストするアカウントおよびリージョンに必ずバケットを作成してください。また、必ずサービスに適切なアクセス許可を付与してください。Amazon S3 バケットの作成に関する詳細については、「[Amazon Chime SDK メディアキャプチャパイプラインで Amazon S3 バケットを作成する](create-s3-bucket.md)」を参照してください。

# CloudTrail への Amazon Chime SDK メディアパイプラインイベントの送信
<a name="pipeline-cloudtrail"></a>

AWS は、 AWS アカウントの作成時に CloudTrail を有効にします。ユーザーがメディアパイプライン SDK でサポートされている API を呼び出すと、CloudTrail はその API のアクティビティを他の AWS イベントとともに**イベント履歴**に記録します。AWS アカウント内のメディアパイプラインイベントを表示、検索、ダウンロードできます。詳細については、「CloudTrail ユーザーガイド」の「[CloudTrail イベント履歴でのイベントの表示](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)」を参照してください。

メディアパイプラインイベントを継続的に記録するために、証跡を作成できます。証跡により、CloudTrail はログファイルをお客様の Amazon S3 バケットに配信できます。以下の例は、メディアパイプライン証跡を示しています。データには、API を呼び出したユーザー、API の呼び出しに使用された IAM ロール、タイムスタンプが含まれます。CloudTrail の使用に関する詳細については、「Amazon Chime SDK Administrator Guide」の「[Logging and monitoring](https://docs.aws.amazon.com/chime-sdk/latest/ag/monitoring-overview.html)」を参照してください。

```
{
   "Records": [    
   {
      "eventVersion": "1.08",
      "userIdentity": {
          "type": "AssumedRole",
          "principalId": "ABCDEFGHIJKLMNOPQRSTUV:user-name",
          "arn": "arn:aws:sts::123456789101:assumed-role/role-name/user-name",
          "accountId": "109876543210",
          "accessKeyId": "ABCDEFGHIJKLMNOPQRSTUV",
          "sessionContext": {
              "sessionIssuer": {
                  "type": "Role",
                  "principalId": "ABCDEFGHIJKLMNOPQRSTUV",
                  "arn": "arn:aws:iam::109876543210:role/role-name",
                  "accountId": "012345678910",
                  "userName": "user-name"
                  },
          "webIdFederationData": {},
          "attributes": {
              "mfaAuthenticated": "false",
              "creationDate": "2022-03-08T19:34:55Z"
              }
          }
      },
      "eventTime": "2022-03-08T20:28:41Z",
     "eventSource": "chime-sdk-media-pipelines.amazonaws.com",
     "eventName": "CreateMediaCapturePipeline",
     "awsRegion": "us-east-1",
     "sourceIPAddress": "127.0.0.1",
     "userAgent": "[]/[]",
     "requestParameters": {
         "sourceType": "ChimeSdkMeeting",
         "sourceArn": "Hidden_For_Security_Reasons",
         "sinkType": "S3Bucket",
         "sinkArn": "Hidden_For_Security_Reasons",
         "chimeSdkMeetingConfiguration": {
             "artifactsConfiguration": {
                 "audio": {
                    "muxType": "AudioOnly"
                 },
            "video": {
                "state": "Enabled",
                "muxType": "VideoOnly"
                },
            "content": {
                "state": "Enabled",
                "muxType": "ContentOnly"
                }
            }
        }
      },
     "responseElements": {
        "mediaCapturePipeline": {
        "mediaPipelineId": "pipeline-uuid",
        "sourceType": "ChimeSdkMeeting",
        "sourceArn": "Hidden_For_Security_Reasons",
        "status": "Initializing",
        "sinkType": "S3Bucket",
        "sinkArn": "Hidden_For_Security_Reasons",
        "createdTimestamp": "2022-03-08T20:28:41.336Z",
        "updatedTimestamp": "2022-03-08T20:28:41.463Z",
        "chimeSdkMeetingConfiguration": {
            "artifactsConfiguration": {
                "audio": {
                    "muxType": "AudioOnly"
                },
            "video": {
                "state": "Enabled",
                 "muxType": "VideoOnly"
                 },
             "content": {
                 "state": "Enabled",
                 "muxType": "ContentOnly"
                 }
              }
            }
          }
      },
      "requestID": "request-id",
      "eventID": "event-id",
     "readOnly": false,
      "eventType": "AwsApiCall",
      "managementEvent": true,
      "eventCategory": "Management",
      "recipientAccountId": "112233445566",
      "tlsDetails": {
          "tlsVersion": "TLSv1.2",
          "clientProvidedHostHeader": "example.com"
       }
    },  
  ]
}
```

# Amazon Chime SDK メディアパイプラインを停止するためのベストプラクティス
<a name="stop-pipe-best-practices"></a>

メディアパイプラインを停止するためのベストプラクティスとして、[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html) API を呼び出すことが挙げられます。この API では、メディアキャプチャパイプラインとメディアライブコネクタパイプラインを削除できます。[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaCapturePipeline.html) API を呼び出して、メディアキャプチャパイプラインを削除することもできます。会議が終了すると、すべてのメディアパイプラインが停止します。

# Amazon Chime SDK ライブ文字起こしの使用
<a name="meeting-transcription"></a>

Amazon Chime SDK ライブ文字起こしを使用すると、ユーザー属性付きの会議の文字起こしがリアルタイムで生成されます。Amazon Chime SDK ライブ文字起こしは、Amazon Transcribe サービスおよび Amazon Transcribe Medical サービスと統合され、Amazon Chime SDK ミーティングの文字起こしを会議の進行中に生成します。

Amazon Chime SDK ライブ文字起こしは、各ユーザーの音声を個別に処理することで、マルチスピーカーシナリオでの精度を向上させます。Amazon Chime SDK は、アクティブトーカーアルゴリズムを使用して上位 2 人のアクティブトーカーを選択し、それらのユーザーの音声を個別のチャネルに分離したうえで 1 つのストリームとして Amazon Transcribe に送信します。会議の参加者は、Amazon Chime SDK データメッセージを介してユーザー属性付きの文字起こしを受け取ります。文字起こしは、字幕の表示、会議の文字起こしの作成、文字起こしを使用したコンテンツ分析など、さまざまな方法で使用できます。

ライブ文字起こしでは、会議の文字起こしを行っている間、Amazon Transcribe への 1 つのストリームを使用します。Amazon Transcribe および Amazon Transcribe Medical の標準コストが適用されます。詳細については、「[Amazon Transcribe の料金](https://aws.amazon.com/transcribe/pricing/)」を参照してください。使用量または請求に関するご質問は、 AWS アカウントマネージャーにお問い合わせください。

**重要**  
デフォルトでは、Amazon Transcribe は、サービス[AWS 条件](https://aws.amazon.com/service-terms/)のセクション 50 で詳しく説明されているように、サービスによって処理されたオーディオコンテンツを使用して保存し、 AWS AI/ML サービスを開発および改善する場合があります。Amazon Transcribe の使用は、電子通信記録または傍受に関する連邦および州の法律または規制の対象となる場合があります。録音に関するすべての適用法を遵守することは、お客様とそのエンドユーザーの責任です。これには、録音セッションまたは通信のすべての参加者にセッションまたは通信が録音されていることを適切に通知し、必要なすべての同意を得ることを含みます。 AWS Organizations を使用して AWS AI サービスのオプトアウトポリシーを設定することで、オーディオコンテンツ AWS を使用して AI/ML サービスを開発および改善することをオプトアウトできます。

**Topics**
+ [システムアーキテクチャ](#sys-architecture)
+ [請求と使用状況](#billing-and-usage)
+ [Amazon Chime SDK ライブ文字起こし用のアカウントの設定](configure-transcribe.md)
+ [Amazon Chime SDK ライブ文字起こしオプションの選択](transcription-options.md)
+ [Amazon Chime SDK ライブ文字起こしの開始と停止](initiate-transcription.md)
+ [Amazon Chime SDK ライブ文字起こしパラメータ](#transcription-parameters)
+ [Amazon Chime SDK のライブ文字起こしイベントについて](transcription-events.md)
+ [Amazon Chime SDK のライブ文字起こしメッセージについて](process-msgs.md)
+ [受信した Amazon Chime SDK ライブ文字起こしイベントの処理](delivery-examples.md)
+ [Amazon Chime SDK トランスクリプトの解析](parse-transcripts.md)

## システムアーキテクチャ
<a name="sys-architecture"></a>

Amazon Chime SDK は、Amazon Transcribe アカウントまたは Amazon Transcribe Medical アカウントとのサービス側の統合により、音声を AWS ネットワーク外に出すことなく、会議の文字起こしをリアルタイムで作成します。精度を向上させるため、ユーザーの音声は個別に処理されてから、会議の音声に融合されます。Amazon Chime SDK は、アクティブトーカーアルゴリズムを使用して上位 2 人のアクティブトーカーを選択し、それらのユーザーの音声を個別のチャネルに分離したうえで 1 つのストリームとして Amazon Transcribe または Amazon Transcribe Medical に送信します。レイテンシーを低減するため、ユーザー属性付きの文字起こしは、データメッセージを介してすべての会議参加者に直接送信されます。メディアパイプラインを使用して会議の音声をキャプチャする場合、会議の文字起こし情報もキャプチャされます。

![\[会議の文字起こしのデータフローを示す図。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/transcription-architecture.png)


## 請求と使用状況
<a name="billing-and-usage"></a>

ライブ文字起こしでは、会議の文字起こしを行っている間、Amazon Transcribe または Amazon Transcribe Medical への 1 つのストリームを使用します。Amazon Transcribe および Amazon Transcribe Medical の標準コストが適用されます。詳細については、「[Amazon Transcribe の料金](https://aws.amazon.com/transcribe/pricing/)」を参照してください。使用量または請求に関するご質問は、 AWS アカウントマネージャーにお問い合わせください。

# Amazon Chime SDK ライブ文字起こし用のアカウントの設定
<a name="configure-transcribe"></a>

Amazon Chime SDK ライブ文字起こしを使用する前に、 AWS アカウントで Amazon Transcribe と Amazon Transcribe Medical を呼び出すアクセス許可を Amazon Chime SDK に付与する必要があります。そのためには、Chime Transcription サービスリンクロールをアカウントに追加します。ライブ文字起こし用のサービスリンクロールの作成については、「Amazon Chime SDK Administration Guide」の「[Using roles with live transcription](https://docs.aws.amazon.com/chime-sdk/latest/ag/using-service-linked-roles-transcription.html)」を参照してください。IAM サービスリンクロールの詳細については、「IAM ユーザーガイド」の「[Service Linked Roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)」を参照してください。

# Amazon Chime SDK ライブ文字起こしオプションの選択
<a name="transcription-options"></a>

Amazon Chime SDK ライブ文字起こしを使用する場合は、 AWS アカウント内で [Amazon Transcribe](https://aws.amazon.com/transcribe/) または [Amazon Transcribe Medical](https://aws.amazon.com/transcribe/medical/) を使用します。[Amazon Transcribe がサポートするすべてのストリーミング言語](https://docs.aws.amazon.com/transcribe/latest/dg/what-is-transcribe.html)に加えて、[カスタム語彙](https://docs.aws.amazon.com/transcribe/latest/dg/how-vocabulary.html)や[語彙フィルター](https://docs.aws.amazon.com/transcribe/latest/dg/filter-unwanted-words.html)などの機能にもアクセスできます。Amazon Transcribe Medical を使用する場合、医療専門分野や会話タイプを選択することができ、オプションで任意のカスタム語彙を指定することもできます。Amazon Transcribe および Amazon Transcribe Medical の標準コストが適用されます。

文字起こしオプションを選択するプロセスでは、以下のステップを実行します。

## ステップ 1: 文字起こしサービスを選択する
<a name="choose-service"></a>

[Amazon Transcribe](https://aws.amazon.com/transcribe/) または [Amazon Transcribe Medical](https://aws.amazon.com/transcribe/medical/) のどちらの文字起こしサービスを使用するかを決める必要があります。

医療分野の音声テキスト変換機能が必要なユースケースでは、ほとんどの場合に Amazon Transcribe Medical を使用することが推奨されます。それ以外のユースケースでは、ほとんどの場合に Amazon Transcribe を使用することが推奨されます。

`StartMeetingTranscription` API を呼び出すときに使用する文字起こしサービスを指定します。
+ Amazon Transcribe を使用するには、`TranscriptionConfiguration` と `EngineTranscribeSettings` を指定します。
+ Amazon Transcribe Medical を使用するには、`TranscriptionConfiguration` と `EngineTranscribeMedicalSettings` を指定します。

## ステップ 2: 文字起こしのリージョンを選択する
<a name="choose-region"></a>

文字起こしサービスの AWS リージョンを選択する必要があります。Amazon Transcribe と Amazon Transcribe Medical で利用可能な AWS リージョンについては、[AWS リージョン別サービスの](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)表を参照してください。

 一般的に、会議のメディアリージョンと文字起こしリージョンの間のレイテンシーが低いほど、ユーザーエクスペリエンスが高くなります。レイテンシーを最低限に抑えるために、可能な限りメディアと文字起こしに同じリージョンを使用してください。ただし、リージョンを選択する際には、規制要件や、Amazon Transcribe または Amazon Transcribe Medical を設定したリージョンなど、他の要素を考慮する必要がある場合があります。

Amazon Transcribe と Amazon Transcribe Medical の機能 (カスタム語彙や語彙フィルターなど) は、リージョンに固有のものです。これらの機能のいずれかを設定する場合は、ライブ文字起こしを使用する予定のすべての AWS リージョンで同じように設定する必要があります。または、すべての会議に同じ Amazon Transcribe リージョンを使用することもできます。

文字起こしサービスで使用するリージョンを指定できます。これを行うには、`StartMeetingTranscription` API を呼び出すときに、文字起こしエンジン設定の `Region` フィールドにリージョン名を追加します。リージョンを指定しない場合、Amazon Chime SDK は会議のメディアリージョンで文字起こしサービスの使用を試みます。Amazon Chime SDK で文字起こしサービスのリージョンが自動的に選択されるようにするには、`Region` フィールドで `auto` を指定します。そうすると、Amazon Chime は、以下の表で説明されているように、会議のメディアリージョンに基づいて文字起こしサービスのリージョンを選択します。`StartMeetingTranscription` API の詳細については、本ガイドの「[Amazon Chime SDK ライブ文字起こしの開始と停止](initiate-transcription.md)」を参照してください。

**注記**  
Amazon Chime SDK によって選択された文字起こしリージョンは、Amazon Chime SDK AWS、Amazon Transcribe、Amazon Transcribe Medical によってより多くのリージョンが利用可能になるため、変更される可能性があります。

**Amazon Transcribe の自動リージョン選択**  



|  Amazon Chime SDK メディアリージョン  |  リージョンコード  |  文字起こしリージョン  | 
| --- | --- | --- | 
|  米国東部 (オハイオ)  |  us-east-2  | us-east-2  | 
|  米国東部 (バージニア北部)  |  us–east–1  | us–east–1  | 
|  米国西部 (北カリフォルニア)  |  us-west-1  | us-west-2 | 
|  米国西部 (オレゴン)  |  us-west-2  | us-west-2  | 
|  アフリカ (ケープタウン)**\$1\$1**  |  af-south-1  | eu-west-2  | 
|  アジアパシフィック (ムンバイ)  |  ap-south-1  | eu-west-2 | 
|  アジアパシフィック (ソウル)  |  ap-northeast-2  | ap-northeast-2 | 
|  アジアパシフィック (シンガポール)  |  ap-southeast-1  | ap-northeast-1 | 
|  アジアパシフィック (シドニー)  |  ap-southeast-2  | ap-southeast-2 | 
|  アジアパシフィック (東京)  |  ap-northeast-1  | ap-northeast-1 | 
|  カナダ (中部)  |  ca-central-1  | ca-central-1 | 
|  欧州 (フランクフルト)   |  eu-central-1  | eu-central-1  | 
|  欧州 (アイルランド)  |  eu-west-1  | eu-west-1 | 
|  欧州 (ロンドン)  |  eu-west-2  | eu-west-2  | 
|  欧州 (ミラノ)**\$1\$1**  |  eu-south-1  | eu-central-1  | 
|  欧州 (パリ)  |  eu-west-3  | eu-central-1  | 
|  欧州 (ストックホルム)  |  eu-north-1  | eu-central-1 | 
|  南米 (サンパウロ）  |  sa-east-1  | sa-east-1 | 
|  GovCloud (米国東部)  |  us-gov-east-1  |  us-gov-west-1  | 
|  GovCloud (米国西部)  |  us-gov-west-1  |  us-gov-west-1  | 

**Amazon Transcribe Medical の自動リージョン選択**  



|  Amazon Chime SDK メディアリージョン  |  リージョンコード  |  文字起こしリージョン  | 
| --- | --- | --- | 
|  米国東部 (オハイオ)  |  us-east-2  | us-east-2 | 
|  米国東部 (バージニア北部)  |  us–east–1  | us–east–1 | 
|  米国西部 (北カリフォルニア)  |  us-west-1  | us-west-2 | 
|  米国西部 (オレゴン)  |  us-west-2  | us-west-2 | 
|  アフリカ (ケープタウン)**\$1\$1**  |  af-south-1  |  eu-west-1  | 
|  アジアパシフィック (ムンバイ)  |  ap-south-1  | eu-west-1  | 
|  アジアパシフィック (ソウル)  |  ap-northeast-2  | us-west-2 | 
|  アジアパシフィック (シンガポール)  |  ap-southeast-1  | ap-southeast-2 | 
|  アジアパシフィック (シドニー)  |  ap-southeast-2  | ap-southeast-2 | 
|  アジアパシフィック (東京)  |  ap-northeast-1  | us-west-2 | 
|  カナダ (中部)  |  ca-central-1  | ca-central-1 | 
|  欧州 (フランクフルト)   |  eu-central-1  | eu-west-1 | 
|  欧州 (アイルランド)  |  eu-west-1  | eu-west-1 | 
|  欧州 (ロンドン)  |  eu-west-2  | us–east–1 | 
|  欧州 (ミラノ)**\$1\$1**  |  eu-south-1  | eu-west-1 | 
|  欧州 (パリ)  |  eu-west-3  | eu-west-1 | 
|  欧州 (ストックホルム)  |  eu-north-1  | eu-west-1 | 
|  南米 (サンパウロ）  |  sa-east-1  | us–east–1 | 

**注記**  
アスタリスク (**\$1**) でマークされたリージョンでライブ文字起こしを使用するには、最初に、 AWS アカウントでそのリージョンを有効にする必要があります。詳細については、「 AWS 全般のリファレンス」の「[リージョンを有効にする](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)」を参照してください。

各サービスのリージョンとエンドポイントの詳細については、以下を参照してください。
+ [Amazon Chime SDK メディアリージョン](https://docs.aws.amazon.com/chime-sdk/latest/dg/chime-sdk-meetings-regions.html)
+ [Amazon Transcribe エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/transcribe.html#transcribe_region)
+ [Amazon Transcribe Medical エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/transcribe-medical.html)

## ステップ 3: サービスクォータを確認する
<a name="transcribe-quotas"></a>

ライブ文字起こしを使用する Amazon Chime SDK ミーティングごとに、Amazon Transcribe または Amazon Transcribe Medical への HTTP/2 ストリームが 1 つだけ必要です。どちらのサービスにも、同時 HTTP/2 ストリームの数と 1 秒あたりのストリーム開始トランザクション数に対応したリージョン別のサービスクォータがあります。クォータの詳細については、「Amazon Transcribe Developer Guide」の「[Guidelines and quotas](https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html)」を参照してください。クォータの引き上げについては、 AWS コンソールのService Quotas」を参照してください。

# Amazon Chime SDK ライブ文字起こしの開始と停止
<a name="initiate-transcription"></a>

Amazon Chime SDK の [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_StartMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_StartMeetingTranscription.html) API を使用して、`TranscriptionConfiguration` を会議に適用することで会議の文字起こしを開始します。Amazon Chime SDK コントローラは、設定を会議に非同期的に転送します。会議の文字起こしの成否は、Amazon Simple Service (Amazon SNS) と Amazon EventBridge を介したメッセージによって通知されます。

**文字起こしを開始する**  
この例は、Amazon Transcribe でライブ文字起こしを開始する方法を示しています。

```
POST /meetings/meetingId/transcription?operation=start HTTP/1.1 
Content-type: application/json
{
    "TranscriptionConfiguration": {
        "EngineTranscribeSettings": {
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax)": "en-US",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax)": "tag",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "profanity",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "lingo",
            "Region": "us-east-1"
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": true,  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "high",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "PII",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "PII",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "ALL",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "language-model"
        }
    }
}
```

この例は、Amazon Transcribe Medical でライブ文字起こしを開始する方法を示しています。

```
POST /meetings/meetingId/transcription?operation=start HTTP/1.1 
Content-type: application/json
{  
    "TranscriptionConfiguration": {
        "EngineTranscribeMedicalSettings": {
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "en-US",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "PRIMARYCARE",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "CONVERSATION",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "lingo",
            "Region": "us-east-1",
           "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "PHI", 
        }
   }
}
```

`StartMeetingTranscription` – 会議の文字起こしを開始します。  
`meetingId` – [CreateMeeting API](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html#API_CreateMeeting_ResponseSyntax) によって返される会議の ID。  
`TranscriptionConfiguration` – ライブ文字起こしのパラメータをカプセル化します。設定は 1 つだけ (`EngineTranscribeSettings` または `EngineTranscribeMedicalSettings`) 指定する必要があります。

`EngineTranscribeSettings` – Amazon Transcribe の使用を指定し、その設定を [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestParameters](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestParameters) に渡します。  
`LanguageCode` – 必須。  
`VocabularyFilterMethod` - オプション。  
`VocabularyFilterName` - オプション。  
`VocabularyName` - オプション。  
`Region` - オプション。  
`EnablePartialResultsStabilization` - オプション。  
`PartialResultsStability` - オプション。  
` ContentIdentificationType` - オプション。  
`ContentRedactionType` - オプション。  
`PiiEntityTypes ` - オプション。  
`LanguageModelName` - オプション。

`EngineTranscribeMedicalSettings` – Amazon Transcribe Medical の使用を指定し、その設定を [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html#API_streaming_StartMedicalStreamTranscription_RequestParameters](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html#API_streaming_StartMedicalStreamTranscription_RequestParameters) に渡します。  
`LanguageCode` – 必須。  
`Speciality` – 必須。  
`Type` – 必須。  
`VocabularyName` - オプション。  
`Region` - オプション。  
` ContentIdentificationType` - オプション。

**レスポンス**  
Amazon Transcribe と Amazon Transcribe Medical は、以下のレスポンスを返します。
+ 会議に `TranscriptionConfiguration` が正常に適用された場合、`OK` (200) と空の本文。

**エラーメッセージ**  
Amazon Transcribe と Amazon Transcribe Medical は、以下のエラーメッセージを表示します。
+ **BadRequestException (400):** 入力パラメータがサービスの制限と一致しません。
+ **ForbiddenException (403):** このクライアントはリクエストの実行を永続的に禁止されています。
+ **NotFoundException (404):** `meetingId` は存在しません。
+ **ResourceLimitExceededException (400):** リクエストがリソースの制限を超えています。例えば、ライブ文字起こしが有効になっている会議が多すぎます。
+ **ServiceFailureException (500):** サービス中に予期しないエラーが発生しました。
+ **ServiceUnavailableException (503):** 現在、このサービスは利用できません。
+ **ThrottledClientException (429):** クライアントがリクエストレートの制限を超えました。
+ **UnauthorizedClientException (401):** クライアントは現在、リクエストを行う権限がありません。

`StartMeetingTranscription` の 2 回目の呼び出しにより、会議に適用されている `TranscriptionConfiguration` が更新されます。

**文字起こしの停止**  
[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html) API を使用して、特定の `meetingID` の `TranscriptionConfiguration` を削除して、会議の文字起こしを終了します。会議を終了すると、文字起こしは自動的に停止します。

この例は、`StopMeetingTranscription` を呼び出すリクエスト構文を示しています。

```
POST/meetings/meetingId/transcription?operation=stop HTTP/1.1
```

**レスポンス**  
Amazon Transcribe と Amazon Transcribe Medical は、以下のレスポンスを返します。
+ 会議から `TranscriptionConfiguration` が正常に削除された場合、`OK` (200) と空の本文。

**エラーメッセージ**  
Amazon Transcribe と Amazon Transcribe Medical は、以下のエラーメッセージを表示します。
+ **BadRequestException (400):** 入力パラメータがサービスの制限と一致しません。
+ **ForbiddenException (403):** このクライアントはリクエストの実行を永続的に禁止されています。
+ **NotFoundException (404):** `meetingId` は存在しません。
+ **ServiceFailureException (500):** サービス中に予期しないエラーが発生しました。
+ **ServiceUnavailableException (503):** 現在、このサービスは利用できません。
+ **ThrottledClientException (429):** クライアントがリクエストレートの制限を超えました。
+ **UnauthorizedClientException (401):** クライアントは現在、リクエストを行う権限がありません。

## Amazon Chime SDK ライブ文字起こしパラメータ
<a name="transcription-parameters"></a>

Amazon Transcribe および Amazon Transcribe Medical の API には、ストリーミング文字起こしを開始する際に、[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html) や [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html) などのさまざまなパラメータが用意されています。Amazon Chime SDK でパラメータの値が事前に決定されていない限り、これらのパラメータを `StartMeetingTranscription` API で使用できます。例えば、`MediaEncoding` パラメータと `MediaSampleRateHertz` パラメータは、Amazon Chime SDK によって自動的に設定されるため使用できません。

Amazon Transcribe と Amazon Transcribe Medical はパラメータを検証します。これにより、新しいパラメータ値が利用可能になりしだい、すぐにそれらを使用できるようになります。例えば、Amazon Transcribe Medical が新しい言語のサポートを開始した場合、必要なのは、`LanguageCode` パラメータに新しい言語値を指定することだけです。

# Amazon Chime SDK のライブ文字起こしイベントについて
<a name="transcription-events"></a>

Amazon Chime SDK は文字起こしのライフサイクルイベントを送信します。これを使用して通知をトリガーし、ダウンストリームワークフローを開始できます。文字起こしイベントを使用する例としては、以下のようなものがあります。
+ Amazon Chime SDK ミーティングでのライブ文字起こしの採用状況を測定する
+ 言語設定を追跡する

Amazon EventBridge、Amazon Simple Notification Service、Amazon Simple Queue Service にイベントを送信できます。詳細については、*「Amazon EventBridge ユーザーガイド*」の[AWS 「サービスからのイベント](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html)」を参照してください。

## Amazon Chime SDK ミーティングの文字起こしが開始されました
<a name="transcript-start"></a>

Amazon Chime SDK は、会議の文字起こしが開始されるか、[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html) が更新されると、このイベントを送信します。

**例: イベントデータ**  
以下はこのイベントのサンプルデータです。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionStarted",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StartMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StartMeetingTranscription.html)": "{...}"
    }
}
```

## Amazon Chime SDK ミーティングの文字起こしが停止されました
<a name="transcript-stop"></a>

Amazon Chime SDK は、会議の文字起こしが停止されると、このイベントを送信します。

**例: イベントデータ**  
以下はこのイベントのサンプルデータです。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionStopped",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html)": "{...}"
    }
}
```

## Amazon Chime SDK ミーティングの文字起こしが中断されました
<a name="transcript-interrupted"></a>

Amazon Chime SDK は、会議の文字起こしが中断されると、このイベントを送信します。

**例: イベントデータ**  
以下はこのイベントのサンプルデータです。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionInterrupted",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "message": "Internal server error",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html)": "{...}"
    }
}
```

## Amazon Chime SDK ミーティングの文字起こしが再開されました
<a name="transcript-resumed"></a>

Amazon Chime SDK は、会議の文字起こしが中断後に再開されると、このイベントを送信します。

**例: イベントデータ**  
以下はこのイベントのサンプルデータです。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionResumed",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html)": "{...}"
    }
}
```

## Amazon Chime SDK ミーティングの文字起こしが失敗しました
<a name="transcript-failed"></a>

Amazon Chime SDK は、会議の文字起こしが開始に失敗するか、中断後の再開に失敗すると、このイベントを送信します。

**例: イベントデータ**  
以下はこのイベントのサンプルデータです。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionFailed",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "message": "Internal server error",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html)": "{...}"
    }
}
```

# Amazon Chime SDK のライブ文字起こしメッセージについて
<a name="process-msgs"></a>

Amazon Chime SDK サービスは、データメッセージで `TranscriptEvent` オブジェクトを送信することにより、文字起こし情報を参加者と共有します。`TranscriptEvent` は `Transcript` または `TranscriptionStatus` を配信します。

`Transcript` には、タイムスタンプとユーザー属性が付いた単語および句読点を含む結果が含まれます。結果が「部分的」なものになることもありますが、その場合は通常、後続の `TranscriptEvent` で更新されます。これにより、文字起こしをすばやく確認することができ、必要に応じて後でインラインで更新を適用することもできます。

`TranscriptStatus` は、次のセクションの例にリストされている `TranscriptionStatusType` イベントのいずれかを配信します。

新しいバージョンの Amazon Chime SDK には、`TranscriptEvent` の一般的な処理に使用する追加のデータ型とヘルパー関数が含まれています。

## TranscriptEvent
<a name="transcript-event"></a>

この例は、典型的な文字起こしイベントを示しています。

```
type TranscriptEvent = Transcript | TranscriptionStatus;

export class TranscriptEventConverter {
  static from(dataMessage: DataMessage): TranscriptEvent[] {
    // convert DataMessage to TranscriptEvents
    return ...
  }
}

export default class TranscriptionStatus {
    type: TranscriptionStatusType;
    eventTimeMs:                   number;
    transcriptionRegion:           string;
    transcriptionConfiguration:    string;
    message?:                      string;
}

enum TranscriptionStatusType {
    STARTED        =    'started',
    INTERRUPTED    =    'interrupted',
    RESUMED        =    'resumed',
    STOPPED        =    'stopped',
    FAILED         =    'failed',
}

export default class Transcript {
    results: TranscriptResult[];    // at least one
}

export class TranscriptResult {
    resultId:        string;
    isPartial:       boolean;
    startTimeMs:     number;
    endTimeMs:       number;
    alternatives:    TranscriptAlternative[];    // most confident first
    }

export default class TranscriptAlternative {
    items: TranscriptItem[];    // in start time order
    transcript: string; //concatenated transcript items
    entities?: TranscriptEntity[];
}

export default class TranscriptItem {
    type:                      TranscriptItemType;
    startTimeMs:               number;
    endTimeMs:                 number;
    attendee:                  Attendee;
    content:                   string;
    vocabularyFilterMatch?:    boolean;
    confidence?:               number;  
    stable?:                   boolean;
}

enum TranscriptItemType {
    PRONUNCIATION    =    'pronunciation',// content is a word
    PUNCTUATION      =    'punctuation',// content is punctuation
}

export default class TranscriptEntity {  
    category:       string;  
    confidence:     number;  
    content:        string;  
    endTimeMs:      number;  
    startTimeMs:    number;  
    type?:          string;
}

// This is an existing SDK model
export default class Attendee {
    attendeeId:        string;
    externalUserId:    string;
}
```

## データのガイドライン
<a name="data-guidelines"></a>

これらのガイドラインに留意しながら作業を進めてください。

1. `transcription.results` には複数の結果が含まれる場合があります。

1. `transcription.results[i].isPartial = true` の場合、結果全体が更新される可能性があります。更新される可能性は高いですが、確実に更新されるわけではありません。更新後も `transcript.result[i].resultId` は同じです。信頼度の低い文字起こしを回避したい場合は、部分的な結果を完全にスキップできます。低レイテンシーの結果が必要な場合は、いったん部分的な結果を表示してから、後で更新が到着したときに完全に上書きすることができます。

1. `transcription.results[i].alternatives` には、常に少なくとも 1 つのエントリが含まれます。複数のエントリが含まれる場合は、最も信頼度の高いエントリがリストの先頭に表示されます。ほとんどの場合、`transcription.results[i].alternatives` の最初のエントリを採用し、その他のエントリは無視できます。

1. `transcription.results[i].alternatives[j].items` には、各単語または句読点のエントリが含まれます。

1. `transcription.results[i].alternatives[j].items[k].` content には、発言内容が含まれます。

1. `transcription.results[i].alternatives[j].items[k].attendee` は、コンテンツのユーザー属性 (誰) です。

1. `transcription.results[i].alternatives[j].items[k].startTimeMs` は、コンテンツの「いつ」です。これにより、異なるユーザーによる発言が、その発言順序に従ってユーザー属性付きで文字起こしされて、単語ごとにレンダリングできるようになります。

1. `transcription.results[i].alternatives[j].items[k].endTimeMs` フィールドは通常は無視して構いませんが、誰がいつ何を言ったかを完全に把握できるように提供されています。

1. `transcription.results[i].alternatives[j].items[k].vocabularyFilterMatch` は、コンテンツがフィルター内の単語と一致した場合は true、それ以外の場合は false です。

1. `transcription.results[i].alternatives[j].items[k].confidence` は、0～1 の値です。これは、項目のコンテンツが発言と正しく一致しているというエンジンの信頼度を示します。0 が最も低い信頼度、1 が最も高い信頼度を示します。

1. `transcription.results[i].alternatives[j].items[k].stable` は、現在の単語が部分的な結果の更新によって将来的に変更されるかどうかを示します。この値が true になるのは、リクエストで `EnablePartialResultsStabilization` を `true` に設定して部分的な結果の安定化機能を有効にした場合だけです。

1. `transcription.results[i].alternatives[j].entities` には、コンテンツ識別またはリダクション機能によって検出された各エンティティのエントリが含まれます。このリストには、コンテンツ識別またはリダクションを有効にした場合にのみ値が入ります。エンティティは、個人情報や個人の健康情報などのデータである可能性があります。エンティティを使用して、文字起こし中に関心のある単語に対して、強調表示したり、アクションを実行したりすることができます。

1. `transcription.results[i].alternatives[j].entities[k].category` はエンティティのカテゴリです。これは、リクエストで提供されたコンテンツ識別またはリダクションのタイプ (「PII」や「PHI」などの) と同じです。

1. `transcription.results[i].alternatives[j].entities[k].confidence` は、特定のコンテンツが本当にエンティティであることに対するエンジンの信頼度を示します。これは、単語そのものの正確さに対するエンジンの信頼度を示す項目レベルの信頼度とは異なることに注意してください。

1. `transcription.results[i].alternatives[j].entities[k].content` は、エンティティを構成する実際のテキストです。これは、複数の項目 (住所など) である場合もあります。

1. `transcription.results[i].alternatives[j].entities[k].startTimeMs` は、当該エンティティの発言が開始された時刻をキャプチャします。

1. `transcription.results[i].alternatives[j].entities[k].endTimeMs` は、当該エンティティの発言が終了した時刻をキャプチャします。

1. `transcription.results[i].alternatives[j].entities[k].type` は、文字起こしエンジンでのみサポートされ、エンティティのサブタイプを提供します。これらは、`ADDRESS`、`CREDIT\$1DEBIT\$1NUMBER` などの値です。

## TranscriptEvents のイベントハンドラーの登録
<a name="register-handler"></a>

以下の例では、JavaScript 用の Amazon Chime SDK クライアントライブラリを使用しています。ただし、パターンはすべての Amazon Chime SDK で一貫しています。

`RealtimeController` および `RealtimeControllerFacade` の `TranscriptionController` には、`TranscriptionEvents` を処理するハンドラーを追加するための特定の関数が含まれています。

```
/** 
 * Returns the [[TranscriptionController]] for this real-time controller. 
 */
readonly transcriptionController?: TranscriptionController;
```

`TranscriptionController` には、`TranscriptionEvent` コールバックのサブスクライブとサブスクライブ解除を管理する 2 つの関数があります。

```
import TranscriptEvent from './TranscriptEvent';

export default interface TranscriptionController {
  /**
   * Subscribe a callback to handle received transcript event
   */
  subscribeToTranscriptEvent(callback: (transcriptEvent: TranscriptEvent) => void): void;

  /** 
   * Unsubscribe a callback from receiving transcript event 
   */
  unsubscribeFromTranscriptEvent(callback: (transcriptEvent: TranscriptEvent) => void): void;
}
```

**オプションの `TranscriptionController` を使用する**  
`TranscriptionController` インターフェイスのデフォルト実装 (`DefaultTranscriptionController` という名前) が用意されています。`DefaultRealtimeController` および `DefaultAudioVideoFacade` のデフォルト実装では、`DefaultTranscriptionController` オブジェクトが返されます。

```
/** 
get transcriptionController(): TranscriptionController {
   return this.realtimeController.transcriptionController;
}
```

`DefaultRealtimeController` では、そのコンストラクターにオプションの `TranscriptionController` オブジェクトを指定することもできます。これにより、`DefaultTranscriptionController` の動作をオーバーライドできます。デベロッパーアプリケーションは、`AudioVideoFacade` オブジェクトの `TranscriptionController` オブジェクトを通じて、1 つ以上のコールバックをサブスクライブまたはサブスクライブ解除します。

```
// Subscribe
this.audioVideo.transcriptionController?.subscribeToTranscriptEvent(this.transcriptEventHandler);

// Unsubscribe
this.audioVideo.transcriptionController?.unsubscribeFromTranscriptEvent(this.transcriptEventHandler););
```

# 受信した Amazon Chime SDK ライブ文字起こしイベントの処理
<a name="delivery-examples"></a>

以下の例は、受け取った `TranscriptEvent` を処理する方法を示しています。

**注記**  
正確な出力は、各個人の話す速度や休止のタイミングなど、いくつかの要因によって異なります。

## 例 1: StartMeetingTranscription
<a name="example-1"></a>

この例は、典型的な `StartMeetingTranscription` オペレーションを示しています。

```
meeting.StartMeetingTranscription(
    { EngineTranscribeSettings: { Languagecode: ‘en-US’ } } );
```

このオペレーションでは `TranscriptEvent` が生成されます。

```
{   
    status: {        
        type: 'started',        
        eventTimeMs: 1620118800000,        
        transcriptionConfig: {                    
            LanguageCode: 'en-US'        
        }    
    }
}
```

## 例 2: 部分的な文字起こしの結果
<a name="example-2"></a>

この例では、参加者は「The quick brown fox jumps over the lazy dog」と発言します。この例では、`isPartial` の値は `true` です。メッセージを詳しく調べると、システムが「fox」という単語を「facts」として処理していることがわかります。システムは同じ `resultId` を使用して文字起こしを更新します。

```
{
    transcript: {
        results: [{
            resultId:"1",                               isPartial: true,
            startTimeMs: 1620118800000,                 endTimeMs: 1620118801000,
            alternatives: [{
                items:[{
                    type:        'pronunciation',
                    startTimeMs: 1620118800000,         endTimeMs: 1620118800200,
                    attendee: { attendeeId: "1",        externalUserId: "A"},
                    content: "the",                     vocabularyFilterMatch: false
                },
                {
                    type:        'pronunciation',
                    startTimeMs: 1620118800200,          endTimeMs: 1620118800400,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"quick",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800400,          endTimeMs: 1620118800750,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"brown",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800750,          endTimeMs: 1620118801000,
                    attendee:{ attendeeId: "1",          externalUserId: "A" },
                    content:"facts",                     vocabularyFilterMatch: false
                },
                {
                    type:'punctuation',
                    startTimeMs: 1620118801000,          endTimeMs: 1620118801500,
                    attendee:{ attendeeId: "1",          externalUserId: "A" },
                    content:    ",",                     vocabularyFilterMatch: false
                }]
            }]
        }]
    }
}
```

## 例 3: 最終的な文字起こしの結果
<a name="example-3"></a>

部分的な文字起こしが発生した場合、システムはフレーズを再度処理します。この例の値では、`isPartial` の値は `false` で、メッセージには「facts」の代わりに「fox」が含まれています。システムは同じ ID を使用してメッセージを再発行します。

```
{
    transcript: {
        results: [{
            resultId:"1",                                isPartial: false,
            startTimeMs: 1620118800000,                  endTimeMs: 1620118801000,
            alternatives: [{
                items:[{
                    type:        'pronunciation',
                    startTimeMs: 1620118800000,          endTimeMs: 1620118800200,
                    attendee: { attendeeId: "1",         externalUserId: "A"},
                    content: "the",                      vocabularyFilterMatch: false
                },
                {
                    type:        'pronunciation',
                    startTimeMs: 1620118800200,          endTimeMs: 1620118800400,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"quick",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800400,          endTimeMs: 1620118800750,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"brown",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800750,          endTimeMs: 1620118801000,
                    attendee: { attendeeId: "1",          externalUserId: "A" },
                    content:"fox",                       vocabularyFilterMatch: false
                },
                {
                    type:'punctuation',
                    startTimeMs: 1620118801000,          endTimeMs: 1620118801500,
                    attendee: { attendeeId: "1",          externalUserId: "A" },
                    content:    ",",                     vocabularyFilterMatch: false
                }]
            }]
        }]
    }
}
```

# Amazon Chime SDK トランスクリプトの解析
<a name="parse-transcripts"></a>

次のコマンドを使用して、文字起こしメッセージから文字起こしの内容を解析します。このコマンドでは transcript-message.txt ファイルから全文を解析します。

```
with open('transcript-message.txt') as f:
        for line in f:
            result_json = json.loads(line)["transcript"]["results"][0]
            if result_json['isPartial'] == False:
                print(result_json["alternatives"][0]["transcript"])
```

# Amazon Chime SDK ミーティングでのメディアレプリケーションの使用
<a name="media-replication"></a>

メディアレプリケーションを使用すると、プライマリ WebRTC セッションを複数のレプリカセッションにリンクして、より多くの視聴者に届けることができます。各 WebRTC メディアセッションがサポートする接続数は 250 で、プライマリセッションを複数のレプリカセッションにレプリケートできます。レプリカセッションに接続している参加者は、プライマリセッションに接続しているプレゼンターの音声と動画のみを受信します。レプリケートされたセッションに接続している参加者に関する情報は取得されないため、メディアレプリケーションはウェビナーやプライバシーが求められるその他のユースケースに最適です。

次の図は、プレゼンターが音声と動画を共有するプライマリセッションと、参加者がメディアを利用するレプリカセッションの間のメディアレプリケーションを示しています。

![\[プライマリセッションで共有しているプレゼンター。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/replication-1.png)


**注記**  
サービスクォータの「Chime SDK 会議 - プライマリ会議あたりのレプリカ会議」のデフォルト値は 4 で、リクエストに応じてこの制限を増やすことができます。クォータの詳細については、「AWS 全般リファレンス」の「[AWS サービスクォータ](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)」を参照してください。

**Topics**
+ [インタラクティブな参加者](#interactive-participants)
+ [グローバル参加者](#global-participants)
+ [セッションライフサイクル](#session-lifecycle)

## インタラクティブな参加者
<a name="interactive-participants"></a>

レプリカセッションに接続している参加者に、プライマリセッションに参加するためのアクセス権を付与することができます。全員が WebRTC 接続を使用しているため、プレゼンターと参加者はトランスコーディングの遅延を経験しません。参加者がプライマリセッションとレプリケートされたセッションを切り替える際には WebRTC 接続が再利用されるため、切り替えは非常に高速です。これにより、参加者はコンテンツを見逃すことなくライブ会話に参加できます。

次の図は、レプリカセッションの参加者が WebRTC 接続を使用してプライマリセッションに切り替えている様子を示しています。

![\[レプリカ会議からプライマリ会議に切り替えた 2 人の参加者を示す図。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/replication-2.png)


## グローバル参加者
<a name="global-participants"></a>

WebRTC メディアセッションごとに AWS リージョンを選択できます。これにより、プライマリセッションのリージョンよりも参加者に近いリージョンにレプリカセッションを作成できます。これを行うと、メディアは AWS ネットワーク経由でプライマリセッションからレプリカセッションに送られた後、インターネット経由でレプリカセッションから参加者に送られます。世界中の視聴者にプレゼンテーションを行う場合、参加者の近くにレプリカセッションを用意することで、メディアがインターネットではなく AWS ネットワーク上で世界中を移動できるようになり、会議体験が向上します。

次の図は、プライマリセッションと、別のリージョンにレプリケートされたセッションを示しています。

![\[プレゼンテーションを見ている 3 つのリージョンの参加者を示す図。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/replication-3.png)


## セッションライフサイクル
<a name="session-lifecycle"></a>

セッションの作成  
[https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeeting.html) API または [https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html) API を使用して WebRTC メディアセッションを作成します。レプリカセッションを明示的に作成しない限り、これらの API はデフォルトでプライマリセッションを作成します。  
レプリカセッションを作成するには、`CreateMeeting` または `CreateMeetingWithAttendees` API コールで `PrimaryMeetingId` としてプライマリセッションの `MeetingId` を指定します。  
`PrimaryMeetingId` としてレプリカセッションの `MeetingId` を指定すると、API コールは失敗します。

参加者の作成  
 WebRTC メディアセッションに参加するために必要な参加者の認証情報を作成するには、[https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html) API、[https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html) API、または [https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateAttendee.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_CreateAttendee.html) API を使用できます。  
多数の参加者を対象としたセッションを作成する場合は、`CreateMeetingWithAttendees` または `BatchCreateAttendee` を使用して、必要な API コールの回数を最小限に抑えます。

参加者の削除  
WebRTC メディアセッション用の参加者の認証情報を取り消すには、[https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteAttendee.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteAttendee.html) API を使用します。参加者がセッションに接続している場合、接続は切断され、再び参加することはできません。  
[https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteMeeting.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteMeeting.html) API を使用して WebRTC メディアセッションを削除する場合は、この API によってすべての参加者が自動的に削除されるため、ユーザーが `DeleteAttendee` を呼び出す必要はありません。

セッションの切り替え  
参加者がレプリカセッションからプライマリセッションに切り替えられるようにするには、プライマリ会議で、対象の参加者用の認証情報を作成する必要があります。このリストで前述している「*参加者の作成*」を参照してください。プライマリセッションに切り替えるには、Amazon Chime SDK クライアントライブラリの `promoteToPrimaryMeeting` メソッドでこれらの認証情報を使用します。  
参加者をレプリカセッションに戻すには、Amazon Chime SDK クライアントライブラリの `demoteFromPrimaryMeeting` メソッドを使用するか、[https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteAttendee.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteAttendee.html) API を使用して当該ユーザーのプライマリセッション用の認証情報を無効にします。  
プライマリセッションに直接接続するプレゼンターは、レプリカセッションに切り替えることはできません。
セッションの切り替えの詳細については、クライアントライブラリのドキュメントを参照してください。  
+ GitHub の [Android 用 Amazon Chime SDK](https://github.com/aws/amazon-chime-sdk-android)。
+ GitHub の [iOS 用 Amazon Chime SDK](https://github.com/aws/amazon-chime-sdk-ios)。
+ GitHub の [JavaScript 用 Amazon Chime SDK クライアントライブラリ](https://github.com/aws/amazon-chime-sdk-js)。

セッションの削除  
WebRTC メディアセッションを削除するには、[https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteMeeting.html](https://docs.aws.amazon.com/chime/latest/APIReference/API_meeting-chime_DeleteMeeting.html) API を使用します。  
プライマリセッションを削除すると、`DeleteMeeting` API によって、アタッチされているすべてのレプリカセッションが自動的に削除されます。そのため、すべてのセッションを削除するには、プライマリを削除するだけです。  
接続している参加者が 5 分間連続して存在しない場合、サービスによってプライマリセッションが自動的に削除されます。このサービスは、プライマリセッションを削除する場合にのみレプリカセッションを自動的に削除します。つまり、プライマリセッションの作成時にレプリカセッションを作成することができ、プライマリセッションの存続期間中はそのレプリカを使用できます。

# Amazon Chime SDK ミーティングのトラブルシューティングとデバッグ
<a name="troubleshoot-sdk-meetings"></a>

以下のトピックは、Amazon Chime SDK の使用時に発生する問題の診断やトラブルシューティングに役立ちます。

**Topics**
+ [Amazon Chime SDK ミーティングのシステム要件について](ts-supported-browsers.md)
+ [Amazon Chime SDK ミーティングのログ記録とモニタリングの設定](ts-log-monitor.md)
+ [Amazon Chime SDK ミーティングのトラブルシューティング](self-troubleshooting.md)
+ [Amazon Chime SDK ミーティングに関する一般的な問題について](common-issues.md)

# Amazon Chime SDK ミーティングのシステム要件について
<a name="ts-supported-browsers"></a>

トラブルシューティングの一環として、サポートされているブラウザ用にコーディングしていることを確認してください。サポートされているブラウザ、バージョン、オペレーティングシステムの最新リストについては、「[Amazon Chime SDK のシステム要件](meetings-sdk.md#mtg-browsers)」を参照してください。[Github の開発者ガイドと FAQ](https://github.com/aws/amazon-chime-sdk-js/issues/1059) では、ブラウザおよびその他の互換性の問題に関する情報が提供されています。また、GitHub の[ブラウザに関するの既知の問題](https://aws.github.io/amazon-chime-sdk-js/modules/faqs.html#known-browser-issues)と回避策についても十分に理解してください。

Amazon Chime SDK ミーティングを使用し始めたばかりのユーザー向けに、「[Amazon Chime SDK’s Builder Journey](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/20_Builders_Journey.md)」で、Amazon Chime SDK を使用して構築するためのステップバイステップガイドと、トラブルシューティングに必要なツールを提供しています。

# Amazon Chime SDK ミーティングのログ記録とモニタリングの設定
<a name="ts-log-monitor"></a>

ログ記録は、サーバー側の会議イベントやクライアント側のブラウザコンソールログなどの情報を収集するのに役立ちます。

Amazon Chime SDK は、Amazon EventBridge と Amazon CloudWatch Events のログに送信できるサーバー側の会議イベントを提供します。CloudWatch のメトリクスとインサイトを作成し、ダッシュボードでモニタリングに使用できます。「[Server-side Logging and Monitoring of Amazon Chime SDK events](https://aws.amazon.com/blogs/business-productivity/server-side-logging-and-monitoring-of-amazon-chime-sdk-events/)」のブログ投稿では、CloudWatch のメトリクス、インサイト、ダッシュボードを有効にする方法について説明しています。

Amazon Chime SDK は、音声と動画の品質、ネットワーク帯域幅、接続の問題に関するクライアント側イベントを提供します。「[Monitoring and troubleshooting with Amazon Chime SDK Meeting events](https://aws.amazon.com/blogs/business-productivity/monitoring-and-troubleshooting-with-amazon-chime-sdk-meeting-events/)」のブログ投稿では、参加エラー、音声品質の問題、マイクとカメラの設定エラーに対して、CloudWatch メトリクス、インサイト、ダッシュボードを有効にする方法について説明しています。会議イベントの詳細については、Github の「[Meeting Events](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/06_Meeting_Events.md)」を参照してください。



## トラブルシューティングメトリクスのオプション
<a name="ts-cloudwatch-options"></a>

トラブルシューティングイベントの収集では、以下のオプションがあります。
+ イベントごとにメトリクスを送信する 
+ N 秒ごとにイベントをバッチ処理する 
+ 会議の終了時にメトリクスを送信する 
+ ブラウザコンソールログのログ記録レベル

## 推奨メトリクス
<a name="ts-cloudwatch-metrics"></a>

少なくとも、以下のメトリクス収集してログ記録する必要があります。
+ SDK プラットフォームとバージョン
+ ブラウザとバージョン
+ オペレーティングシステム
+ 論理コア
+ 開始された会議
+ 終了した会議
+ 参加した参加者
+ 退出した参加者
+ 切断された参加者

さらに、直面している問題に応じて、以下のメトリクスから接続、帯域幅、品質の問題に関する情報が得ることができます。これらのメトリックが発生するたびに記録することも、カウントだけすることもできます。カウントすることで、根本的な問題の概要を把握できます。
+ connectionDidSuggestStopVideo
+ connectionDidBecomeGood
+ connectionDidBecomePoor
+ 参加者の参加時間 > t 秒
+ MeetingStartFailed
+ MeetingFailed

## クライアント側のログ記録を有効にする
<a name="client-side-logging"></a>

`LogLevel.INFO` を `ConsoleLogger` オブジェクトに渡すことで、`INFO` レベルのブラウザログを有効にできます。

```
const logger = new ConsoleLogger('MyLogger', LogLevel.INFO);const meetingSession = new DefaultMeetingSession(configuration,logger,deviceController); 
```

JavaScript 用 Amazon Chime SDK の `POSTLogger` コンポーネントを使用して、Amazon CloudWatch Logs などのバックエンドでブラウザログをキャプチャすることもできます。`POSTLogger` は、[POSTLogger コンストラクター](https://aws.github.io/amazon-chime-sdk-js/classes/postlogger.html)で指定された URL にブラウザログをアップロードするために、`HTTP POST` リクエストを行います。例えば、[GitHub の Amazon Chime SDK サーバーレスデモ](https://github.com/aws/amazon-chime-sdk-js/blob/main/demos/browser/app/meetingV2/meetingV2.ts#L1773)では、`POSTLogger` を使用してブラウザログを今後の調査に使用できるように Amazon CloudWatch Logs に送信します。

## サーバー側のログ記録を有効にする
<a name="server-side-logging"></a>

JavaScript 用 Amazon Chime SDK では、`MeetingStartFailed` や `MeetingFailed` などの主要な会議イベントで `eventDidReceive` オブザーバーメソッドも呼び出されます。多くの場合、会議イベントには失敗の具体的な理由が含まれます。例えば、多数のお客様で障害が発生したとします。ウェブアプリケーションはこれらの会議イベントを収集し、根本原因をトラブルシューティングするためにその情報を共有できます。会議イベントの詳細については、[GitHub の会議イベントガイド](https://aws.github.io/amazon-chime-sdk-js/modules/meetingevents.html)と、「[Monitoring and troubleshooting with Amazon Chime SDK meeting events](https://aws.amazon.com/blogs/business-productivity/monitoring-and-troubleshooting-with-amazon-chime-sdk-meeting-events/)」のブログ投稿を参照してください。

# Amazon Chime SDK ミーティングのトラブルシューティング
<a name="self-troubleshooting"></a>

このトピックのセクションでは、Amazon Chime SDK ミーティングをセルフトラブルシューティングするいくつかの方法について説明します。

**Topics**
+ [FAQ と既知の問題を確認する](#check-faqs)
+ [ネットワークアクセスを検証する](#net-acess)

## FAQ と既知の問題を確認する
<a name="check-faqs"></a>

トラブルシューティングとデバッグに関するアドバイスについては、これらの FAQ と既知の問題のリストを GitHub で確認してください。
+ [Amazon Chime SDK – JavaScript - 会議](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#meetings)
+ [Amazon Chime SDK – JavaScript - メディア](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#media)
+ [Amazon Chime SDK – JavaScript - ネットワーク](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#networking)
+ [Amazon Chime SDK – - 音声と動画](https://github.com/aws/amazon-chime-sdk-js/blob/main/guides/07_FAQs.md#audio-and-video)

## ネットワークアクセスを検証する
<a name="net-acess"></a>

多くの場合、企業には、特定のポートへのアクセスや企業ネットワーク外の IP アドレス範囲への接続を制限するネットワークファイアウォールがあります。以下のセクションでは、ネットワークアクセスを検証できるいくつかの方法について説明します。

**Topics**
+ [AWS SDK および Amazon Chime SDK サブネットとポートの検証](#subnets-ports)
+ [デモアプリを使用して問題を再現する](#repro-on-demo-apps)
+ [会議準備状況チェッカーを使用する](#ready-checker)

### AWS SDK および Amazon Chime SDK サブネットとポートの検証
<a name="subnets-ports"></a>

Amazon Chime SDK を使用するアプリケーションは、2 つの階層 (サーバーとクライアント) を使用します。サーバー階層は AWS SDK を使用し、サーバー側の会議ハンドラーがあります。クライアント層はクライアント SDK を使用します。

 AWS SDK は、 などのサーバー APIs呼び出すために使用されます[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html)。このような APIs、、`us-east-1`、、`us-west-2`、`ap-southeast-1`、`eu-central-1``us-gov-east-1`および `us-gov-west-1`リージョン AWS のグローバルサービスエンドポイントに接続します。「AWS 全般リファレンス」の「[AWS IP アドレスの範囲](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)」ページに、各リージョンの IP アドレス範囲がリストされています。サービスエンドポイントとクォータについては、「[Amazon Chime SDK エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html)」を参照してください。

JavaScript 用 Amazon Chime SDK などのクライアント SDK は、`*.chime.aws` ドメイン内のサービスエンドポイントに接続します。

以下の検証を使用して、ネットワークアクセス許可があることを確認します。
+ GitHub の [Amazon Chime SDK ミーティング準備状況チェッカー](https://github.com/aws/amazon-chime-sdk-js#meeting-readiness-checker)を実行して、ネットワークとポートにアクセスできることを確認します。
+ 自分のネットワークまたはエンドユーザーのネットワークから \$1.chime.aws ドメインを解決できることを確認します。
+ ファイアウォールで、コントロールコマンドの場合は TCP ポート 443 経由で、メディアの場合は UDP ポート 3478 経由で AWS IP 範囲への接続が許可されていることを確認します。

### デモアプリを使用して問題を再現する
<a name="repro-on-demo-apps"></a>

ベストプラクティスとして、いずれかのデモアプリで問題を再現してみることからデバッグプロセスを開始してください。これにより、サービスチームが問題の所在を見つけることができます。デモアプリで問題を再現できない場合は、アプリのコードを確認して、関連するユースケースがどのように実装されているかを確認できます。




| Amazon Chime SDK | 機能 | デモアプリのリソース | 
| --- | --- | --- | 
| JavaScript SDK | 会議 | [デモ手順](https://github.com/aws/amazon-chime-sdk-js/tree/main/demos/serverless)、[ソースコード](https://github.com/aws/amazon-chime-sdk-js/tree/main/demos/browser) | 
| React コンポーネント | 会議 |   [デモ手順](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/meeting)、[ソースコード](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/meeting/src)   | 
| 会議チャット | メッセージング |   [ブログ投稿](https://aws.amazon.com/blogs/business-productivity/build-meeting-features-into-your-amazon-chime-sdk-messaging-application/)、[デモ手順](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat)、[ソースコード](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat/src)   | 
| iOS/Android | 会議 |  (ブログ投稿) [Building a Meeting Application on Android using the Amazon Chime SDK](https://aws.amazon.com/blogs/business-productivity//building-a-meeting-application-on-android-using-the-amazon-chime-sdk/) (ブログ投稿) [Building a Meeting Application on iOS using the Amazon Chime SDK](https://aws.amazon.com/blogs/business-productivity/building-a-meeting-application-on-ios-using-the-amazon-chime-sdk/)   | 
| PSTN 音声 | 受信通話 |   [ブログ投稿](https://github.com/aws-samples/amazon-chime-sma-update-call)、[ソースコード](https://github.com/aws-samples/amazon-chime-sma-update-call)   | 

### 会議準備状況チェッカーを使用する
<a name="ready-checker"></a>

GitHub の [Amazon Chime SDK ミーティング準備状況チェッカー](https://github.com/aws/amazon-chime-sdk-js#meeting-readiness-checker)を使用します。このチェッカーは、音声デバイス、動画デバイス、ユーザー接続の検証に役立ちます。問題の根本原因を明らかにする合格/不合格のステータスを使用して、結果をエンドユーザーに提示できます。

# Amazon Chime SDK ミーティングに関する一般的な問題について
<a name="common-issues"></a>

以下のセクションでは、会議の一般的な問題のトラブルシューティング方法について説明します。

**Topics**
+ [接続の問題](#connectivity-issues)
+ [音声と動画の品質に関する問題](#a-v-quality)
+ [Amazon Chime SDK ミーティングの SDK クォータと API スロットリングの検証](quotas-throttling.md)
+ [Amazon Chime SDK ミーティングのサポートケースを開く](open-support-cases.md)

## 接続の問題
<a name="connectivity-issues"></a>

接続の問題については、「[ネットワークアクセスを検証する](self-troubleshooting.md#net-acess)」を参照してください。

## 音声と動画の品質に関する問題
<a name="a-v-quality"></a>

音声と動画の品質に関する問題には、いくつかの原因が考えられます。音声/動画の品質が最適ではない主な理由は、ネットワーク帯域幅とデバイスのパフォーマンスの 2 つです。さまざまな課題と、それらが音声/動画の品質にどのように影響するかの詳細については、*GitHub* の「[Quality, Bandwidth, and Connectivity](https://aws.github.io/amazon-chime-sdk-js/modules/qualitybandwidth_connectivity.html)」を参照してください。この記事では、帯域幅の問題を検出するためにモニタリングできるさまざまなイベントやメトリクスと、実施可能な緩和策について説明しています。

対象の会議セッションの視聴者により近いメディアリージョンを選択できます。最適なメディアリージョンの選択方法については、「会議リージョンの使用」(https://docs.aws.amazon.com/chime-sdk/latest/dg/chime-sdk-meetings-regions.html) を参照してください。

Amazon Chime SDK は、会議の参加者が利用できる帯域幅に応じて、受信/アップロードされる動画の品質を調整します。さまざまな動画レイアウトの動画品質を制御する方法については、「Managing Video Quality for different Video Layouts」(https://aws.github.io/amazon-chime-sdk-js/modules/videolayout.html) を参照してください。この記事では、動画のライフサイクル管理とアップリンク/ダウンリンクのポリシーについて説明しています。

**動画の解像度に関する考慮事項**
+ 動画をアップロードする場合のデフォルトの解像度は 540p、フレームレートは 15fps、ビットレートは 1400 kbps です。帯域幅に応じて、解像度とフレームレートを下げることができます。
+ 受信側の利用可能な帯域幅に基づいて、表示する動画タイルの数を決定します。すべての動画タイルとコンテンツ共有で 6 Mbps を超えないようにしてください。エンドユーザーに十分な帯域幅がない場合、そのユーザーには黒い動画タイルが表示されます。

**動画のアップリンクとダウンリンクの帯域幅ポリシーを使用する**  
Amazon Chime SDK には、以下の帯域幅ポリシーが用意されています。
+ NScaleVideoUplinkBandwidthPolicy – デスクトップ、ウェブ、モバイルのクライアントで使用されるものとほぼ同等のキャプチャおよびエンコーディングのパラメータを実装します。
+ AllHighestVideoBandwidthPolicy – 常に最高品質のビデオストリームを利用します。
+ NoVideoDownlinkBandwidthPolicy – 帯域幅が特定のしきい値を下回ると動画を無効にします。
+ VideoPriorityBasedPolicy – 帯域幅が低い場合、動画より音声を優先します。
+ VideoAdaptiveProbePolicy

# Amazon Chime SDK ミーティングの SDK クォータと API スロットリングの検証
<a name="quotas-throttling"></a>

「[Amazon Chime SDK エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html)」ページには、サービスクォータ、API レート、およびそれらを調整できるかどうかがリストされています。[AWS コンソールのサービスクォータ](https://console.aws.amazon.com/servicequotas/home/services/chime/quotas)ページを使用して、クォータの調整をリクエストします。

**API レートの微調整**  
API レートを超えたアプリケーションは、HTTP ステータスコード 429 と `ThrottledClientException` メッセージを受け取ります。API レートは調整できますが、それを行う前に、そのレートを使い果たす可能性のあるバグがアプリケーションにないかを確認してください。例えば、ループ内で会議を作成していたり、会議を作成してクリーンアップを行わなかったりしている場合があります。

会議の作成方法によっては、コードを変更する必要がある場合があります。例えば、`CreateMeeting` と `CreateAttendee` を以下に置き換えることができます。
+ [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html) – 会議ごとに最大 10 人の参加者を作成します。
+ [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_BatchCreateAttendee.html) – 会議ごとに最大 100 人の参加者を作成します。

作成した参加者をデータベースに保存し、招待者が会議に参加したときに参加者情報をプルして、事前に作成した参加者と関連付けることができます。

# Amazon Chime SDK ミーティングのサポートケースを開く
<a name="open-support-cases"></a>

さらに質問がある場合、またはビジネスに関するサポートが必要な場合は、[AWS カスタマーサポート](https://pages.awscloud.com/GLOBAL-aware-GC-Amazon-Chime-SDK-2020-reg.html)にお問い合わせください。サポートプランの詳細については、「[Compare support plans](https://aws.amazon.com/premiumsupport/plans/?nc=sn)」を参照してください。サポートケースを作成する場合は、必ず問題のあるアカウントで開いてください。コンソールのブラウザログ、会議と参加者の ID、関連するサポートケースや GitHub の問題を含めてください。