amazon-web-services - 如何在 ApiGateway 中获取根资源的资源路径?
问题描述
我正在尝试使用 terraform 为根资源的 GET/OPTIONS 方法更改 api 网关中的缓存设置。
resource "aws_api_gateway_method_settings" "root_get_method_settings" {
rest_api_id = aws_api_gateway_rest_api.default.id
stage_name = terraform.workspace
method_path = "<root resource path>/GET"
settings {
metrics_enabled = true
logging_level = "INFO"
caching_enabled = true
}
}
method_path
由于我无法确定<root resource path>的正确值,因此我遇到了争论问题。
method_path
对于任何其他资源,如{proxy+}资源如下所示:
resource "aws_api_gateway_method_settings" "proxy_get_method_settings" {
rest_api_id = aws_api_gateway_rest_api.default.id
stage_name = terraform.workspace
method_path = "{proxy+}/GET"
}
解决方案
路径是"~1/GET"
。以下是完整的工作示例:
resource "aws_api_gateway_rest_api" "MyDemoAPI" {
name = "MyDemoAPI"
description = "This is my API for demonstration purposes"
}
resource "aws_api_gateway_method" "MyDemoMethod" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
resource_id = aws_api_gateway_rest_api.MyDemoAPI.root_resource_id
http_method = "GET"
authorization = "NONE"
}
resource "aws_api_gateway_deployment" "test" {
depends_on = [aws_api_gateway_integration.test]
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
stage_name = "prod"
}
resource "aws_api_gateway_integration" "test" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
resource_id = aws_api_gateway_rest_api.MyDemoAPI.root_resource_id
http_method = aws_api_gateway_method.MyDemoMethod.http_method
type = "MOCK"
}
resource "aws_api_gateway_method_settings" "root_get_method_settings" {
rest_api_id = aws_api_gateway_rest_api.MyDemoAPI.id
stage_name = "prod"
method_path = "~1/GET"
settings {
metrics_enabled = true
logging_level = "INFO"
caching_enabled = true
}
depends_on = [aws_api_gateway_deployment.test]
}
推荐阅读
- c# - Linq to SQL 处理可空值
- python - Databricks 中的雪花 Python 连接器错误
- git - Git 按作者姓名提交历史记录并将输出记录到 .txt 文件
- c++ - 将 webm 视频从 URL 流式传输到 C++ windows.h 应用程序
- powershell - 如何在PowerShell中管理从一年到另一年的过渡
- kubernetes - 如何在 localhost 上为 istio-ingressgateway 分配 IP?
- javascript - 如何仅在 CSS 而非隐藏元素上进行点击跟踪
- php - 使用带有文本输入的 EntityType
- c++ - VScode 终端给出输出:'g++' 不是内部或外部命令、可运行程序或批处理文件
- dom - 如何从浏览器查看源代码或检查元素中隐藏 Aframe 源代码