我正在制作CloudFormation模板,以捕获将CloudWatch Events发送到Kinesis Firehose Delivery Stream的流程组件。 (它在AWS中通过控制台手动配置。)
当我定义AWS::Events::Rule时,有一个Targets属性,它需要一个有效目标的ARN。问题是AWS::KinesisFirehose::DeliveryStream
资源不支持检索其ARN,Fn::Ref
只返回其逻辑ID。 (Fn::GetAtt可用于获取AWS::Kinesis::Stream
的ARN,但AWS::KinesisFirehose::DeliveryStream
没有任何内容。)
我是否采取了错误的方式,或者这只是CloudFormation尚未支持的其中一项?
答案 0 :(得分:1)
您应该能够根据Kinesis Firehose的ARN namespace构建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是投放流名称