Amazon web services Lambda函数->;Api网关阶段变量权限手动
将Lambda函数定义为阶段变量;你必须 手动授予您将使用的所有功能的权限。你可以 为此,请为每个功能运行以下AWS CLI命令, 将函数名参数中的stage变量替换为 必需的函数名 正在获取此消息和建议以运行此命令,不幸的是,它在此处不起作用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参数需要使用有
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>函数>限定符选项中获取函数和别名 我希望这有帮助