跨区域调用AWS lambda
本文介绍了跨区域调用AWS lambda的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有三个lambda函数:oss、worker1、worker2。在使用boto3.client.voke时,我可以从BOSS调用worker1。这两者位于同一地区。
Worker2位于单独的区域。尝试从BOSS调用worker2时,返回以下错误:
"调用调用操作时出现错误(ResourceNotFoundException):在此区域(‘us-West-2’)中无法访问来自‘us-East-1’的函数"。
BOSS具有执行角色,权限如下:
请帮助澄清如何传递权限才能起作用。 谢谢
编辑:
Master和Worker 1位于US-West-2,而Worker 1位于US-East-1。
下面是用于从master调用Worker的代码:
推荐答案
感谢大家的投入。@Michael-sqlbot关于AWS客户端库默认将请求发送到本地区域的评论帮助我找到了解决方案。对于Python,库就是boto3。阅读docs后,不清楚如何设置区域。正是这个blog post提供了(简单的)答案:
您是对的,Michael,区域之间从一个lambda到另一个lambda的用例是错综复杂的。我把这个答案留在这里,以防其他刚接触boto3的人在尝试让其他资源(lambda到EC2、lambda到S3等)跨区域工作时遇到相同的错误。谢谢
这篇关于跨区域调用AWS lambda的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!