我正在制作一个 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 尚不支持的事情之一?
最佳答案
您应该能够基于 ARN namespace 构建 DeliveryStream ARN对于 Kinesis Firehose
类似于以下内容,假设调用 AWS::KinesisFirehose::DeliveryStream
资源DeliveryStream
(未经测试)
{"Fn::Sub": [
"arn:aws:firehose:${AWS::Region}:${AWS::AccountId}:deliverystream/${DeliveryStream}",
{
"DeliveryStream": {"Ref": "DeliveryStream"}
}
]}
自 return value AWS::KinesisFirehose::DeliveryStream
上是传输流名称
关于amazon-web-services - 将 Kinesis Firehose 设置为 CloudFormation 中 CloudWatch Events 规则的目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46688146/