问题摘要/背景:
我有一个AWS Mobilehub项目,该项目在API Gateway中创建了多个指向Lambda函数的API。我正在努力实现别名和阶段的使用,以便可以使用Dev和Prod端点和版本。但是,当我尝试使用新的Prod阶段时,出现了错误消息(403代码和“客户端无权执行此操作。”的消息)。
详细信息:
我为Lambda函数之一创建了一个新别名PROD
。所有Lambda函数都有一个Development
别名,指向该函数的$LATEST
版本。
在API网关中,与Mobilehub创建的Lambda函数相对应的所有API都有两个阶段:Development
和MobileHub_Deployments
。我创建了一个名为PROD
的新阶段,该阶段已配置为指向Lambda函数的PROD别名。然后,我部署了API。
最后,我将aws-exports文件从https://some-id.execute-api.us-east-1.amazonaws.com/Develoment
更改为https://some-id.execute-api.us-east-1.amazonaws.com/PROD
,从而更新了移动应用程序以使用此新阶段。
在我使用Development
阶段时一切正常的地方,当我尝试调用PROD
阶段时现在得到了403。我已打开日志记录,CloudWatch日志显示为“该客户端无权执行此操作。”
FWIW,在两个不同版本的Lambda函数中,我具有完全相同的功能代码,以帮助隔离变量...
我需要进行哪些修改才能使移动应用程序可以访问此新阶段?是移动应用程序调用API还是API网关调用Lambda函数的特定别名的问题?