-
Notifications
You must be signed in to change notification settings - Fork 1
/
localstack.tf
112 lines (96 loc) · 3.11 KB
/
localstack.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# Pin version if Terraform releases an aws providor that
# breaks on localstack - but this should only ever be temporary
#terraform {
# required_providers {
# aws = "<= 3.18.0"
# }
#}
provider "aws" {
region = "us-west-2"
access_key = "fake"
secret_key = "fake"
skip_credentials_validation = true
skip_metadata_api_check = true
skip_requesting_account_id = true
endpoints {
apigateway = "http://localstack:4566"
cloudformation = "http://localstack:4566"
cloudwatch = "http://localstack:4566"
dynamodb = "http://localstack:4566"
es = "http://localstack:4566"
firehose = "http://localstack:4566"
iam = "http://localstack:4566"
kinesis = "http://localstack:4566"
lambda = "http://localstack:4566"
route53 = "http://localstack:4566"
redshift = "http://localstack:4566"
s3 = "http://localstack:4566"
secretsmanager = "http://localstack:4566"
ses = "http://localstack:4566"
sns = "http://localstack:4566"
sqs = "http://localstack:4566"
ssm = "http://localstack:4566"
stepfunctions = "http://localstack:4566"
sts = "http://localstack:4566"
}
}
resource "aws_sns_topic" "sns-ecom-events" {
name = "ecom-events-sandbox"
}
resource "aws_sns_topic_subscription" "ecom-events-payments-target" {
topic_arn = aws_sns_topic.sns-ecom-events.arn
protocol = "sqs"
endpoint = aws_sqs_queue.extraction-payments-events.arn
filter_policy = <<EOF
{
"event_name": ["account-created"]
}
EOF
}
resource "aws_sns_topic_subscription" "ecom-events-payments-target-delay" {
topic_arn = aws_sns_topic.sns-ecom-events.arn
protocol = "sqs"
endpoint = aws_sqs_queue.extraction-payments-events-delay.arn
filter_policy = <<EOF
{
"event_name": ["rebilly-pm-added"]
}
EOF
}
resource "aws_sns_topic_subscription" "ecom-events-fraud-target" {
topic_arn = aws_sns_topic.sns-ecom-events.arn
protocol = "sqs"
endpoint = aws_sqs_queue.extraction-fraud-events.arn
filter_policy = <<EOF
{
"event_name": ["watchlist-manual-review"]
}
EOF
}
resource "aws_sns_topic_subscription" "ecom-events-payout-target" {
topic_arn = aws_sns_topic.sns-ecom-events.arn
protocol = "sqs"
endpoint = aws_sqs_queue.extraction-payout-events.arn
filter_policy = <<EOF
{
"event_name": ["payout-invoice-completed"]
}
EOF
}
resource "aws_sqs_queue" "extraction-payments-events" {
name = "extraction-payments-events"
receive_wait_time_seconds = 20
}
resource "aws_sqs_queue" "extraction-fraud-events" {
name = "extraction-fraud-events"
receive_wait_time_seconds = 20
}
resource "aws_sqs_queue" "extraction-payout-events" {
name = "extraction-payout-events"
receive_wait_time_seconds = 20
}
resource "aws_sqs_queue" "extraction-payments-events-delay" {
name = "extraction-payments-events-delay"
delay_seconds = 1
receive_wait_time_seconds = 20
}