【发布时间】:2020-02-04 18:45:54
【问题描述】:
我正在学习无服务器应用程序。我创建了一个简单的 Lambda,我确认它正在通过 Paw/curl 工作。
接下来我完成了以下 API 网关任务:
- 创建需要 API 密钥的 POST 资源
- 创建 beta 和测试阶段
- 创建 API 密钥
- 创建使用计划
- 将 API 密钥与使用计划相关联
- 将使用计划与测试阶段相关联
我希望带有 x-api-key 标头的请求能够正常工作,而那些没有标头的请求将被拒绝。但我观察到所有请求都会继续成功完成,无论该 Header 是否存在。
我重新创建了单独的 API 网关步骤,并最终将整个流程作为一个整体进行了重新创建,但无济于事。关于我错过了什么的任何线索?
【问题讨论】:
-
我没有看到任何问题。 This blog 做了同样的事情,但是在没有密钥的情况下调用时会导致 403。有没有可能是一些简单的事情,比如您更改了“需要 API 密钥”标志并且没有再次部署?
-
您可以通过点击Stages -> “stage name” -> “resource name”(不是方法,资源路径)来确认API Keys和Usage Plans设置是否正确。您应该会看到一个矩形,上面写着“授权:无,API 密钥:必需”。你在舞台上看到了吗?
-
@JasonWadsworth,你叫它!我更新了标志,但没有重新部署,这就成功了。谢谢参观;将其发布为胜利的答案。
-
感谢@tankthinks 向我展示了如何确认设置。我在重新部署之前(不需要密钥)和之后(需要密钥)按照您的步骤进行操作。激动人心的时刻!
标签: amazon-web-services aws-lambda aws-api-gateway aws-serverless