Etapa 1: Criar uma função do Lambda - Amazon Lex V1

Se você estiver usando o Amazon Lex V2, consulte o Guia do Amazon Lex V2.

 

Se você estiver usando o Amazon Lex V1, recomendamos atualizar seus bots para o Amazon Lex V2. Não estamos mais adicionando novos atributos à V1 e recomendamos o uso da V2 para todos os novos bots.

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

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.

Como criar uma função do Lambda

  1. Faça login no AWS Management Console e abra o console AWS Lambda em https://console.aws.amazon.com/lambda/.

  2. Escolha Criar função.

  3. 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).

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

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

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

    5. Escolha Criar função.

  4. 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); } };
  5. Escolha Save (Salvar).

Testar a função do Lambda usando dados de eventos de exemplo

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 AWS Management Console e abra o console AWS Lambda em https://console.aws.amazon.com/lambda/.

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

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

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

    1. Selecione Create new test event (Criar evento de teste).

    2. No campo Event name, insira um nome para o evento (PizzaOrderProcessorTest).

    3. 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" } }
  5. Escolha Criar.

O AWS Lambda cria o teste, e você retorna à 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

Etapa 2: criar um bot