Terraform 模块 azure 事件订阅可选字段
Posted
技术标签:
【中文标题】Terraform 模块 azure 事件订阅可选字段【英文标题】:Terraform modules azure event subscription optional fields 【发布时间】:2020-03-09 12:41:20 【问题描述】:我正在尝试使用 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
而 terraform 是
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”类型的块。 错误:不支持的块类型 在 azure.tf 第 90 行,在模块“storage_account__event_subscription”中: :存储队列端点 此处不应出现“storage_queue_endpoint”类型的块。
如何正确解析 terraform 模块中的可选字段?
【问题讨论】:
【参考方案1】:在你的模块中:
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 文件中获得更小的块。
【讨论】:
以上是关于Terraform 模块 azure 事件订阅可选字段的主要内容,如果未能解决你的问题,请参考以下文章
sh 使用Terraform导出Azure的订阅和租户ID。
使用 Azure 提供程序的 Terraform “AuthorizationFailed”
Terraform - Azure 作为提供者和受限访问帐户