java - Amazon API Gateway 403 禁止

标签 java amazon-web-services aws-api-gateway

最近,我使用了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_deploymentaws_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/

相关文章:

ruby-on-rails - 带有自定义 header 的 S3 临时签名 url,无需将对象元数据修改到磁盘

amazon-web-services - 错误 : API Call unsuccessful. 状态码返回 401-亚马逊网络服务

java - 向 Java 应用程序添加状态栏

java - docker 运行 nginx 加 jar

amazon-web-services - AWS 负载均衡器不安全

amazon-web-services - AWS API Gateway - HTTP 直通路径参数

amazon-web-services - 无法从 API 网关向 FIFO SQS 发送消息

java - 错误 : Cannot find getter for field in Android Room

java - 无法在 selenium 3.0 中定位元素

amazon-web-services - 访问API网关时缺少身份验证 token ?