

Aviso de fim do suporte: em 15 de setembro de 2025, o suporte para o Amazon Lex V1 AWS será interrompido. Após 15 de setembro de 2025, você não poderá mais acessar o console do Amazon Lex V1 nem os respectivos recursos. Se você estiver usando o Amazon Lex V2, consulte o [guia do Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html) em vez disso. 

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Definição dos atributos da sessão
<a name="context-mgmt-session-attribs"></a>

*Atributos da sessão* contêm informações específicas do aplicativo que são passadas entre o bot e o aplicativo cliente durante uma sessão. O Amazon Lex passa atributos da sessão para todas as funções função do Lambda configuradas para um bot. Se uma função do Lambda adicionar ou atualizar atributos da sessão, o Amazon Lex passará as novas informações de volta para o aplicativo cliente. Por exemplo:
+ No exemplo [Exercício 1: Criar um bot do Amazon Lex usando um esquema (Console).](gs-bp.md), o bot usa o atributo de sessão `price` para manter o preço das flores. A função do Lambda define esse atributo com base nos tipos de flores encomendados. Para obter mais informações, consulte [Etapa 5 (opcional): Revise os detalhes do fluxo de informações (console)](gs-bp-details-after-lambda.md). 
+ No exemplo [Reservar uma viagem](ex-book-trip.md), o bot usa o atributo de sessão `currentReservation` para manter uma cópia dos dados do tipo de slot durante a conversa para fazer uma reserva em hotel ou alugar um carro. Para obter mais informações, consulte [Detalhes do fluxo de informações](book-trip-detail-flow.md).

Use atributos de sessão em suas funções do Lambda para inicializar um bot e personalizar prompts e cartões de resposta. Por exemplo:
+ Inicialização: em um bot de pedido de pizza, o aplicativo cliente passa o local do usuário como um atributo de sessão na primeira chamada à operação [PostContent](API_runtime_PostContent.md) ou [PostText](API_runtime_PostText.md). Por exemplo, .`"Location": "111 Maple Street"` A função do Lambda usa essas informações para encontrar a pizzaria mais próxima para fazer o pedido.
+ Personalizar prompts: configure prompts e cartões de resposta para fazer referência a atributos de sessão. Por exemplo, “Ei [FirstName], quais coberturas você gostaria?” Se você passar o nome do usuário como um atributo de sessão (`{"FirstName": "Jo"}`), o Amazon Lex substituirá o nome pelo espaço reservado. Em seguida, ele envia um prompt personalizado para o usuário: "Oi, Jo, quais coberturas você quer?"

Os atributos da sessão permanecem durante a vigência da sessão. Eles são criptografados e armazenados pelo Amazon Lex até que o final da sessão. O cliente pode criar atributos de sessão em uma solicitação usando a operação [PostContent](API_runtime_PostContent.md) ou [PostText](API_runtime_PostText.md) com o campo `sessionAttributes` definido como um valor. Uma função do Lambda pode criar um atributo de sessão em uma resposta. Depois que o cliente ou uma função do Lambda cria um atributo de sessão, o valor do atributo armazenado é usado sempre que o aplicativo cliente não incluir o campo `sessionAttribute` em uma solicitação para o Amazon Lex.

Por exemplo, suponha que você tenha dois atributos de sessão `{"x": "1", "y": "2"}`. Se o cliente chamar a operação `PostContent` ou `PostText` sem especificar o campo `sessionAttributes`, o Amazon Lex chamará a função do Lambda com os atributos de sessão armazenados (`{"x": 1, "y": 2}`). Se a função do Lambda não retornar atributos de sessão, o Amazon Lex retornará os atributos de sessão armazenados ao aplicativo cliente.

Se o aplicativo cliente ou uma função do Lambda passar atributos de sessão, o Amazon Lex atualizará as informações dos atributos de sessão armazenados. Passar um valor existente, como ` {"x": 2}`, atualiza o valor armazenado. Se você inserir um novo conjunto de atributos de sessão, como `{"z": 3}`, os valores existentes serão removidos e apenas o novo valor será mantido. Quando um mapa vazio, `{}`, é passado, os valores armazenados são apagados.

Para enviar atributos de sessão para o Amazon Lex, você cria um string-to-string mapa dos atributos. As considerações a seguir mostram como mapear atributos de sessão: 

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

Para a operação `PostText`, insira o mapa no corpo da solicitação usando o campo `sessionAttributes`, como a seguir:

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

Para a operação `PostContent`, codifique o mapa em base64 e o envie como o cabeçalho `x-amz-lex-session-attributes`.

Se você estiver enviando dados binários ou estruturados em um atributo de sessão, deve primeiro transformar os dados em uma string simples. Para obter mais informações, consulte [Configuração de atributos complexos](context-mgmt-complex-attributes.md).