azure - Terraform - 创建 Azure 事件网格订阅 - 可以吗?
问题描述
我在 Terraform 中一直在努力在 Azure 事件网格中创建事件订阅
按照截图....
EVENT SUBSCRIPTION DETAILS
NAME : EventGrid-Sub1
(don't need to change Event Schema)
TOPIC DETAILS
Event Grid Domain
Topic Resource: EDG-SBX-EventGrid1
Domain Type: EventGrid-DomainTopic1
ENDPOINT DETAILS
Endpoint Type: Event Hubs
Endpoint : eh-sbx-Ingestion
我一直在使用这些作为参考,但它似乎不仅有点鸡和蛋,而且还缺少一些东西?
https://www.terraform.io/docs/providers/azurerm/r/eventgrid_event_subscription.html https://www.terraform.io/docs/providers/azurerm/r/eventgrid_topic.html
有没有人在 Terraform 中得到这个工作?
提前致谢
解决方案
@nmca70 有几种方法可以实现这一点:
- 从最终部署创建一个 ARM 模板,然后使用 Terraform 运行该 ARM 模板:
https://www.terraform.io/docs/providers/azurerm/r/template_deployment.html
- 按以下顺序创建资源:
- Azure 事件中心:https ://www.terraform.io/docs/providers/azurerm/r/eventhub.html
- Azure 事件网格主题:https ://www.terraform.io/docs/providers/azurerm/r/eventgrid_topic.html
- Azure 事件网格域:https ://www.terraform.io/docs/providers/azurerm/r/eventgrid_domain.html
- Azure 事件网格订阅:https ://www.terraform.io/docs/providers/azurerm/r/eventgrid_event_subscription.html#storage_queue_endpoint
一个样品:
resource "azurerm_resource_group" "test" {
name = "resourceGroup1"
location = "West US 2"
}
resource "azurerm_eventhub_namespace" "test" {
name = "acceptanceTestEventHubNamespace"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
sku = "Standard"
capacity = 1
kafka_enabled = false
tags = {
environment = "Production"
}
}
resource "azurerm_eventhub" "test" {
name = "acceptanceTestEventHub"
namespace_name = "${azurerm_eventhub_namespace.test.name}"
resource_group_name = "${azurerm_resource_group.test.name}"
partition_count = 2
message_retention = 1
}
resource "azurerm_eventgrid_topic" "test" {
name = "my-eventgrid-topic"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
tags = {
environment = "Production"
}
}
resource "azurerm_eventgrid_domain" "test" {
name = "my-eventgrid-domain"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
input_schema = "eventgridschema"
input_mapping_fields= {
topic = "my-eventgrid-topic"
}
tags = {
environment = "Production"
}
}
resource "azurerm_eventgrid_event_subscription" "default" {
name = "defaultEventSubscription"
scope = "${azurerm_resource_group.default.id}"
event_delivery_schema = "EventGridSchema"
topic_name = "my-eventgrid-topic"
eventhub_endpoint {
storage_account_id = "${azurerm_eventhub.test.id}"
}
}
希望这可以帮助!
推荐阅读
- javascript - 在 JavaScript 中重新组织字典中的数据
- python - 带有 if else 语句的 lambda 行函数
- css - 如何在 Blazor WebAssembly 中设置 Bootstrap `$enable-rounded: false;`?
- wordpress - WP 帖子编辑器是空白的
- python - Flask-Kerberos 远程用户服务器变量未通过
- python - 我的 python 程序不断收到此错误消息: ValueError: max() arg is an empty sequence
- powershell - 在 PowerShell 中使用注册表项获取软件版本
- azerothcore - 15>LINK : 致命错误 LNK1181..\scripts\Release\scripts.lib" 无法打开
- c# - 如何使用 LINQ 查询获取名称以数字开头的产品名称列表。?
- google-sheets - IMPORTRANGE 动态构建,当它落在单元格而不是公式时作为字符串拉入