Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aws lambda 您知道允许AWS API网关调用Lambda函数的语法吗?_Aws Lambda_Aws Api Gateway - Fatal编程技术网

Aws lambda 您知道允许AWS API网关调用Lambda函数的语法吗?

Aws lambda 您知道允许AWS API网关调用Lambda函数的语法吗?,aws-lambda,aws-api-gateway,Aws Lambda,Aws Api Gateway,我有一个AWS Lambda函数juno feedback,如果我在AWS Lambda控制台中测试它,它将成功运行 但是,当我尝试从API网关调用它时,得到的结果是:{“message”:“缺少身份验证令牌”} @KMo对我最初的问题很有帮助,但现在我已经超越了这一点,最初的评论与这个问题不再相关 我已按照控制台显示的说明从aws cmdline工具成功地进行了添加权限调用: 您将Lambda函数定义为阶段变量。请确保您将使用的所有功能都具有适当的功能策略。可以通过为每个函数运行下面的AWS

我有一个AWS Lambda函数
juno feedback
,如果我在AWS Lambda控制台中测试它,它将成功运行

但是,当我尝试从API网关调用它时,得到的结果是:
{“message”:“缺少身份验证令牌”}

@KMo对我最初的问题很有帮助,但现在我已经超越了这一点,最初的评论与这个问题不再相关

我已按照控制台显示的说明从aws cmdline工具成功地进行了添加权限调用:

您将Lambda函数定义为阶段变量。请确保您将使用的所有功能都具有适当的功能策略。可以通过为每个函数运行下面的AWS CLI命令来实现这一点,将function name参数中的stage变量替换为必要的函数名。

我运行的命令:
aws lambda添加权限--函数名“arn:aws:lambda:us-east-1:012345678901:function:juno openAlertOff:dev”--源arn“arn:aws:execute api:us-east-1:012345678901:www11ww1w1/*/GET/open/alertOff”--principai apigateway.amazonaws.com--语句id 1aa1111a-1a1a-1111-aa11-1a1111111a1a--操作lambda:InvokeFunction

它的回答是成功的

在APIG中,在
Stages/dev/Stage Variables
下,我有Name:Value of functionalias:dev


我是否正确地将
${stageVariables.functionas}
替换为我的阶段变量名
dev

您确定没有键入错误的url吗?是否确保在API网关的仪表板中显示的url末尾包含资源?如果没有,您将收到消息{“message”:“缺少身份验证令牌”}谢谢@KMo资源名称采用什么格式?@KMo-我正在使用APIG生成的URL。这些URL确实以我的资源结尾https://....execute-api.us-east-1.amazonaws.com/dev/open/feedbackUmm... 不管你给他们起什么名字。在AWS控制台->API网关->您的API名称->资源中,您将有一个您创建的所有资源的列表。在Dashboard下,您将找到“invokeApi at:”AWS分配的任何基本路径。您需要使用basepath/resource调用API。另外,确保在测试之前部署了API。可能无法解决您的问题,但这些是导致缺少身份验证令牌错误的常见错误。是的,我一直在单击“调用URL:”处的链接,并尝试从本地web浏览器页面调用它。我还部署了。我还有许多其他API受身份验证的保护,这些API在我的应用程序中工作(当用户登录时)。现在我尝试添加一个不受身份验证保护的APIG资源