ID xxx 的 API 不包含路径 /* 具有集成的路由

问题描述 投票:0回答:2

我有 HTTP API 网关 + Lambda 设置。当我尝试触发 API 时,出现 500 HTTP 错误:

在集成或 API Gateway 上配置的 IAM 角色无权调用集成。

API 网关已在 Lambda 的触发器中列出,但也有一条错误消息:

ID xxx 的 API 不包含具有集成 arn:aws:lambda:us-east-1::function:lambda-name 的路径 /* 的路由。

我该如何解决这个问题?

amazon-web-services aws-lambda aws-api-gateway
2个回答
1
投票

我的错误是我发布了我的Lambda并拥有多个版本,但我仅将基于资源的策略添加到未版本化的函数中,而不是版本化的函数中。在我向 API 网关使用的 Lambda 函数版本添加策略后,错误消失了。

对于使用 Terraform 资源的用户

aws_lambda_permission
- 您必须指定
qualifier
参数,并使用 Lambda 版本作为其值。

我的基于资源的政策:


0
投票

您可以通过将权限放在 IAM 角色而不是 Lambda 函数上来解决此问题(bug?)。

来自 API Gateway V2 命令行的 AWS 文档

--authorizer-credentials-arn (string)

    Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter.
© www.soinside.com 2019 - 2024. All rights reserved.