将Kinesis Firehose设置为CloudFormation中CloudWatch Events规则的目标

时间:2017-10-11 12:23:29

标签: amazon-web-services amazon-cloudformation amazon-cloudwatch amazon-kinesis-firehose

我正在制作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尚未支持的其中一项?

1 个答案:

答案 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是投放流名称