

サポート終了通知: 2025 年 9 月 15 日、 AWS は Amazon Lex V1 のサポートを終了します。 V1 2025 年 9 月 15 日を過ぎると、Amazon Lex V1 コンソールまたは Amazon Lex V1 リソースにはアクセスできなくなります。Amazon Lex V2 を使用している場合は、代わりに [Amazon Lex V2 ガイド](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html)を参照してください。

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

# リクエスト属性の設定
<a name="context-mgmt-request-attribs"></a>

*リクエスト属性*は、リクエスト固有の情報を示し、現在のリクエストにのみ適用されます。クライアントアプリケーションは、この情報を Amazon Lex に送信します。セッション全体を通しては保持する必要がない情報は、リクエスト属性を使用して渡します。リクエスト属性は、独自に作成することも、事前定義されたものを使用することもできます。リクエスト属性を送信するには、[PostContent](API_runtime_PostContent.md) の `x-amz-lex-request-attributes` ヘッダーを使用するか、[PostText](API_runtime_PostText.md) リクエストの `requestAttributes` フィールドを使用します。セッション属性とは異なり、リクエスト属性は複数のリクエストにわたって保持されないため、`PostContent` レスポンスや `PostText` レスポンスで返されることはありません。

**注記**  
複数のリクエストにわたって保持される情報を送信するには、セッション属性を使用します。

名前空間 `x-amz-lex:` は、事前定義されたリクエスト属性用に予約されています。リクエスト属性をプレフィックス `x-amz-lex:` で作成しないでください。

## 事前定義されたリクエスト属性の設定
<a name="context-mgmt-special"></a>

Amazon Lex には、ボットに送信される情報の処理方法を管理するための事前定義されたリクエスト属性があります。事前定義されたリクエスト属性は、セッション全体にわたって保持されないため、リクエストごとに属性を送信する必要があります。すべての事前定義された属性は `x-amz-lex:` 名前空間にあります。

Amazon Lex には、以下の定義済み属性に加えて、メッセージングプラットフォーム用の定義済み属性が用意されています。これらの属性のリストについては、「[メッセージングプラットフォームで Amazon Lex ボットをデプロイする](example1.md)」を参照してください。

### レスポンスタイプの設定
<a name="special-response"></a>

異なる機能を持つクライアントアプリケーションが 2 つある場合は、レスポンスのメッセージ形式の制限が必要な場合もあります。例えば、ウェブクライアントに送信するメッセージをプレーンテキストに制限し、モバイルクライアントではプレーンテキストと音声合成マークアップ言語 (SSML) の両方を使用できるようにしたいといった場合も考えられます。[PostContent](API_runtime_PostContent.md) と [PostText](API_runtime_PostText.md) オペレーションが返すメッセージの形式を設定するには、`x-amz-lex:accept-content-types"` リクエストの属性を使用します。

次のメッセージタイプを任意に組み合わせて属性を設定することができます。
+ `PlainText` - メッセージには UTF-8 形式テキストが含まれています。
+ `SSML` - メッセージには音声出力のテキスト形式が含まれています。
+ `CustomPayload` - メッセージにはクライアント向けに作成したカスタム形式が含まれています。アプリケーションのニーズを満たすようにペイロードを定義することができます。

Amazon Lex はレスポンスの [`Message`] フィールドで指定したタイプを使用するメッセージのみを返します。カンマで区切れば複数の値を設定できます。メッセージグループを使用している場合は、各メッセージグループで少なくとも 1 つ指定したタイプのメッセージが含まれている必要があります。それ以外の場合は、`NoUsableMessageException` エラーが発生します。詳細については、「[メッセージグループ](howitworks-manage-prompts.md#message-groups)」を参照してください。

**注記**  
`x-amz-lex:accept-content-types` リクエストの属性は、HTML 本文のコンテンツには影響しません。`PostText` オペレーションのレスポンスの内容は常に UTF-8 形式テキストです。`PostContent` オペレーションレスポンスの本文には、リクエストの `Accept` ヘッダーで設定した形式のデータが含まれています。

### 優先タイムゾーンの設定
<a name="special-time-zone"></a>

ユーザーのタイムゾーンを基準として日付を解決するようにタイムゾーンを設定するには、`x-amz-lex:time-zone` リクエスト属性を使用します。`x-amz-lex:time-zone` 属性にタイムゾーンを指定しないと、ボットで使用しているリージョンに応じたデフォルトのタイムゾーンが使用されます。


| リージョン | デフォルトのタイムゾーン | 
| --- | --- | 
| 米国東部 (バージニア北部) |  America/New\_York  | 
| 米国西部 (オレゴン) |  America/Los\_Angeles  | 
| アジアパシフィック (シンガポール) |  Asia/Singapore  | 
| アジアパシフィック (シドニー) |  Australia/Sydney  | 
| アジアパシフィック (東京) |  Asia/Tokyo  | 
| 欧州 (フランクフルト) |  Europe/Berlin  | 
| 欧州 (アイルランド) |  Europe/Dublin  | 
| 欧州 (ロンドン) |  Europe/London  | 

例えば、「何日にパッケージを配達しましょうか?」というプロンプトに対して、ユーザーがレスポンスで `tomorrow` と回答した場合、パッケージを配達する実際の*日付*は、ユーザーのタイムゾーンによって異なります。例えば、ニューヨークの 9 月 16 日 01:00 時は、ロサンゼルスの 9 月 15 日 22:00 時です。米国東部（バージニア北部 リージョンにいる人物が、デフォルトタイムゾーンを使用してパッケージの配達日を「明日」に指定した場合、パッケージは 16 日ではなく、17 日に配達されます。`x-amz-lex:time-zone` リクエスト属性を `America/Los_Angeles` に設定すると、パッケージは 16 日に配達されます。

属性は、IANA (Internet Assigned Number Authority) のタイムゾーン名のいずれかに設定できます。タイムゾーン名のリストについては Wikipedia の「[List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)」をご覧ください。

## ユーザー定義のリクエスト属性の設定
<a name="context-mgmt-user"></a>

*ユーザー定義のリクエスト属性*は各リクエストでボットに送信するデータです。この情報を送信するには、`PostContent` リクエストの `amz-lex-request-attributes` ヘッダーを使用するか、`PostText` リクエストの `requestAttributes` フィールドを使用します。

リクエスト属性を Amazon Lex に送信するには、属性の文字列間マップを作成します。リクエスト属性のマッピング方法を以下に示します。

```
{
   "attributeName": "attributeValue",
   "attributeName": "attributeValue"
}
```

`PostText` オペレーションの場合は、次に示すように、[`requestAttributes`] フィールドを使用してリクエストの本文にマップを挿入します。

```
"requestAttributes": {
   "attributeName": "attributeValue",
   "attributeName": "attributeValue"
}
```

`PostContent` オペレーションの場合は、マップを base64 エンコードし、それを `x-amz-lex-request-attributes` ヘッダーとして送信します。

バイナリまたは構造化されたデータをリクエスト属性で送信する場合は、最初にデータを単純な文字列に変換する必要があります。詳細については、「[複雑な属性の設定](context-mgmt-complex-attributes.md)」を参照してください。