Sha256: 78e0d3cbc642355ba2045e25c21fc7b3b4bf57b13f2d386ccd0f91a5dd554b3e
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
require 'cloud_formation/bridge/resources/base' require 'aws/sns' require 'aws/sqs' module CloudFormation module Bridge module Resources class SubscribeQueueToTopic < Base ARN = 'Arn' ENDPOINT = 'Endpoint' PROTOCOL = 'Protocol' TOPIC_ARN = 'TopicArn' QUEUE_NAME = 'QueueName' REQUIRED_FIELDS = [ TOPIC_ARN, QUEUE_NAME, ] def create(request) require_fields(request, REQUIRED_FIELDS) queue = queues.named(request.resource_properties[QUEUE_NAME]) topic = topics[request.resource_properties[TOPIC_ARN]] subscription = topic.subscribe(queue) { FIELDS::PHYSICAL_RESOURCE_ID => subscription.arn, FIELDS::DATA => { ARN => subscription.arn, ENDPOINT => subscription.endpoint, PROTOCOL => subscription.protocol, }, } end def delete(request) subscription = subscriptions[request.physical_resource_id] subscription.unsubscribe if subscription && subscription.exists? end def topics @topics ||= sns.topics end def subscriptions @subscriptions ||= sns.subscriptions end def sns @sns ||= AWS::SNS.new end def queues @queues ||= AWS::SQS.new.queues end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cfn-bridge-0.0.1 | lib/cloud_formation/bridge/resources/subscribe_queue_to_topic.rb |