Add method for creating queue policies

main
Hammy 3 years ago
parent 4f95fcf321
commit b7ca1d0b12

@ -1,5 +1,6 @@
from troposphere import Template
from troposphere.sqs import Queue
from troposphere import Template, Ref, GetAtt
from troposphere.sns import Topic
from troposphere.sqs import Queue, QueuePolicy
class Util:
@ -15,3 +16,27 @@ class Util:
ReceiveMessageWaitTimeSeconds=20,
)
)
def add_queue_policy_for_write_to_topic(self, queue: Queue, queue_policy_name: str, sid: str, fanout_topic: Topic) -> None:
self.template.add_resource(QueuePolicy(
queue_policy_name,
Queues=[Ref(queue)],
PolicyDocument={
"Version": "2008-10-17",
"Id": "PublicationPolicy",
"Statement": [
{
"Sid": sid,
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": ["sqs:SendMessage"],
"Resource": GetAtt(queue, "Arn"),
"Condition": {
"ArnEquals": {"aws:SourceArn": Ref(fanout_topic)}
}
}
]
}
))

Loading…
Cancel
Save