我正在尝试与terraform模块一起创建事件订阅,该事件订阅指向存储队列作为其端点。
下面是模块
resource "azurerm_eventgrid_event_subscription" "events" {
name = var.name
scope = var.scope
subject_filter = var.subject_filter
storage_queue_endpoint = var.storage_queue_endpoint
}
terraterra是
module "storage_account__event_subscription" {
source = "../modules/event"
name = "testevent"
scope = test
subject_filter = {
subject_begins_with = "/blobServices/default/containers/test/blobs/in"
}
storage_queue_endpoint = {
storage_account_id = test
queue_name = test
}
}
错误消息:
:subject_filter { 这里不希望使用“ subject_filter”类型的块。 错误:不支持的块类型 在azure.tf行90上的模块“ storage_account__event_subscription”中: :storage_queue_endpoint { 这里不应该使用“ storage_queue_endpoint”类型的块。
如何在terraform模块中正确解析可选字段?
答案 0 :(得分:0)
在您的模块中:
resource "azurerm_eventgrid_event_subscription" "events" {
name = var.name
scope = var.scope
subject_filter = {
subject_begins_with = var.subject_begins_with
}
storage_queue_endpoint = var.storage_queue_endpoint
}
此处的格式已关闭,因此请确保运行terraform fmt
来解决我的格式不正确的问题。还将变量添加到variables.tf
文件中。
您的Terraform文件:
module "storage_account__event_subscription" {
source = "../modules/event"
name = "testevent"
scope = test
subject_begins_with = "/blobServices/default/containers/test/blobs/in"
storage_queue_endpoint = {
storage_account_id = test
queue_name = test
}
}
您在模块中创建完整结构,然后在terraform文件中分配变量。
任何具有相同或大致相同值的东西也可以在variables.tf
中设置默认值,以便在TF文件中获得较小的块。