从 AWS API Gateway Web 界面配置 AWS Lambda 时无法选择/查看 Lambda 函数

Posted

技术标签:

【中文标题】从 AWS API Gateway Web 界面配置 AWS Lambda 时无法选择/查看 Lambda 函数【英文标题】:Cannot select/view Lambda function when configuring AWS Lambda from AWS API Gateway web interface 【发布时间】:2018-04-23 19:17:36 【问题描述】:

我正在使用 AWS API Gateway 和 AWS Lambda。我正在配置 API 网关以与 lambda 函数集成。

当我选择 lambda 函数所在的区域时,lambda 函数在可用函数列表中不可见。

当我尝试从 AWS API Gateway Web 界面将集成配置为 AWS 服务并输入 lambda 函数的 ARN 编号时,我得到一个无效的 ARN 编号。号码是正确的。

【问题讨论】:

也许您是在与您的 Lambda 函数不同的区域或不同账户上创建 API 网关? @dashmug 虽然 Lambda 和 API 网关位于两个不同的区域,但他应该在选择 Lambda 区域 API 网关时获得 Lambda 函数 嘿,我让它工作了,但我不确定为什么我可以看到一些 lambda 函数而不是其他函数。将 lambda 函数集成为 AWS 资源:我输入的是 lambda ARN 来代替访问策略 ARN。为了将 lambda 函数集成为 lambda 函数:在 IAM 设置中,我有一个有权访问 lambda 函数的角色,但我没有将 API Gateway 添加到受信任的用户列表中,之前它已被添加。当我更新策略时,我可以看到新创建的 lambda。 【参考方案1】:

我也遇到了同样的问题。 我在下拉菜单中找不到我的 lambda 函数。 然后我简单地复制粘贴了我的 lambda 函数名称并保存了 api 网关。 它对我有用。 我认为 lambda 函数的文本框以某种方式显示缓存的结果。

【讨论】:

【参考方案2】:

tl;dr:输入信息不正确,您必须将 AWS API Gateway 添加到可以使用 AWS Lambda 的用户列表中,这是通过创建用户角色,授予角色访问使用 AWS Lambda 的权限来完成的,并且将 AWS API Gateway 添加到可以使用该角色的受信任用户列表中。这一切都可以使用 AWS IAM 门户网站完成。

嘿,我让它工作了,但我不确定为什么我可以看到一些 lambda 函数而看不到其他函数。

为了使用 AWS API Gateway Web 界面将 lambda 函数集成为 AWS 资源:我输入的是 lambda ARN 来代替访问策略 ARN。

使用 AWS API Gateway Web 界面将 lambda 函数集成为 lambda 函数:在 IAM 设置中,我有一个有权访问 lambda 函数的角色,但我没有将 API Gateway 添加到受信任的用户列表中。当我更新策略,将 AWS API Gateway 添加到受信任用户列表时,我可以看到新创建的 lambda。

我不知道这些更改是否能解决问题,但现在可以了。以前,AWS API Gateway 已添加到受信任的策略用户列表中。当我不打算使用 lambda 函数时,我删除了它。今天更新策略后,我可以看到新创建的 lambda。在今天更新策略之前,我只能看到 API 网关在我最初删除策略之前可以访问的 lambda 函数。此外,在 API 网关未添加到受信任用户列表期间,您可以通过 API 网关 Web 界面查看的一些 lambda 函数被列为与它们当前所在的不同区域,或者曾经;甚至有些我认为我没有添加。

【讨论】:

以上是关于从 AWS API Gateway Web 界面配置 AWS Lambda 时无法选择/查看 Lambda 函数的主要内容,如果未能解决你的问题,请参考以下文章

将托管在 AWS EC2 上的 Asp.net Web api 连接到 AWS API Gateway

从AWS API-Gateway中找出lambda名称

从 API Gateway 获取 terraform 中 AWS lambda 的端点

从 AWS API Gateway 自定义域映射中删除映射路径

如何将参数从 POST 从 Amazon API Gateway 传递到 AWS Lambda

AWS API Gateway 集成请求正文映射模板