0

Je crée un modèle CloudFormation pour capturer les composants d'un processus dans lequel CloudWatch Events est envoyé à un flux de livraison Firehose Kinesis. (Il fonctionne dans AWS fine manuellement configuré via la console.)Définition de Kinesis Firehose comme cible pour la règle CloudWatch Events dans CloudFormation

Lorsque je définis le AWS::Events::Rule, il existe une propriété Targets qui attend l'ARN d'une cible valide. Le problème est qu'une ressource AWS::KinesisFirehose::DeliveryStream ne prend pas en charge la récupération de son ARN et Fn::Ref renvoie simplement son ID logique. (Fn::GetAtt peut être utilisé pour obtenir le AWS::Kinesis::Stream d'un ARN, mais il n'y a rien pour AWS::KinesisFirehose::DeliveryStream.)

Vais-je quelque chose dans le mauvais sens ou est-ce juste une de ces choses qui ne sont pas encore pris en charge par CloudFormation?

Répondre

1

Vous devriez être en mesure de construire le DeliveryStream ARN sur la base ARN namespace pour Kinesis Firehose

Quelque chose comme ce qui suit en supposant que la ressource AWS::KinesisFirehose::DeliveryStream est appelée DeliveryStream (non testé)

{"Fn::Sub": [ 
    "arn:aws:firehose:${AWS::Region}:${AWS::AccountId}:deliverystream/${DeliveryStream}", 
    { 
     "DeliveryStream": {"Ref": "DeliveryStream"} 
    } 
    ]} 

Depuis le return value sur AWS::KinesisFirehose::DeliveryStream est le nom du flux de distribution