API 密钥已启用,但没有密钥的请求仍然 运行
API Key enabled, but requests without key still running
在我的 API 网关控制台中,我执行了以下操作:
- 创建了一个 API 密钥
- 将密钥与已部署的 API 阶段相关联
- 选中密钥的 "Enabled" 复选框
- 对于我的 API 的每个资源的每个方法,需要 API 密钥进行身份验证
我预计 curl https://my-api-gateway-url/my-resource
为 403,因为我没有包括 x-api-key
header,但它是 200。 API 网关后面的 Lambda 函数在没有 API 键的情况下不应该有 运行 时结束了 运行ning。
如何确保需要密钥来验证所有请求?
编辑:我在这里关注文档:http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-api-keys.html
刚刚回答了我自己的问题。在这里发布我的答案,因为我知道我不是唯一对此感到疑惑的人,例如 this person.
答案是重新部署您的API。虽然重新部署听起来很明显,但文档完全跳过了至关重要的最后一步,因此很容易被忽视。
在我的 API 网关控制台中,我执行了以下操作:
- 创建了一个 API 密钥
- 将密钥与已部署的 API 阶段相关联
- 选中密钥的 "Enabled" 复选框
- 对于我的 API 的每个资源的每个方法,需要 API 密钥进行身份验证
我预计 curl https://my-api-gateway-url/my-resource
为 403,因为我没有包括 x-api-key
header,但它是 200。 API 网关后面的 Lambda 函数在没有 API 键的情况下不应该有 运行 时结束了 运行ning。
如何确保需要密钥来验证所有请求?
编辑:我在这里关注文档:http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-api-keys.html
刚刚回答了我自己的问题。在这里发布我的答案,因为我知道我不是唯一对此感到疑惑的人,例如 this person.
答案是重新部署您的API。虽然重新部署听起来很明显,但文档完全跳过了至关重要的最后一步,因此很容易被忽视。