我在python lambda处理程序

时间:2017-10-15 04:00:30

标签: python node.js amazon-web-services aws-lambda

我正在为aws lambda-lex学习,我找到了带有node.js的咖啡机器人示例代码。

// --------------- Main handler -----------------------
// --------------- in node.js -----------------------

// Route the incoming request based on intent.
// The JSON body of the request is provided in the event slot.

exports.handler = (event, context, callback) => {
    try {
        dispatch(event, (response) => callback(null, response));
    } catch (err) {
        callback(err);
    }
};

我想使用回调参数,但我无法在python

中找到它
// --------------- Main handler -----------------------
// --------------- in python -----------------------

def lambda_handler(event, context):    
    dispatch(event)

# >>> this handler doesn't include callback <<<

如果需要,请比较

python docs vs node.js docs

其实我想获得这个功能(构建消息给lex)

callback(elicitSlot(outputSessionAttributes, intentRequest.currentIntent.name, slots, 'BeverageType', 
                buildMessage('Sorry, but we can only do a mocha or a chai. What kind of beverage would you like?'), 
                buildResponseCard("Menu", "Today's Menu", menuItem)));

这里有完整的示例代码(https://github.com/awslabs/amz-ai-building-better-bots/blob/master/src/index.js

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:5)

使用回调是NodeJS中常用于管理异步执行的模式。你不需要用Python(对于这个特定的用例)。

NodeJS中的这个片段......

callback(null, response)

相当于

return response
在Python中