

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á.

# Etapa 1: Criar uma função do Lambda
<a name="gs2-prepare"></a>

Primeiro, crie uma função do Lambda que atenda a um pedido de pizza. Essa função é específica no bot do Amazon Lex, que será criado na próxima seção.

**Criar uma função do Lambda**



1. Faça login no Console de gerenciamento da AWS e abra o AWS Lambda console em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Escolha a opção **Criar função**.

1. Na página **Create function**, selecione **Author from scratch**. 

   Como você está usando um código personalizado fornecido neste exercício para criar uma função do Lambda, selecione essa opção.

   Faça o seguinte:

   1. Digite o nome: (`PizzaOrderProcessor`).

   1. Em **Runtime (Tempo de execução)**, selecione a versão mais recente do Node.js.

   1. Em **Role**, selecione **Create new role from template(s)**.

   1. Insira um novo nome de função (`PizzaOrderProcessorRole`).

   1. Escolha a opção **Criar função**.

1. Na página function, faça o seguinte: 

   Na seção **Function code**, selecione **Edit code inline** e, em seguida, copie o código da função Node.js a seguir e cole-o na janela. 

   ```
   'use strict';
        
   // Close dialog with the customer, reporting fulfillmentState of Failed or Fulfilled ("Thanks, your pizza will arrive in 20 minutes")
   function close(sessionAttributes, fulfillmentState, message) {
       return {
           sessionAttributes,
           dialogAction: {
               type: 'Close',
               fulfillmentState,
               message,
           },
       };
   }
    
   // --------------- Events -----------------------
    
   function dispatch(intentRequest, callback) {
       console.log(`request received for userId=${intentRequest.userId}, intentName=${intentRequest.currentIntent.name}`);
       const sessionAttributes = intentRequest.sessionAttributes;
       const slots = intentRequest.currentIntent.slots;
       const crust = slots.crust;
       const size = slots.size;
       const pizzaKind = slots.pizzaKind;
       
       callback(close(sessionAttributes, 'Fulfilled',
       {'contentType': 'PlainText', 'content': `Okay, I have ordered your ${size} ${pizzaKind} pizza on ${crust} crust`}));
       
   }
    
   // --------------- Main handler -----------------------
    
   // Route the incoming request based on intent.
   // The JSON body of the request is provided in the event slot.
   export const handler = (event, context, callback) => {
       try {
           dispatch(event,
               (response) => {
                   callback(null, response);
               });
       } catch (err) {
           callback(err);
       }
   };
   ```

1. Escolha **Salvar**.

## Testar a função do Lambda usando dados de eventos de exemplo
<a name="gs2-lambdafunction-test"></a>

No console, teste a função do Lambda usando dados de eventos de exemplo para invocá-la manualmente. 

**Para testar a função do Lambda:**

1. Faça login no Console de gerenciamento da AWS e abra o AWS Lambda console em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Na página da **função do Lambda, escolha a **função do Lambda (`PizzaOrderProcessor).`

1. Na página da função, na lista de eventos de teste, selecione **Configure test events**.

1. Na página **Configure test event**, faça o seguinte: 

   1. Selecione **Criar evento de teste**.

   1. No campo **Event name**, insira um nome para o evento (`PizzaOrderProcessorTest`).

   1. Copie o evento do Amazon Lex a seguir na janela. 

      ```
      {
        "messageVersion": "1.0",
        "invocationSource": "FulfillmentCodeHook",
        "userId": "user-1",
        "sessionAttributes": {},
        "bot": {
          "name": "PizzaOrderingApp",
          "alias": "$LATEST",
          "version": "$LATEST"
        },
        "outputDialogMode": "Text",
        "currentIntent": {
          "name": "OrderPizza",
          "slots": {
            "size": "large",
            "pizzaKind": "meat",
            "crust": "thin"
          },
          "confirmationStatus": "None"
        }
      }
      ```

1. Escolha **Criar**.

AWS Lambda cria o teste e você volta para a página da função. Escolha **Testar** para que o Lambda execute a função do Lambda.

Na caixa de resultados, selecione **Details**. O console exibe a saída a seguir no painel **Execution result**. 

```
{
  "sessionAttributes": {},
  "dialogAction": {
    "type": "Close",
    "fulfillmentState": "Fulfilled",
    "message": {
      "contentType": "PlainText",
      "content": "Okay, I have ordered your large meat pizza on thin crust."
    }
}
```

## Próxima etapa
<a name="gs2-next-step-create-bot"></a>

[Etapa 2: criar um bot](gs2-create-bot.md)