gpt4 book ai didi

amazon-web-services - 由于配置错误 : Authorizer error,AWS 执行失败

转载 作者:行者123 更新时间:2023-12-05 03:10:52 25 4
gpt4 key购买 nike

我为 API 网关端点创建了 2 个授权方。一个手动使用控制台,另一个使用 boto3。手动创建的效果很好,但是使用脚本创建的会出现主题行中提到的错误。查看这2个authorizer的内容,是一样的。

可能缺少的部分是什么?我不认为这是对 lambda 的无效权限,因为它在手动配置时在一个授权方上工作。



相同的代码如下:
响应 = client.create_authorizer(
restApiId=apiid,
名称=授权名称,
类型=' token ',
authType='自定义',
authorizerUri=authorizerUri,
##arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2: :function:CustomAuthorizer/调用
identitySource='method.request.header.Authorization',
identityValidationExpression='.*',
authorizerResultTtlInSeconds=300
)

获取错误:2016 年 7 月 18 日星期一 11:53:04 UTC:由于配置错误导致执行失败:Lambda 函数的权限无效2016 年 7 月 18 日星期一 11:53:04 UTC:由于配置错误导致执行失败:授权者错误2016 年 7 月 18 日星期一 11:53:04 UTC:AuthorizerConfigurationException

最佳答案

刚刚进入这个兔子洞,遇到了一个解决方案(使用 boto3 和 python,希望它在不同的 sdk 中是相似的)。

问题是,当您通过控制台手动创建它时,会出现一个弹出窗口,要求启用 api 网关(确切地说是这个特定的授权方)作为您作为授权方使用的 lambda 函数的触发器。通过 sdk 执行时,显然没有弹出窗口,因此授权方无权调用该 lambda。

您可以通过两种方式启用权限:

  1. 在 lambda 中,在设计器面板中为您的授权方创建一个新触发器。指定一个 API 和阶段应该可以解决问题
  2. 创建一个将处理此权限的角色。授予它调用 lambda 的权限(您可以使用 AWSLambdaRole 模板角色)并确保将 api-gateway 添加为受信任的实体以在“信任关系”选项卡中使用此角色。您的政策应如下所示:

{“版本”:“2012-10-17”,“声明”:[{“效果”:“允许”,“主体”:{“服务”:“apigateway.amazonaws.com”} ,"Action": "sts:AssumeRole"}]}

现在,当使用 sdk 创建自定义授权器时,您必须提供一个 authorizerCredentials 参数,该参数被描述为“(字符串)指定所需的凭证作为 API 网关调用授权器的 IAM 角色。要指定一个 IAM API 网关承担的角色,使用角色的 Amazon 资源名称 (ARN)。要对 Lambda 函数使用基于资源的权限,请指定 null。”。

复制您新创建的角色的 arn 并将其用作 authorizerCredentials 参数的值。

中提琴!您现在拥有一个自定义授权方,该授权方可以使用允许它调用 lambda 函数的角色!

(抱歉格式不好,我不经常评论 :D)

关于amazon-web-services - 由于配置错误 : Authorizer error,AWS 执行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38436444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com