Jay*_*ran 5 terraform terraform-provider-azure
我刚刚开始使用 terraform,下面是我的 terraform 代码。从下面的Cors是一个可选块,它具有允许来源的属性,即字符串列表(URL 或 *)
resource "azurerm_signalr_service" "signalr_service" {
name="${var.signalr_name}"
location = "${var.resource_location}"
resource_group_name = "${var.resource_group_name}"
sku {
name = "${var.sku_name}"
capacity = "${var.sku_capacity}"
}
#Cors is an optional block
cors {
allowed_origins = "${var.cors_allowed_origins}"
}
Run Code Online (Sandbox Code Playgroud)
变量.tf:
variable "allowed_origins" {
type = "list"
description = "A list of origins which should be able to make cross-origin calls. * can be used to allow all calls"
default = []
}
Run Code Online (Sandbox Code Playgroud)
用户可以/可以不提供allowed_origns,如果他们提供没有问题,但如果他们不提供
allowed_origns 它失败并提示不是有效的 URLnull:如果我作为 null 传递,allowed_origin则单独获取 null 并且 cors 作为空块传递,即,cors{}这也会由于属性丢失错误而失败现在我的问题是,如果用户没有向 提供任何值,如何使整个 cors 块被忽略,allowed_origins我应该使用的默认值是什么?
您可以使用动态块使 CORS 块可选:
resource "azurerm_signalr_service" "signalr_service" {
name="${var.signalr_name}"
location = "${var.resource_location}"
resource_group_name = "${var.resource_group_name}"
sku {
name = "${var.sku_name}"
capacity = "${var.sku_capacity}"
}
dynamic "cors" {
for_each = length(var.cors_allowed_origins) > 0 ? [1] : []
content {
allowed_origins = "${var.cors_allowed_origins}"
}
}
}
Run Code Online (Sandbox Code Playgroud)
默认值[]就可以了。
| 归档时间: |
|
| 查看次数: |
3482 次 |
| 最近记录: |