

支援終止通知：2025 年 9 月 15 日， AWS 將停止對 Amazon Lex 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。使用請求屬性來傳遞不需要在整個工作階段內保留的資訊。您可以建立自己的請求屬性，也可以使用預先定義的屬性。若要傳送請求屬性，請在 `x-amz-lex-request-attributes` 中使用 [PostContent](API_runtime_PostContent.md) 標頭，或在 `requestAttributes` 請求中使用 [PostText](API_runtime_PostText.md) 欄位。請求屬性並不像工作階段屬性會在請求之間保留，因此 `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>

如果您有兩個具有不同功能的用戶端應用程式，可能需要限制回應中的訊息格式。例如，您可能想要將傳送到 Web 用戶端的訊息限制為純文字，但是讓行動用戶端可以同時使用純文字和語音合成標記語言 (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` 欄位中傳回具有指定類型的訊息。您可以用逗號分隔各值來設定多個值。如果您使用訊息群組，那麼每個訊息群組都必須至少包含一個指定類型的訊息。否則，您會收到 `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\$1York  | 
| 美國西部 (奧勒岡) |  America/Los\$1Angeles  | 
| 亞太地區 (新加坡) |  Asia/Singapore  | 
| 亞太地區 (雪梨) |  Australia/Sydney  | 
| 亞太地區 (東京) |  Asia/Tokyo  | 
| 歐洲 (法蘭克福) |  Europe/Berlin  | 
| 歐洲 (愛爾蘭) |  Europe/Dublin  | 
| 歐洲 (倫敦) |  Europe/London  | 

例如，如果使用者回應「您希望包裹在哪一天遞送？」`tomorrow`的提示。套件的實際交付*日期*取決於使用者的時區。例如，紐約的 9 月 16 日 01:00 是洛杉磯 9 月 15 日的 22:00。如果您的服務在美國東部 （維吉尼亞北部） 區域執行，而洛杉磯的人使用預設時區訂購了「明天」要交付的套件，則該套件將於 17 號而非 16 號交付。不過，如果您將 `x-amz-lex:time-zone` 請求屬性設定為 `America/Los_Angeles`，則包裹會在 16 日送達。

您可以將屬性設定為任何網際網路號碼分配局 (IANA) 時區名稱。如需時區名稱的清單，請參閱 Wikipedia 上的 [tz 資料庫時區清單](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)。

## 設定使用者定義的請求屬性
<a name="context-mgmt-user"></a>

*使用者定義的請求屬性*是您在每個請求中傳送給機器人的資料。您在 `amz-lex-request-attributes` 請求中的 `PostContent` 標頭，或在 `requestAttributes` 請求中 `PostText` 欄位傳送資訊。

若要將請求屬性傳送至 Amazon Lex，您可以建立屬性的string-to-string映射。以下說明如何對應請求屬性：

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

對於 `PostText` 操作，您使用 `requestAttributes` 欄位將對應插入請求的本文，如下所示：

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

對於 `PostContent` 操作，您用 base64 來編碼對應，然後將其做為 `x-amz-lex-request-attributes` 標頭傳送。

如果您在請求屬性中傳送二進位或結構化資料，必須先將資料轉換為簡單的字串。如需詳細資訊，請參閱[設定複雜屬性](context-mgmt-complex-attributes.md)。