I'm making a CloudFormation template to capture the components of a process where CloudWatch Events are sent to a Kinesis Firehose Delivery Stream. (It's working in AWS fine manually configured through the console.)
When I define the 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 can be used to get the ARN of a AWS::Kinesis::Stream
but there is nothing for AWS::KinesisFirehose::DeliveryStream
.)
Am I going about something the wrong way or is this just one of those things that is not yet supported by CloudFormation?
You should be able to build the DeliveryStream ARN based on the ARN namespace for Kinesis Firehose
Something like the following assuming the AWS::KinesisFirehose::DeliveryStream
resource is called DeliveryStream
(not tested)
{"Fn::Sub": [
"arn:aws:firehose:${AWS::Region}:${AWS::AccountId}:deliverystream/${DeliveryStream}",
{
"DeliveryStream": {"Ref": "DeliveryStream"}
}
]}
Since the return value on AWS::KinesisFirehose::DeliveryStream
is the Delivery Stream name