

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 de atributos de sessão para seu bot do Lex V2
<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 V2 transmite atributos de sessão para todas as funções do Lambda configuradas para um bot. Se uma função do Lambda adicionar ou atualizar atributos da sessão, o Amazon Lex V2 passará as novas informações de volta para a aplicação cliente. 

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 [RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html) ou [RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html). 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": "Vivian"}`), o Amazon Lex substituirá o nome pelo espaço reservado. Em seguida, ele envia uma solicitação personalizada para o usuário: "Oi, Viviane, quais coberturas você quer?"

Os atributos da sessão permanecem durante a vigência da sessão. O Amazon Lex V2 os armazena em um armazenamento de dados criptografado até o término da sessão. O cliente pode criar atributos de sessão em uma solicitação chamando a [RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html)operação [RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html)ou com o `sessionAttributes` campo 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 Lambda cria um atributo de sessão, o valor do atributo armazenado é usado sempre que o aplicativo cliente não inclui um `sessionAttribute` campo em uma solicitação para o Amazon Lex V2.

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

Se o aplicativo cliente ou uma função Lambda transmitir os atributos da sessão, o Amazon Lex V2 atualizará os atributos da 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 V2, 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 `RecognizeText`, insira o mapa no corpo da solicitação usando o campo `sessionAttributes` da estrutura `sessionState`, como a seguir.

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

Para a operação `RecognizeUtterance`, codifique o mapa em base64 e o envie como parte do cabeçalho `x-amz-lex-session-state`.

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 [Definição de atributos complexos no seu bot do Lex V2](context-mgmt-complex-attributes.md).