如何在AWS事件桥中创建自定义事件总线



我在网上找不到文档或Terraform模块的示例。

如何在AWS事件桥中创建自定义事件总线?

在撰写本文时,Terraform Provider for AWS还不支持创建EventBridge事件总线。

我们必须使用默认的事件总线,或者使用AWS CLI或控制台创建它。

注意:EventBridge现在有几个严重的IAM漏洞:您不能限制IAM主体也可以发布事件的总线,它使用服务主体而不是服务链接角色主体来访问用于加密总线的KMS密钥。

您可以使用null_resourceprovisioner作为缺少提供程序资源的解决方法(这假设您正在使用环境变量或IAM实例配置文件来验证您的AWS提供程序(:

resource "null_resource" "custom_event_bus" {
triggers = {
event_bus_name = var.event_bus_name
}
provisioner "local-exec" {
command = "aws events create-event-bus --name ${var.event_bus_name}'"
}
}

如果您使用的是命名的AWS配置文件而不是环境变量,则需要使用--profile profile_name指定该配置文件,就像在shell中运行它一样。

随着AWS Terraform Provider的最新更新,另一个答案中提到的EOFtemplate_body样式不再是指定CloudFormation堆栈的首选方式。以下是使用新的STACK声明样式的代码片段示例,它实现了相同的功能(提供了自定义EventBridge总线(:

resource "aws_cloudformation_stack" "eventbridge_bus" {
name = "eventbridge-bus"
template_body = <<STACK
{
"Resources" : {
"bus" : {
"Type" : "AWS::Events::EventBus",
"Properties" : {
"Name": "bus-name"
}
}
}
}
STACK
}

有一张罚单是指地形中不支持事件桥:https://github.com/terraform-providers/terraform-provider-aws/issues/9330

通过引用github用户https://github.com/mwarkentin以下片段值得称赞的是,在地形黑客中有一个云信息,可以在地形中声明一个事件桥:

resource "aws_cloudformation_stack" "eventbridge_bus" {   
name = "eventbridge-bus"
template_body = <<EOF 
Resources:
EventBus:
Type: AWS::Events::EventBus
Properties:
Name: bus-name
EOF
}

相关内容

  • 没有找到相关文章

最新更新