我已经阅读了一些AWS Lambda文档,我看到我们可以将触发器(Alexa Skill Kit)附加到lambda函数,一旦调用该技能,lambda函数就会被触发。 (有人致电Alexa和Lambda被触发)
但是我想反之亦然,就像 我应该能够从AWS Lambda函数调用技能集,就像我编写AWS Lambda函数一样,并且应该能够调用以调用我已发布的Alexa技能。 (Lambda从我的应用程序中触发,并调用技能集。)
答案 0 :(得分:2)
从技术上讲,您无法从Alex设备上的任何地方调用“ Alexa技能”。即您无法使您的技能开始向客户发送语音提示。 Alexa流程总是相反:客户向Alexa提出问题,您的技能被调用,Alexa向客户提供语音响应。
您可以将Alexa通知发送给授权它的客户。例如,您的技能可以告知订单已准备就绪或已交付,而不会被客户问题触发。请参阅Alexa Proactive Events API文档以检查如何实施:https://developer.amazon.com/blogs/alexa/post/7822f3ee-1735-4eaa-9aa6-5b8e39953c07/proactiveeventsapi-launch-announcement
这就是说,由于您的Alexa技能是通过AWS Lambda函数实现的,因此您可以编写代码以在Alexa上下文之外调用该函数。这将允许另一个应用程序调用与您的Alexa技能相同的代码,但是您将无法通过此方法向您的客户发送语音消息,因为调用将不在任何Alexa会话中进行。
要触发Lambda函数,您有多个选项。您可以通过编程方式或通过Invoke使用AWS command line API。您还可以通过API Gateway(REST)或AppSync(GraphQL)
公开Lambda函数。