Skip to content

Commit 51a56b3

Browse files
author
AWS
committed
Synthetics Update: This release introduces two features. The first is tag replication, which allows for the propagation of canary tags onto Synthetics related resources, such as Lambda functions. The second is a limit increase in canary name length, which has now been increased from 21 to 255 characters.
1 parent 21eb2f3 commit 51a56b3

File tree

3 files changed

+49
-27
lines changed

3 files changed

+49
-27
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "Synthetics",
4+
"contributor": "",
5+
"description": "This release introduces two features. The first is tag replication, which allows for the propagation of canary tags onto Synthetics related resources, such as Lambda functions. The second is a limit increase in canary name length, which has now been increased from 21 to 255 characters."
6+
}

services/synthetics/src/main/resources/codegen-resources/endpoint-rule-set.json

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
]
4141
}
4242
],
43-
"type": "tree",
4443
"rules": [
4544
{
4645
"conditions": [
@@ -83,7 +82,8 @@
8382
},
8483
"type": "endpoint"
8584
}
86-
]
85+
],
86+
"type": "tree"
8787
},
8888
{
8989
"conditions": [
@@ -96,7 +96,6 @@
9696
]
9797
}
9898
],
99-
"type": "tree",
10099
"rules": [
101100
{
102101
"conditions": [
@@ -110,7 +109,6 @@
110109
"assign": "PartitionResult"
111110
}
112111
],
113-
"type": "tree",
114112
"rules": [
115113
{
116114
"conditions": [
@@ -133,7 +131,6 @@
133131
]
134132
}
135133
],
136-
"type": "tree",
137134
"rules": [
138135
{
139136
"conditions": [
@@ -168,7 +165,6 @@
168165
]
169166
}
170167
],
171-
"type": "tree",
172168
"rules": [
173169
{
174170
"conditions": [],
@@ -179,14 +175,16 @@
179175
},
180176
"type": "endpoint"
181177
}
182-
]
178+
],
179+
"type": "tree"
183180
},
184181
{
185182
"conditions": [],
186183
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
187184
"type": "error"
188185
}
189-
]
186+
],
187+
"type": "tree"
190188
},
191189
{
192190
"conditions": [
@@ -200,14 +198,12 @@
200198
]
201199
}
202200
],
203-
"type": "tree",
204201
"rules": [
205202
{
206203
"conditions": [
207204
{
208205
"fn": "booleanEquals",
209206
"argv": [
210-
true,
211207
{
212208
"fn": "getAttr",
213209
"argv": [
@@ -216,11 +212,11 @@
216212
},
217213
"supportsFIPS"
218214
]
219-
}
215+
},
216+
true
220217
]
221218
}
222219
],
223-
"type": "tree",
224220
"rules": [
225221
{
226222
"conditions": [],
@@ -231,14 +227,16 @@
231227
},
232228
"type": "endpoint"
233229
}
234-
]
230+
],
231+
"type": "tree"
235232
},
236233
{
237234
"conditions": [],
238235
"error": "FIPS is enabled but this partition does not support FIPS",
239236
"type": "error"
240237
}
241-
]
238+
],
239+
"type": "tree"
242240
},
243241
{
244242
"conditions": [
@@ -252,7 +250,6 @@
252250
]
253251
}
254252
],
255-
"type": "tree",
256253
"rules": [
257254
{
258255
"conditions": [
@@ -272,7 +269,6 @@
272269
]
273270
}
274271
],
275-
"type": "tree",
276272
"rules": [
277273
{
278274
"conditions": [],
@@ -283,14 +279,16 @@
283279
},
284280
"type": "endpoint"
285281
}
286-
]
282+
],
283+
"type": "tree"
287284
},
288285
{
289286
"conditions": [],
290287
"error": "DualStack is enabled but this partition does not support DualStack",
291288
"type": "error"
292289
}
293-
]
290+
],
291+
"type": "tree"
294292
},
295293
{
296294
"conditions": [],
@@ -301,9 +299,11 @@
301299
},
302300
"type": "endpoint"
303301
}
304-
]
302+
],
303+
"type": "tree"
305304
}
306-
]
305+
],
306+
"type": "tree"
307307
},
308308
{
309309
"conditions": [],

services/synthetics/src/main/resources/codegen-resources/service-2.json

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
"endpointPrefix":"synthetics",
66
"jsonVersion":"1.1",
77
"protocol":"rest-json",
8+
"protocols":["rest-json"],
89
"serviceAbbreviation":"Synthetics",
910
"serviceFullName":"Synthetics",
1011
"serviceId":"synthetics",
1112
"signatureVersion":"v4",
1213
"signingName":"synthetics",
13-
"uid":"synthetics-2017-10-11"
14+
"uid":"synthetics-2017-10-11",
15+
"auth":["aws.auth#sigv4"]
1416
},
1517
"operations":{
1618
"AssociateResource":{
@@ -75,7 +77,7 @@
7577
{"shape":"ResourceNotFoundException"},
7678
{"shape":"ConflictException"}
7779
],
78-
"documentation":"<p>Permanently deletes the specified canary.</p> <p>If you specify <code>DeleteLambda</code> to <code>true</code>, CloudWatch Synthetics also deletes the Lambda functions and layers that are used by the canary.</p> <p>Other resources used and created by the canary are not automatically deleted. After you delete a canary that you do not intend to use again, you should also delete the following:</p> <ul> <li> <p>The CloudWatch alarms created for this canary. These alarms have a name of <code>Synthetics-SharpDrop-Alarm-<i>MyCanaryName</i> </code>.</p> </li> <li> <p>Amazon S3 objects and buckets, such as the canary's artifact location.</p> </li> <li> <p>IAM roles created for the canary. If they were created in the console, these roles have the name <code> role/service-role/CloudWatchSyntheticsRole-<i>MyCanaryName</i> </code>.</p> </li> <li> <p>CloudWatch Logs log groups created for the canary. These logs groups have the name <code>/aws/lambda/cwsyn-<i>MyCanaryName</i> </code>. </p> </li> </ul> <p>Before you delete a canary, you might want to use <code>GetCanary</code> to display the information about this canary. Make note of the information returned by this operation so that you can delete these resources after you delete the canary.</p>"
80+
"documentation":"<p>Permanently deletes the specified canary.</p> <p>If you specify <code>DeleteLambda</code> to <code>true</code>, CloudWatch Synthetics also deletes the Lambda functions and layers that are used by the canary.</p> <p>Other resources used and created by the canary are not automatically deleted. After you delete a canary that you do not intend to use again, you should also delete the following:</p> <ul> <li> <p>The CloudWatch alarms created for this canary. These alarms have a name of <code>Synthetics-Alarm-<i>first-198-characters-of-canary-name</i>-<i>canaryId</i>-<i>alarm number</i> </code> </p> </li> <li> <p>Amazon S3 objects and buckets, such as the canary's artifact location.</p> </li> <li> <p>IAM roles created for the canary. If they were created in the console, these roles have the name <code> role/service-role/CloudWatchSyntheticsRole-<i>First-21-Characters-of-CanaryName</i> </code> </p> </li> <li> <p>CloudWatch Logs log groups created for the canary. These logs groups have the name <code>/aws/lambda/cwsyn-<i>First-21-Characters-of-CanaryName</i> </code> </p> </li> </ul> <p>Before you delete a canary, you might want to use <code>GetCanary</code> to display the information about this canary. Make note of the information returned by this operation so that you can delete these resources after you delete the canary.</p>"
7981
},
8082
"DeleteGroup":{
8183
"name":"DeleteGroup",
@@ -507,7 +509,7 @@
507509
"type":"string",
508510
"max":2048,
509511
"min":1,
510-
"pattern":"arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:canary:[0-9a-z_\\-]{1,21}"
512+
"pattern":"arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:canary:[0-9a-z_\\-]{1,255}"
511513
},
512514
"CanaryCodeInput":{
513515
"type":"structure",
@@ -534,7 +536,7 @@
534536
"documentation":"<p>The entry point to use for the source code when running the canary. For canaries that use the <code>syn-python-selenium-1.0</code> runtime or a <code>syn-nodejs.puppeteer</code> runtime earlier than <code>syn-nodejs.puppeteer-3.4</code>, the handler must be specified as <code> <i>fileName</i>.handler</code>. For <code>syn-python-selenium-1.1</code>, <code>syn-nodejs.puppeteer-3.4</code>, and later runtimes, the handler can be specified as <code> <i>fileName</i>.<i>functionName</i> </code>, or you can specify a folder where canary scripts reside as <code> <i>folder</i>/<i>fileName</i>.<i>functionName</i> </code>.</p>"
535537
}
536538
},
537-
"documentation":"<p>Use this structure to input your script code for the canary. This structure contains the Lambda handler with the location where the canary should start running the script. If the script is stored in an S3 bucket, the bucket name, key, and version are also included. If the script was passed into the canary directly, the script code is contained in the value of <code>Zipfile</code>. </p>"
539+
"documentation":"<p>Use this structure to input your script code for the canary. This structure contains the Lambda handler with the location where the canary should start running the script. If the script is stored in an S3 bucket, the bucket name, key, and version are also included. If the script was passed into the canary directly, the script code is contained in the value of <code>Zipfile</code>. </p> <p>If you are uploading your canary scripts with an Amazon S3 bucket, your zip file should include your script in a certain folder structure.</p> <ul> <li> <p>For Node.js canaries, the folder structure must be <code>nodejs/node_modules/<i>myCanaryFilename.js</i> </code> For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_WritingCanary_Nodejs.html#CloudWatch_Synthetics_Canaries_package\">Packaging your Node.js canary files</a> </p> </li> <li> <p>For Python canaries, the folder structure must be <code>python/<i>myCanaryFilename.p</i> </code> or <code>python/<i>myFolder/myCanaryFilename.py</i> </code> For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_WritingCanary_Python.html#CloudWatch_Synthetics_Canaries_WritingCanary_Python_package\">Packaging your Python canary files</a> </p> </li> </ul>"
538540
},
539541
"CanaryCodeOutput":{
540542
"type":"structure",
@@ -566,7 +568,7 @@
566568
},
567569
"CanaryName":{
568570
"type":"string",
569-
"max":21,
571+
"max":255,
570572
"min":1,
571573
"pattern":"^[0-9a-z_\\-]+$"
572574
},
@@ -853,9 +855,13 @@
853855
"shape":"VpcConfigInput",
854856
"documentation":"<p>If this canary is to test an endpoint in a VPC, this structure contains information about the subnet and security groups of the VPC endpoint. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html\"> Running a Canary in a VPC</a>.</p>"
855857
},
858+
"ResourcesToReplicateTags":{
859+
"shape":"ResourceList",
860+
"documentation":"<p>To have the tags that you apply to this canary also be applied to the Lambda function that the canary uses, specify this parameter with the value <code>lambda-function</code>.</p> <p>If you specify this parameter and don't specify any tags in the <code>Tags</code> parameter, the canary creation fails.</p>"
861+
},
856862
"Tags":{
857863
"shape":"TagMap",
858-
"documentation":"<p>A list of key-value pairs to associate with the canary. You can associate as many as 50 tags with a canary.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only the resources that have certain tag values.</p>"
864+
"documentation":"<p>A list of key-value pairs to associate with the canary. You can associate as many as 50 tags with a canary.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only the resources that have certain tag values.</p> <p>To have the tags that you apply to this canary also be applied to the Lambda function that the canary uses, specify this parameter with the value <code>lambda-function</code>.</p>"
859865
},
860866
"ArtifactConfig":{
861867
"shape":"ArtifactConfigInput",
@@ -986,7 +992,7 @@
986992
},
987993
"MaxResults":{
988994
"shape":"MaxCanaryResults",
989-
"documentation":"<p>Specify this parameter to limit how many canaries are returned each time you use the <code>DescribeCanaries</code> operation. If you omit this parameter, the default of 100 is used.</p>"
995+
"documentation":"<p>Specify this parameter to limit how many canaries are returned each time you use the <code>DescribeCanaries</code> operation. If you omit this parameter, the default of 20 is used.</p>"
990996
},
991997
"Names":{
992998
"shape":"DescribeCanariesNameFilter",
@@ -1427,6 +1433,12 @@
14271433
"min":1,
14281434
"pattern":"arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:(canary|group):[0-9a-z_\\-]+"
14291435
},
1436+
"ResourceList":{
1437+
"type":"list",
1438+
"member":{"shape":"ResourceToTag"},
1439+
"max":1,
1440+
"min":1
1441+
},
14301442
"ResourceNotFoundException":{
14311443
"type":"structure",
14321444
"members":{
@@ -1436,6 +1448,10 @@
14361448
"error":{"httpStatusCode":404},
14371449
"exception":true
14381450
},
1451+
"ResourceToTag":{
1452+
"type":"string",
1453+
"enum":["lambda-function"]
1454+
},
14391455
"RoleArn":{
14401456
"type":"string",
14411457
"max":2048,

0 commit comments

Comments
 (0)