UNPKG

@incdevco/framework

Version:
93 lines 2.51 kB
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "action queue stack", "Parameters": { "DeadMessageRetentionPeriod": { "Default": 1209600, "Type": "Number" }, "DelaySeconds": { "Default": 0, "Type": "Number" }, "MaxReceiveCount": { "Default": 10, "Type": "Number" }, "MessageRetentionPeriod": { "Default": 1209600, "Type": "Number" }, "Stage": { "Type": "String" }, "VisibilityTimeout": { "Default": 30, "Type": "Number" } }, "Conditions": { "IsDevelopment": {"Fn::Not": [{"Fn::Equals": ["production", {"Ref": "Stage"}]}]}, "IsProduction": {"Fn::Equals": ["production", {"Ref": "Stage"}]} }, "Mappings": {}, "Outputs": { "DeadLetterQueueArn": { "Value": {"Fn::GetAtt": ["DeadLetterQueue", "Arn"]} }, "DeadLetterQueueUrl": { "Value": {"Ref": "DeadLetterQueue"} }, "QueueArn": { "Value": {"Fn::If": [ "IsProduction", {"Fn::GetAtt": ["Queue", "Arn"]}, {"Fn::GetAtt": ["DevelopmentQueue", "Arn"]} ]} }, "QueueUrl": { "Value": {"Fn::If": [ "IsProduction", {"Ref": "Queue"}, {"Ref": "DevelopmentQueue"} ]} } }, "Resources": { "DeadLetterQueue": { "Type": "AWS::SQS::Queue", "DeletionPolicy": "Retain", "Properties": { "MessageRetentionPeriod": {"Ref": "DeadMessageRetentionPeriod"} } }, "DevelopmentQueue": { "Type": "AWS::SQS::Queue", "Condition": "IsDevelopment", "DeletionPolicy": "Delete", "Properties": { "DelaySeconds": {"Ref": "DelaySeconds"}, "MessageRetentionPeriod": {"Ref": "MessageRetentionPeriod"}, "RedrivePolicy": { "deadLetterTargetArn": {"Fn::GetAtt": ["DeadLetterQueue", "Arn"]}, "maxReceiveCount": {"Ref": "MaxReceiveCount"} }, "VisibilityTimeout": {"Ref": "VisibilityTimeout"} } }, "Queue": { "Type": "AWS::SQS::Queue", "Condition": "IsProduction", "DeletionPolicy": "Retain", "Properties": { "DelaySeconds": {"Ref": "DelaySeconds"}, "MessageRetentionPeriod": {"Ref": "MessageRetentionPeriod"}, "RedrivePolicy": { "deadLetterTargetArn": {"Fn::GetAtt": ["DeadLetterQueue", "Arn"]}, "maxReceiveCount": {"Ref": "MaxReceiveCount"} }, "VisibilityTimeout": {"Ref": "VisibilityTimeout"} } } } }