为什么我的 API 网关 HTTP 代理 return 404?
Why does my API Gateway HTTP proxy return 404?
我正在尝试设置 API 网关以将所有请求代理到不同的域。我使用下面的 terraform 代码进行设置,一切似乎都已就绪。但是当我尝试调用它时,我得到的只是来自 API 网关的 {"message":"Not Found"}
。谁能告诉我我做错了什么?
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.2.0"
}
}
required_version = ">= 1.1.6"
}
provider "aws" {
region = "eu-west-1"
}
resource "aws_apigatewayv2_api" "example" {
name = "example"
protocol_type = "HTTP"
}
resource "aws_apigatewayv2_integration" "example" {
api_id = aws_apigatewayv2_api.example.id
integration_type = "HTTP_PROXY"
integration_method = "ANY"
integration_uri = "https://example.com"
}
resource "aws_apigatewayv2_route" "example" {
api_id = aws_apigatewayv2_api.example.id
route_key = "$default"
target = "integrations/${aws_apigatewayv2_integration.example.id}"
}
resource "aws_apigatewayv2_stage" "example" {
api_id = aws_apigatewayv2_api.example.id
name = "example"
}
我也试过在舞台上添加访问日志记录。日志中没有任何内容,这可能是正在发生的事情的提示。
PS。我知道还有其他方法可以做到这一点,例如 CloudFront。不幸的是,在这种特殊情况下,它 必须 成为 API 网关。
原来我错过了一个部署。最简单的起床方式 运行:
resource "aws_apigatewayv2_stage" "example" {
api_id = aws_apigatewayv2_api.example.id
name = "example"
auto_deploy = true
}
我正在尝试设置 API 网关以将所有请求代理到不同的域。我使用下面的 terraform 代码进行设置,一切似乎都已就绪。但是当我尝试调用它时,我得到的只是来自 API 网关的 {"message":"Not Found"}
。谁能告诉我我做错了什么?
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.2.0"
}
}
required_version = ">= 1.1.6"
}
provider "aws" {
region = "eu-west-1"
}
resource "aws_apigatewayv2_api" "example" {
name = "example"
protocol_type = "HTTP"
}
resource "aws_apigatewayv2_integration" "example" {
api_id = aws_apigatewayv2_api.example.id
integration_type = "HTTP_PROXY"
integration_method = "ANY"
integration_uri = "https://example.com"
}
resource "aws_apigatewayv2_route" "example" {
api_id = aws_apigatewayv2_api.example.id
route_key = "$default"
target = "integrations/${aws_apigatewayv2_integration.example.id}"
}
resource "aws_apigatewayv2_stage" "example" {
api_id = aws_apigatewayv2_api.example.id
name = "example"
}
我也试过在舞台上添加访问日志记录。日志中没有任何内容,这可能是正在发生的事情的提示。
PS。我知道还有其他方法可以做到这一点,例如 CloudFront。不幸的是,在这种特殊情况下,它 必须 成为 API 网关。
原来我错过了一个部署。最简单的起床方式 运行:
resource "aws_apigatewayv2_stage" "example" {
api_id = aws_apigatewayv2_api.example.id
name = "example"
auto_deploy = true
}