java - 亚马逊 API 网关 403 禁止
问题描述
最近在用Amazon API Gateway。我创建了一个api,但是API总是失败。一开始,我没有添加请求头。API响应的结果如下:
HTTP/1.1 403 Forbidden
{"message":null, "type": "ACCESS_DENIED", "status":"", "other":"" }
然后,我添加了一个名为主机的标题,结果改变了。
HTTP/1.1 403 Forbidden
{"message":"Forbidden"}
我没有使用其他 AWS。我将授权设置为无,所需的 API 密钥为假。 在此处输入图片描述 您能帮我吗?谢谢!</p>
解决方案
让我难过的一个原因{"message":"Forbidden"}
是我没有部署我的 API。
对于遇到此问题的任何人,请检查您的网关是否已部署。首先,您需要一个Stage,您可以使用它从Actions下拉列表中单击Deploy API,选择您的阶段。
部署会给你一个invoke_url
, (以/{stage-name}
.
对于那些使用 Terraform 的人......
您可以定义一个aws_api_gateway_stage
取决于aws_api_gateway_deployment
. 在撰写本文时,存在一个已知问题,即部署不会重新触发,这是我的禁止错误的最初原因。
要解决此问题并在每次进行更改时运行部署,请添加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}",
]
}```
推荐阅读
- python - Sharing variable on wsgi for multiple processes
- missing-data - 使用 libreoffice-calc 包含缺失值的缺失日期
- c# - 使用 c# linq 聚合和分组超过 15 秒
- javascript - 我无法让单选按钮在 if 语句中向我发出警报以连接我的分数框
- javascript - 在 Node JS 和 Express 中使用 POST 将查询参数发送到另一个页面
- vhdl - VHDL允许通过端口传递实数(浮点数)?
- python-3.x - pyparsing SkipTo 和 key = value 输入
- android - Android - 如何使用 Kotlin Poet 库生成类型安全的构建器函数
- c++ - 将多路树转换为左子/右兄弟格式?
- prometheus - 如何将一个 Prometheus 服务器中的单个目标列表联合/Hashmod 到多个相同的导出器?