首页 文章

使用Lambda的Amazon API Gateway使用POST方法提供权限错误

提问于
浏览
0

我一直在使用Apex和函数部署和部署Lambda函数,我通过AWS API Gateway使用GET方法的工作正常 .

我现在需要创建一个API,使用POST调用Lambda函数并传入JSON对象 . 为了获得POST工作的基础知识,我创建了一个简单的Lambda函数,它只执行以下操作

console.log("!!!!!!! Received request");
callback(null, {data: "Success"});
return;

当我使用API网关中的GET方法调用此Lambda函数并测试API时,它工作正常 - API网关测试机制提供“成功”消息,而在CloudWatch中成功调用中记录“已接收请求” .

但是,当我使用POST请求从API网关调用相同的Lambda函数时,我得到以下内容

“message”:“内部服务器错误”

我还看到“由于配置错误导致执行失败:对Lambda函数的权限无效”

所以我想知道,当通过POST方法调用该函数时,调用Lambda函数的角色是否需要任何其他特权 . 如果是这样,我需要为正在使用的角色分配什么权限?

谢谢,桑杰 .

2 回答

  • 0

    如果要通过API网关级别调用POST方法,则必须部署该post方法 . 转到AWS API Gateway控制台 . 然后选择你的POST API名称,在网格(屏幕)的顶部你会找到一个名为Actions的下拉列表,其中有一个名为deploy的选项 . 您必须选择,然后只有您的POST API将起作用 .

  • 0

    API Gateway需要权限才能调用Lambda函数 . 如果您通过Web控制台配置API,它会提示您自动添加权限, and 未使用阶段变量指定Lambda函数 .

    因此,如果您需要手动发出 aws lambda add-permission 命令来设置权限 .

    有关详细信息,请参阅这些帖子

    Lambda function -> Api Gateway stage variable permission manually

    AWS API Gatewat with proxy Lambda: Invalid permissions on Lambda function

相关问题