1
+ {
2
+ "Resources" : {
3
+ "Stream790BDEE4" : {
4
+ "Type" : " AWS::Kinesis::Stream" ,
5
+ "Properties" : {
6
+ "RetentionPeriodHours" : 24 ,
7
+ "ShardCount" : 1 ,
8
+ "StreamEncryption" : {
9
+ "Fn::If" : [
10
+ " AwsCdkKinesisEncryptedStreamsUnsupportedRegions" ,
11
+ {
12
+ "Ref" : " AWS::NoValue"
13
+ },
14
+ {
15
+ "EncryptionType" : " KMS" ,
16
+ "KeyId" : " alias/aws/kinesis"
17
+ }
18
+ ]
19
+ }
20
+ }
21
+ },
22
+ "Resource" : {
23
+ "Type" : " AWS::DynamoDB::GlobalTable" ,
24
+ "Properties" : {
25
+ "AttributeDefinitions" : [
26
+ {
27
+ "AttributeName" : " pk" ,
28
+ "AttributeType" : " S"
29
+ },
30
+ {
31
+ "AttributeName" : " sk" ,
32
+ "AttributeType" : " N"
33
+ }
34
+ ],
35
+ "BillingMode" : " PROVISIONED" ,
36
+ "GlobalSecondaryIndexes" : [
37
+ {
38
+ "IndexName" : " gsi1" ,
39
+ "KeySchema" : [
40
+ {
41
+ "AttributeName" : " pk" ,
42
+ "KeyType" : " HASH"
43
+ }
44
+ ],
45
+ "Projection" : {
46
+ "ProjectionType" : " ALL"
47
+ },
48
+ "WriteProvisionedThroughputSettings" : {
49
+ "WriteCapacityAutoScalingSettings" : {
50
+ "MaxCapacity" : 20 ,
51
+ "MinCapacity" : 1 ,
52
+ "TargetTrackingScalingPolicyConfiguration" : {
53
+ "TargetValue" : 60
54
+ }
55
+ }
56
+ }
57
+ },
58
+ {
59
+ "IndexName" : " gsi2" ,
60
+ "KeySchema" : [
61
+ {
62
+ "AttributeName" : " pk" ,
63
+ "KeyType" : " HASH"
64
+ }
65
+ ],
66
+ "Projection" : {
67
+ "ProjectionType" : " ALL"
68
+ },
69
+ "WriteProvisionedThroughputSettings" : {
70
+ "WriteCapacityAutoScalingSettings" : {
71
+ "MaxCapacity" : 30 ,
72
+ "MinCapacity" : 1 ,
73
+ "TargetTrackingScalingPolicyConfiguration" : {
74
+ "TargetValue" : 70
75
+ }
76
+ }
77
+ }
78
+ }
79
+ ],
80
+ "KeySchema" : [
81
+ {
82
+ "AttributeName" : " pk" ,
83
+ "KeyType" : " HASH"
84
+ },
85
+ {
86
+ "AttributeName" : " sk" ,
87
+ "KeyType" : " RANGE"
88
+ }
89
+ ],
90
+ "LocalSecondaryIndexes" : [
91
+ {
92
+ "IndexName" : " lsi" ,
93
+ "KeySchema" : [
94
+ {
95
+ "AttributeName" : " pk" ,
96
+ "KeyType" : " HASH"
97
+ },
98
+ {
99
+ "AttributeName" : " sk" ,
100
+ "KeyType" : " RANGE"
101
+ }
102
+ ],
103
+ "Projection" : {
104
+ "ProjectionType" : " ALL"
105
+ }
106
+ }
107
+ ],
108
+ "Replicas" : [
109
+ {
110
+ "ContributorInsightsSpecification" : {
111
+ "Enabled" : true
112
+ },
113
+ "GlobalSecondaryIndexes" : [
114
+ {
115
+ "ContributorInsightsSpecification" : {
116
+ "Enabled" : true
117
+ },
118
+ "IndexName" : " gsi1" ,
119
+ "ReadProvisionedThroughputSettings" : {
120
+ "ReadCapacityUnits" : 10
121
+ }
122
+ },
123
+ {
124
+ "ContributorInsightsSpecification" : {
125
+ "Enabled" : false
126
+ },
127
+ "IndexName" : " gsi2" ,
128
+ "ReadProvisionedThroughputSettings" : {
129
+ "ReadCapacityUnits" : 10
130
+ }
131
+ }
132
+ ],
133
+ "PointInTimeRecoverySpecification" : {
134
+ "PointInTimeRecoveryEnabled" : true
135
+ },
136
+ "ReadProvisionedThroughputSettings" : {
137
+ "ReadCapacityAutoScalingSettings" : {
138
+ "MaxCapacity" : 25 ,
139
+ "MinCapacity" : 5 ,
140
+ "TargetTrackingScalingPolicyConfiguration" : {
141
+ "TargetValue" : 70
142
+ }
143
+ }
144
+ },
145
+ "Region" : " us-east-2" ,
146
+ "TableClass" : " STANDARD_INFREQUENT_ACCESS"
147
+ },
148
+ {
149
+ "ContributorInsightsSpecification" : {
150
+ "Enabled" : false
151
+ },
152
+ "GlobalSecondaryIndexes" : [
153
+ {
154
+ "IndexName" : " gsi1" ,
155
+ "ReadProvisionedThroughputSettings" : {
156
+ "ReadCapacityUnits" : 15
157
+ }
158
+ },
159
+ {
160
+ "ContributorInsightsSpecification" : {
161
+ "Enabled" : true
162
+ },
163
+ "IndexName" : " gsi2" ,
164
+ "ReadProvisionedThroughputSettings" : {
165
+ "ReadCapacityUnits" : 10
166
+ }
167
+ }
168
+ ],
169
+ "PointInTimeRecoverySpecification" : {
170
+ "PointInTimeRecoveryEnabled" : true
171
+ },
172
+ "ReadProvisionedThroughputSettings" : {
173
+ "ReadCapacityUnits" : 10
174
+ },
175
+ "Region" : " us-west-2" ,
176
+ "TableClass" : " STANDARD"
177
+ },
178
+ {
179
+ "ContributorInsightsSpecification" : {
180
+ "Enabled" : true
181
+ },
182
+ "GlobalSecondaryIndexes" : [
183
+ {
184
+ "ContributorInsightsSpecification" : {
185
+ "Enabled" : true
186
+ },
187
+ "IndexName" : " gsi1" ,
188
+ "ReadProvisionedThroughputSettings" : {
189
+ "ReadCapacityUnits" : 10
190
+ }
191
+ },
192
+ {
193
+ "ContributorInsightsSpecification" : {
194
+ "Enabled" : true
195
+ },
196
+ "IndexName" : " gsi2" ,
197
+ "ReadProvisionedThroughputSettings" : {
198
+ "ReadCapacityUnits" : 10
199
+ }
200
+ }
201
+ ],
202
+ "KinesisStreamSpecification" : {
203
+ "StreamArn" : {
204
+ "Fn::GetAtt" : [
205
+ " Stream790BDEE4" ,
206
+ " Arn"
207
+ ]
208
+ }
209
+ },
210
+ "PointInTimeRecoverySpecification" : {
211
+ "PointInTimeRecoveryEnabled" : true
212
+ },
213
+ "ReadProvisionedThroughputSettings" : {
214
+ "ReadCapacityUnits" : 10
215
+ },
216
+ "Region" : " us-east-1" ,
217
+ "TableClass" : " STANDARD_INFREQUENT_ACCESS"
218
+ }
219
+ ],
220
+ "SSESpecification" : {
221
+ "SSEEnabled" : true ,
222
+ "SSEType" : " KMS"
223
+ },
224
+ "StreamSpecification" : {
225
+ "StreamViewType" : " NEW_AND_OLD_IMAGES"
226
+ },
227
+ "TableName" : " my-global-table" ,
228
+ "TimeToLiveSpecification" : {
229
+ "AttributeName" : " attr" ,
230
+ "Enabled" : true
231
+ },
232
+ "WriteProvisionedThroughputSettings" : {
233
+ "WriteCapacityAutoScalingSettings" : {
234
+ "MaxCapacity" : 20 ,
235
+ "MinCapacity" : 1 ,
236
+ "TargetTrackingScalingPolicyConfiguration" : {
237
+ "TargetValue" : 60
238
+ }
239
+ }
240
+ }
241
+ },
242
+ "UpdateReplacePolicy" : " Delete" ,
243
+ "DeletionPolicy" : " Delete"
244
+ }
245
+ },
246
+ "Conditions" : {
247
+ "AwsCdkKinesisEncryptedStreamsUnsupportedRegions" : {
248
+ "Fn::Or" : [
249
+ {
250
+ "Fn::Equals" : [
251
+ {
252
+ "Ref" : " AWS::Region"
253
+ },
254
+ " cn-north-1"
255
+ ]
256
+ },
257
+ {
258
+ "Fn::Equals" : [
259
+ {
260
+ "Ref" : " AWS::Region"
261
+ },
262
+ " cn-northwest-1"
263
+ ]
264
+ }
265
+ ]
266
+ }
267
+ },
268
+ "Parameters" : {
269
+ "BootstrapVersion" : {
270
+ "Type" : " AWS::SSM::Parameter::Value<String>" ,
271
+ "Default" : " /cdk-bootstrap/hnb659fds/version" ,
272
+ "Description" : " Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
273
+ }
274
+ },
275
+ "Rules" : {
276
+ "CheckBootstrapVersion" : {
277
+ "Assertions" : [
278
+ {
279
+ "Assert" : {
280
+ "Fn::Not" : [
281
+ {
282
+ "Fn::Contains" : [
283
+ [
284
+ " 1" ,
285
+ " 2" ,
286
+ " 3" ,
287
+ " 4" ,
288
+ " 5"
289
+ ],
290
+ {
291
+ "Ref" : " BootstrapVersion"
292
+ }
293
+ ]
294
+ }
295
+ ]
296
+ },
297
+ "AssertDescription" : " CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
298
+ }
299
+ ]
300
+ }
301
+ }
302
+ }
0 commit comments