0
votes

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?

1

1 Answers

1
votes

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