最近,我使用了Amazon API Gateway。我创建了一个api,但是API总是失败。 一开始我没有添加请求头,API响应的结果如下:
HTTP/1.1 403 Forbidden
{"message":null, "type": "ACCESS_DENIED", "status":"", "other":"" }
然后,我添加了一个名为host的 header ,结果发生了变化。
HTTP/1.1 403 Forbidden
{"message":"Forbidden"}
我没有使用其他AWS。 我设置授权为无,所需的 API key 为 false。 enter image description here 你可以帮帮我吗? 谢谢!
最佳答案
{"message":"Forbidden"}
让我困惑的一个原因是我没有部署我的 API。
对于遇到此问题的任何人,请检查您的网关是否已部署。 首先,您需要一个阶段,使用它您可以从操作下拉列表中单击部署 API,选择您的阶段。
部署后将为您提供一个 invoke_url
(以 /{stage-name}
结尾。
对于那些使用 Terraform 的人...
您可以定义一个依赖于 aws_api_gateway_deployment
的 aws_api_gateway_stage
。有a known issue, at the time of writing ,部署不会重新触发,这是我的禁止错误的最初原因。
要修复此问题并让部署在每次进行更改时运行,请添加到 aws_api_gateway_deployment
:
resource "aws_api_gateway_deployment" "gateway-deployment" {
...
stage_description = "Terraform hash ${md5(join(",", local.all_resources))}"
lifecycle {
create_before_destroy = true
}
}
locals {
all_resources = [
"${aws_api_gateway_resource.simulator-gateway-resource.path}:${aws_api_gateway_method.simulator-gateway-method.http_method}:${aws_api_gateway_integration.simulator-gateway-integration.uri}",
]
}```
关于java - Amazon API Gateway 403 禁止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51316761/