我们在vars中有一个前缀,它基于一个名为
deployment_name_modifier
。
prefix = (length(var.deployment_name_modifier) != 0) ?
"${var.environment}-${var.deployment_name_modifier}-${local.service_name}" :
"${var.environment}-${local.service_name}"
这是API网关设置(当然不是全部):
resource "aws_apigatewayv2_api" "ui_backend_gateway" {
name = "${local.prefix}-gateway"
protocol_type = "HTTP"
cors_configuration {
allow_origins = var.environment == "prd" ? ["foo.bar.services"] : ["*"]
allow_methods = ["POST", "OPTIONS", "HEAD"]
allow_headers = [
"Content-Type", "X-Amz-Date", "X-Amz-Security-Token",
"Authorization", "X-Api-Key", "X-Requested-With", "Accept", "Access-Control-Allow-Methods",
"Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "referer", "origin",
"access-control-request-method", "sec-*"
]
max_age = 300
}
}
我试图得到的是一个带有Lambda和API网关的功能分支,它连接到自己的子域,而主分支位于一组单独的资源上。
问题是将此配置应用于
deployment_name修改器
在我部署master之前,set运行良好。当我使用部署master时
deployment_name修改器
空的Terraform正在将功能分支的子域应用到已经就位的API网关。我通过对两个演出计划的质疑看到了这一点。这意味着资源的主分支集的子域来自
dev.foo.bar.services
到
dev-1234.foo.bar.services
。我真正需要的是:
dev.foo.bar.services -> API A -> Lambda A
dev-1234.foo.bar.services -> API B -> Lambda B
其中A是主分支,B是功能分支(1234是票据编号,是分支名称的一部分)。更改的名称
aws_apigatewayv2_api
舞台显然是不够的。
我如何才能说服Terraform,我真的想要两个基于输入变量的完全独立的API网关?
如果我需要在这里添加一些内容(也许是子域配置?),请在评论中告诉我。
地形1.1.3