Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Amazon web services Lambda函数->;Api网关阶段变量权限手动_Amazon Web Services_Lambda_Aws Api Gateway - Fatal编程技术网

Amazon web services Lambda函数->;Api网关阶段变量权限手动

Amazon web services Lambda函数->;Api网关阶段变量权限手动,amazon-web-services,lambda,aws-api-gateway,Amazon Web Services,Lambda,Aws Api Gateway,将Lambda函数定义为阶段变量;你必须 手动授予您将使用的所有功能的权限。你可以 为此,请为每个功能运行以下AWS CLI命令, 将函数名参数中的stage变量替换为 必需的函数名 正在获取此消息和建议以运行此命令,不幸的是,它在此处不起作用 zsh: bad substitution 无论有无zsh,我都在寻找一种手动执行此操作的方法(使用aws界面) 谢谢 您是否将“${stageVariables.functionas}”留在命令中?此命令的--function name参数需要使用有

将Lambda函数定义为阶段变量;你必须 手动授予您将使用的所有功能的权限。你可以 为此,请为每个功能运行以下AWS CLI命令, 将函数名参数中的stage变量替换为 必需的函数名

正在获取此消息和建议以运行此命令,不幸的是,它在此处不起作用

zsh: bad substitution
无论有无zsh,我都在寻找一种手动执行此操作的方法(使用aws界面)

谢谢

您是否将“${stageVariables.functionas}”留在命令中?此命令的
--function name
参数需要使用有效的完全限定或部分lambda函数ARN,模式如下:

(arn:aws:lambda:[region]:[account-id]:function:)[function-name](:[function-alias])
其中,
区域
账户id
功能名称
功能别名
被适当替换

如果您的函数与发出该命令的用户位于同一帐户和区域,并且您只想引用
$LATEST
函数版本,那么只指定函数名将是完全有效的,并且可以节省一些击键次数:

aws lambda add-permission --function-name test --source-arn arn:aws:execute-api:eu-west-1:12345:dsad667asd/*/GET/test/test --principal apigateway.amazonaws.com --statement-id d5a14508-22bb-4413-87c9-d9715e36435d --action lambda:InvokeFunction
有关使用aws lambda add permission的本文档,请参见:

您是否在命令中保留了“${stageVariables.functionas}”?此命令的
--function name
参数需要使用有效的完全限定或部分lambda函数ARN,模式如下:

(arn:aws:lambda:[region]:[account-id]:function:)[function-name](:[function-alias])
其中,
区域
账户id
功能名称
功能别名
被适当替换

如果您的函数与发出该命令的用户位于同一帐户和区域,并且您只想引用
$LATEST
函数版本,那么只指定函数名将是完全有效的,并且可以节省一些击键次数:

aws lambda add-permission --function-name test --source-arn arn:aws:execute-api:eu-west-1:12345:dsad667asd/*/GET/test/test --principal apigateway.amazonaws.com --statement-id d5a14508-22bb-4413-87c9-d9715e36435d --action lambda:InvokeFunction

有关
aws lambda add permission
CLI命令的使用,请参阅本文档:

您需要从命令中将
${stageVariables.functionas}
替换为您自己的lambda函数名

另外,确保在bash中正确设置AWS环境变量


它适合我。

您需要从命令中将
${stageVariables.functionas}
替换为您自己的lambda函数名

另外,确保在bash中正确设置AWS环境变量


这对我来说很有用。

我所做的就是创建我需要的版本,为每个版本创建别名。在我的例子中,我有制作指向版本1,而开发指向$LATEST

在AWS CLI上,我将
${stageVariables.functionas}
更改为别名的名称,并对每个别名执行该命令

我还提到。您还可以查看CloudWatch中端点的日志,并查看调用了哪个版本/别名


希望这能有所帮助。

为了解决这个问题,我创建了我需要的版本,为每个版本创建了别名。在我的例子中,我有制作指向版本1,而开发指向$LATEST

在AWS CLI上,我将
${stageVariables.functionas}
更改为别名的名称,并对每个别名执行该命令

我还提到。您还可以查看CloudWatch中端点的日志,并查看调用了哪个版本/别名


希望这有帮助。

创建新函数或新函数别名时,必须添加权限才能访问API网关。我这样做的方式是在集成请求期间,输入lambda function stage变量,如下所示:

${stageVariables.myFunctionName}

我在CLI上运行命令(由控制台显示),并用以下格式替换上述变量:

myFunctionName:myAliasName

请注意,如果创建了别名,请将别名添加到由单个“:”冒号分隔的函数名之后

注意:您可以从Lammda>函数>限定符选项中获取函数和别名


我希望这会有所帮助。

创建新函数或新函数别名时,必须添加权限才能访问API网关。我这样做的方式是在集成请求期间,输入lambda function stage变量,如下所示:

${stageVariables.myFunctionName}

我在CLI上运行命令(由控制台显示),并用以下格式替换上述变量:

myFunctionName:myAliasName

请注意,如果创建了别名,请将别名添加到由单个“:”冒号分隔的函数名之后

注意:您可以从Lammda>函数>限定符选项中获取函数和别名

我希望这有帮助