我正在尝试编写一个新的echo(Alexa)技能,其中有一个AWS lamda调用来进行处理。但是我希望只有我的echo设备才能访问lamda。即使他们知道arn,其他设备也不应该能够访问lamda。
要实现此目的的参数是什么?
据我所知,当你禁用并重新启用你的技能时,你的deviceId
会改变。
每项技能都有一个独特的applicationId
,您将在技能的每个请求中收到。在继续进行任何处理之前,您可以在Lambda代码中验证此ID。
"application": {
"applicationId": "amzn1.ask.skill.xxxx-xxxx-xxxx-xxxx-xxxxxxxx"
},
您的Echo设备不会直接访问Lambda函数,而是您的技能会触发您的Lambda函数,并在其请求中包含deviceId
和applicationId
。
如果有人得到你的ARN,即使他们再做一个技能,他们也不会通过你的Lambda中的applicationId
检查。