在 CloudFormation 中将 Kinesis Firehose 设置为 CloudWatch Events 规则的目标
Setting Kinesis Firehose as target for CloudWatch Events Rule in CloudFormation
我正在制作一个 CloudFormation 模板来捕获将 CloudWatch Events 发送到 Kinesis Firehose Delivery Stream 的流程的组件。 (它在通过控制台手动配置的 AWS 中运行良好。)
当我定义 AWS::Events::Rule there is a Targets property that expects the ARN of a valid target. The problem is that a AWS::KinesisFirehose::DeliveryStream
resource does not support retrieving its ARN and Fn::Ref
just returns its logical ID. (Fn::GetAtt 可用于获取 AWS::Kinesis::Stream
的 ARN 但 AWS::KinesisFirehose::DeliveryStream
没有。)
我是不是做错了什么,或者这只是 CloudFormation 尚不支持的事情之一?
您应该能够基于 ARN namespace 为 Kinesis Firehose
构建 DeliveryStream ARN
假设 AWS::KinesisFirehose::DeliveryStream
资源被调用 DeliveryStream
(未测试)
{"Fn::Sub": [
"arn:aws:firehose:${AWS::Region}:${AWS::AccountId}:deliverystream/${DeliveryStream}",
{
"DeliveryStream": {"Ref": "DeliveryStream"}
}
]}
因为 AWS::KinesisFirehose::DeliveryStream
上的 return value 是传输流名称
我正在制作一个 CloudFormation 模板来捕获将 CloudWatch Events 发送到 Kinesis Firehose Delivery Stream 的流程的组件。 (它在通过控制台手动配置的 AWS 中运行良好。)
当我定义 AWS::Events::Rule there is a Targets property that expects the ARN of a valid target. The problem is that a AWS::KinesisFirehose::DeliveryStream
resource does not support retrieving its ARN and Fn::Ref
just returns its logical ID. (Fn::GetAtt 可用于获取 AWS::Kinesis::Stream
的 ARN 但 AWS::KinesisFirehose::DeliveryStream
没有。)
我是不是做错了什么,或者这只是 CloudFormation 尚不支持的事情之一?
您应该能够基于 ARN namespace 为 Kinesis Firehose
构建 DeliveryStream ARN假设 AWS::KinesisFirehose::DeliveryStream
资源被调用 DeliveryStream
(未测试)
{"Fn::Sub": [
"arn:aws:firehose:${AWS::Region}:${AWS::AccountId}:deliverystream/${DeliveryStream}",
{
"DeliveryStream": {"Ref": "DeliveryStream"}
}
]}
因为 AWS::KinesisFirehose::DeliveryStream
上的 return value 是传输流名称