創建一個 AWS Lambda 您的機器人的功能 - Amazon Lex

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

創建一個 AWS Lambda 您的機器人的功能

若要為您的 Amazon Lex V2 機器人建立 Lambda 函數,請存取 AWS Lambda 從您的 AWS Management Console 並創建一個新的功能。您可以參考 AWS Lambda 開發人員指南,了解更多詳情 AWS Lambda.

  1. 登入 AWS Management Console 並打開 AWS Lambda 控制台位於https://console.aws.amazon.com/lambda/

  2. 選擇左側邊欄中的「功能」。

  3. 選取 Create function (建立函式)。

  4. 您可以選取從頭開始撰寫最少程式碼、使用藍圖從清單中選取常見使用案例的範例程式碼,或選取容器映像來選取要為您的函數部署的容器映像。如果您從頭開始選取「作者」,請繼續執行下列步驟:

    1. 給你的函數一個有意義的函數名稱來描述它的作用。

    2. 從「執行階段」下的下拉式功能表中選擇一種語言,以將函數寫入。

    3. 為您的函數選取指令集架構

    4. 根據預設,Lambda 會建立具有基本權限的角色。若要使用現有角色或建立角色 AWS 原則範本,展開 [變更預設執行角色] 功能表,然後選取選項。

    5. 展開 [進階設定] 功能表以設定更多選項。

  5. 選取 Create function (建立函式)。

下圖顯示了從頭開始創建新函數時所看到的內容:

一個新的 Lambda 函數。

Lambda 處理常式函數會因您使用的語言而有所不同。它最低限度地將一個eventJSON對象作為參數。您可以看到在 Amazon Lex V2 提供的欄位AWS Lambda Lex V2 的輸入事件格式event修改處理常式函數,最終傳回符合中所述格式的responseJSON物件AWS Lambda Lex V2 的響應格式

  • 完成寫入函數後,請選取 [部署] 以允許使用函數。

請記住,您最多可以將每個機器人別名與一個 Lambda 函數建立關聯。不過,您可以在 Lambda 程式碼中為機器人定義所需的任意數量的函數,並在 Lambda 處理常式函數中呼叫這些函數。例如,雖然相同機器人別名中的所有意圖都必須呼叫相同的 Lambda 函數,但您可以建立路由器函數,為每個意圖啟動個別函數。以下是您可以在應用程式中使用或修改的範例路由器功能:

import os import json import boto3 # reuse client connection as global client = boto3.client('lambda') def router(event): intent_name = event['sessionState']['intent']['name'] fn_name = os.environ.get(intent_name) print(f"Intent: {intent_name} -> Lambda: {fn_name}") if (fn_name): # invoke lambda and return result invoke_response = client.invoke(FunctionName=fn_name, Payload = json.dumps(event)) print(invoke_response) payload = json.load(invoke_response['Payload']) return payload raise Exception('No environment variable for intent: ' + intent_name) def lambda_handler(event, context): print(event) response = router(event) return response

何時使用 AWS Lambda 機器人對話中的功能

您可以在與使用者交談的下列時間點使用 Lambda 函數:

  • 在意圖被識別後的初始響應。例如,在用戶說他們要訂購比薩餅之後。

  • 從用戶引出插槽值之後。例如,在用戶告訴機器人他們想要訂購的比薩餅大小之後。

  • 在每次重試之間引出一個插槽。例如,如果客戶不使用公認的比薩餅尺寸。

  • 確認意圖時。例如,在確認披薩訂單時。

  • 為了實現一個意圖。例如,要放置一個比薩餅的訂單。

  • 在實現意圖之後,並在您的機器人關閉對話之前。例如,切換到訂購飲料的意圖。