Skip to content

Commit e688393

Browse files
author
AWS
committed
Synthetics Update: Added multi browser support for synthetics canaries, Increased ephemeral storage limit from 5GB to 10GB
1 parent 95b5bfb commit e688393

File tree

3 files changed

+109
-46
lines changed

3 files changed

+109
-46
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": "Added multi browser support for synthetics canaries, Increased ephemeral storage limit from 5GB to 10GB"
6+
}

services/synthetics/src/main/resources/codegen-resources/endpoint-tests.json

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -520,17 +520,6 @@
520520
"UseDualStack": false
521521
}
522522
},
523-
{
524-
"documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled",
525-
"expect": {
526-
"error": "FIPS and DualStack are enabled, but this partition does not support one or both"
527-
},
528-
"params": {
529-
"Region": "us-iso-east-1",
530-
"UseFIPS": true,
531-
"UseDualStack": true
532-
}
533-
},
534523
{
535524
"documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled",
536525
"expect": {
@@ -544,17 +533,6 @@
544533
"UseDualStack": false
545534
}
546535
},
547-
{
548-
"documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled",
549-
"expect": {
550-
"error": "DualStack is enabled but this partition does not support DualStack"
551-
},
552-
"params": {
553-
"Region": "us-iso-east-1",
554-
"UseFIPS": false,
555-
"UseDualStack": true
556-
}
557-
},
558536
{
559537
"documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled",
560538
"expect": {
@@ -568,17 +546,6 @@
568546
"UseDualStack": false
569547
}
570548
},
571-
{
572-
"documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled",
573-
"expect": {
574-
"error": "FIPS and DualStack are enabled, but this partition does not support one or both"
575-
},
576-
"params": {
577-
"Region": "us-isob-east-1",
578-
"UseFIPS": true,
579-
"UseDualStack": true
580-
}
581-
},
582549
{
583550
"documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled",
584551
"expect": {
@@ -592,17 +559,6 @@
592559
"UseDualStack": false
593560
}
594561
},
595-
{
596-
"documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled",
597-
"expect": {
598-
"error": "DualStack is enabled but this partition does not support DualStack"
599-
},
600-
"params": {
601-
"Region": "us-isob-east-1",
602-
"UseFIPS": false,
603-
"UseDualStack": true
604-
}
605-
},
606562
{
607563
"documentation": "For custom endpoint with region set and fips disabled and dualstack disabled",
608564
"expect": {

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

Lines changed: 103 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@
359359
{"shape":"RequestEntityTooLargeException"},
360360
{"shape":"AccessDeniedException"}
361361
],
362-
"documentation":"<p>Updates the configuration of a canary that has already been created.</p> <p>You can't use this operation to update the tags of an existing canary. To change the tags of an existing canary, use <a href=\"https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_TagResource.html\">TagResource</a>.</p> <note> <p>When you use the <code>dryRunId</code> field when updating a canary, the only other field you can provide is the <code>Schedule</code>. Adding any other field will thrown an exception.</p> </note>"
362+
"documentation":"<p>Updates the configuration of a canary that has already been created.</p> <p>For multibrowser canaries, you can add or remove browsers by updating the browserConfig list in the update call. For example:</p> <ul> <li> <p>To add Firefox to a canary that currently uses Chrome, specify browserConfigs as [CHROME, FIREFOX]</p> </li> <li> <p>To remove Firefox and keep only Chrome, specify browserConfigs as [CHROME]</p> </li> </ul> <p>You can't use this operation to update the tags of an existing canary. To change the tags of an existing canary, use <a href=\"https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_TagResource.html\">TagResource</a>.</p> <note> <p>When you use the <code>dryRunId</code> field when updating a canary, the only other field you can provide is the <code>Schedule</code>. Adding any other field will thrown an exception.</p> </note>"
363363
}
364364
},
365365
"shapes":{
@@ -458,6 +458,29 @@
458458
"max":10000000,
459459
"min":1
460460
},
461+
"BrowserConfig":{
462+
"type":"structure",
463+
"members":{
464+
"BrowserType":{
465+
"shape":"BrowserType",
466+
"documentation":"<p>The browser type associated with this browser configuration.</p>"
467+
}
468+
},
469+
"documentation":"<p>A structure that specifies the browser type to use for a canary run.</p>"
470+
},
471+
"BrowserConfigs":{
472+
"type":"list",
473+
"member":{"shape":"BrowserConfig"},
474+
"max":2,
475+
"min":1
476+
},
477+
"BrowserType":{
478+
"type":"string",
479+
"enum":[
480+
"CHROME",
481+
"FIREFOX"
482+
]
483+
},
461484
"Canaries":{
462485
"type":"list",
463486
"member":{"shape":"Canary"}
@@ -524,6 +547,18 @@
524547
"shape":"ProvisionedResourceCleanupSetting",
525548
"documentation":"<p>Specifies whether to also delete the Lambda functions and layers used by this canary when the canary is deleted. If it is <code>AUTOMATIC</code>, the Lambda functions and layers will be deleted when the canary is deleted.</p> <p>If the value of this parameter is <code>OFF</code>, then the value of the <code>DeleteLambda</code> parameter of the <a href=\"https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DeleteCanary.html\">DeleteCanary</a> operation determines whether the Lambda functions and layers will be deleted.</p>"
526549
},
550+
"BrowserConfigs":{
551+
"shape":"BrowserConfigs",
552+
"documentation":"<p>A structure that specifies the browser type to use for a canary run. CloudWatch Synthetics supports running canaries on both <code>CHROME</code> and <code>FIREFOX</code> browsers.</p> <note> <p>If not specified, <code>browserConfigs</code> defaults to Chrome.</p> </note>"
553+
},
554+
"EngineConfigs":{
555+
"shape":"EngineConfigs",
556+
"documentation":"<p>A list of engine configurations for the canary, one for each browser type that the canary is configured to run on.</p> <p>All runtime versions <code>syn-nodejs-puppeteer-11.0</code> and above, and <code>syn-nodejs-playwright-3.0</code> and above, use <code>engineConfigs</code> only. You can no longer use <code>engineArn</code> in these versions.</p> <p>Runtime versions older than <code>syn-nodejs-puppeteer-11.0</code> and <code>syn-nodejs-playwright-3.0</code> continue to support <code>engineArn</code> to ensure backward compatibility.</p>"
557+
},
558+
"VisualReferences":{
559+
"shape":"VisualReferencesOutput",
560+
"documentation":"<p>A list of visual reference configurations for the canary, one for each browser type that the canary is configured to run on. Visual references are used for visual monitoring comparisons.</p> <p> <code>syn-nodejs-puppeteer-11.0</code> and above, and <code>syn-nodejs-playwright-3.0</code> and above, only supports <code>visualReferences</code>. <code>visualReference</code> field is not supported.</p> <p>Versions older than <code>syn-nodejs-puppeteer-11.0</code> supports both <code>visualReference</code> and <code>visualReferences</code> for backward compatibility. It is recommended to use <code>visualReferences</code> for consistency and future compatibility.</p>"
561+
},
527562
"Tags":{
528563
"shape":"TagMap",
529564
"documentation":"<p>The list of key-value pairs that are associated with the canary.</p>"
@@ -658,6 +693,10 @@
658693
"DryRunConfig":{
659694
"shape":"CanaryDryRunConfigOutput",
660695
"documentation":"<p>Returns the dry run configurations for a canary.</p>"
696+
},
697+
"BrowserType":{
698+
"shape":"BrowserType",
699+
"documentation":"<p>The browser type associated with this canary run.</p>"
661700
}
662701
},
663702
"documentation":"<p>This structure contains the details about one run of one canary.</p>"
@@ -959,6 +998,10 @@
959998
"shape":"ProvisionedResourceCleanupSetting",
960999
"documentation":"<p>Specifies whether to also delete the Lambda functions and layers used by this canary when the canary is deleted. If you omit this parameter, the default of <code>AUTOMATIC</code> is used, which means that the Lambda functions and layers will be deleted when the canary is deleted.</p> <p>If the value of this parameter is <code>OFF</code>, then the value of the <code>DeleteLambda</code> parameter of the <a href=\"https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DeleteCanary.html\">DeleteCanary</a> operation determines whether the Lambda functions and layers will be deleted.</p>"
9611000
},
1001+
"BrowserConfigs":{
1002+
"shape":"BrowserConfigs",
1003+
"documentation":"<p>CloudWatch Synthetics now supports multibrowser canaries for <code>syn-nodejs-puppeteer-11.0</code> and <code>syn-nodejs-playwright-3.0</code> runtimes. This feature allows you to run your canaries on both Firefox and Chrome browsers. To create a multibrowser canary, you need to specify the BrowserConfigs with a list of browsers you want to use.</p> <note> <p>If not specified, <code>browserConfigs</code> defaults to Chrome.</p> </note>"
1004+
},
9621005
"Tags":{
9631006
"shape":"TagMap",
9641007
"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>"
@@ -1084,6 +1127,10 @@
10841127
"Names":{
10851128
"shape":"DescribeCanariesLastRunNameFilter",
10861129
"documentation":"<p>Use this parameter to return only canaries that match the names that you specify here. You can specify as many as five canary names.</p> <p>If you specify this parameter, the operation is successful only if you have authorization to view all the canaries that you specify in your request. If you do not have permission to view any of the canaries, the request fails with a 403 response.</p> <p>You are required to use the <code>Names</code> parameter if you are logged on to a user or role that has an IAM policy that restricts which canaries that you are allowed to view. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Restricted.html\"> Limiting a user to viewing specific canaries</a>.</p>"
1130+
},
1131+
"BrowserType":{
1132+
"shape":"BrowserType",
1133+
"documentation":"<p>The type of browser to use for the canary run.</p>"
10871134
}
10881135
}
10891136
},
@@ -1206,6 +1253,24 @@
12061253
"SSE_KMS"
12071254
]
12081255
},
1256+
"EngineConfig":{
1257+
"type":"structure",
1258+
"members":{
1259+
"EngineArn":{
1260+
"shape":"FunctionArn",
1261+
"documentation":"<p>Each engine configuration contains the ARN of the Lambda function that is used as the canary's engine for a specific browser type. </p>"
1262+
},
1263+
"BrowserType":{
1264+
"shape":"BrowserType",
1265+
"documentation":"<p>The browser type associated with this engine configuration.</p>"
1266+
}
1267+
},
1268+
"documentation":"<p>A structure of engine configurations for the canary, one for each browser type that the canary is configured to run on.</p>"
1269+
},
1270+
"EngineConfigs":{
1271+
"type":"list",
1272+
"member":{"shape":"EngineConfig"}
1273+
},
12091274
"EnvironmentVariableName":{
12101275
"type":"string",
12111276
"pattern":"[a-zA-Z]([a-zA-Z0-9_])+"
@@ -1218,7 +1283,7 @@
12181283
},
12191284
"EphemeralStorageSize":{
12201285
"type":"integer",
1221-
"max":5120,
1286+
"max":10240,
12221287
"min":1024
12231288
},
12241289
"ErrorMessage":{"type":"string"},
@@ -1752,6 +1817,14 @@
17521817
"ProvisionedResourceCleanup":{
17531818
"shape":"ProvisionedResourceCleanupSetting",
17541819
"documentation":"<p>Specifies whether to also delete the Lambda functions and layers used by this canary when the canary is deleted. If you omit this parameter, the default of <code>AUTOMATIC</code> is used, which means that the Lambda functions and layers will be deleted when the canary is deleted.</p> <p>If the value of this parameter is <code>OFF</code>, then the value of the <code>DeleteLambda</code> parameter of the <a href=\"https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DeleteCanary.html\">DeleteCanary</a> operation determines whether the Lambda functions and layers will be deleted.</p>"
1820+
},
1821+
"BrowserConfigs":{
1822+
"shape":"BrowserConfigs",
1823+
"documentation":"<p>A structure that specifies the browser type to use for a canary run. CloudWatch Synthetics supports running canaries on both <code>CHROME</code> and <code>FIREFOX</code> browsers.</p> <note> <p>If not specified, <code>browserConfigs</code> defaults to Chrome.</p> </note>"
1824+
},
1825+
"VisualReferences":{
1826+
"shape":"VisualReferences",
1827+
"documentation":"<p>A list of visual reference configurations for the canary, one for each browser type that the canary is configured to run on. Visual references are used for visual monitoring comparisons.</p> <p> <code>syn-nodejs-puppeteer-11.0</code> and above, and <code>syn-nodejs-playwright-3.0</code> and above, only supports <code>visualReferences</code>. <code>visualReference</code> field is not supported.</p> <p>Versions older than <code>syn-nodejs-puppeteer-11.0</code> supports both <code>visualReference</code> and <code>visualReferences</code> for backward compatibility. It is recommended to use <code>visualReferences</code> for consistency and future compatibility.</p>"
17551828
}
17561829
}
17571830
},
@@ -1963,6 +2036,14 @@
19632036
"DryRunId":{
19642037
"shape":"UUID",
19652038
"documentation":"<p>Update the existing canary using the updated configurations from the DryRun associated with the DryRunId.</p> <note> <p>When you use the <code>dryRunId</code> field when updating a canary, the only other field you can provide is the <code>Schedule</code>. Adding any other field will thrown an exception.</p> </note>"
2039+
},
2040+
"VisualReferences":{
2041+
"shape":"VisualReferences",
2042+
"documentation":"<p>A list of visual reference configurations for the canary, one for each browser type that the canary is configured to run on. Visual references are used for visual monitoring comparisons.</p> <p> <code>syn-nodejs-puppeteer-11.0</code> and above, and <code>syn-nodejs-playwright-3.0</code> and above, only supports <code>visualReferences</code>. <code>visualReference</code> field is not supported.</p> <p>Versions older than <code>syn-nodejs-puppeteer-11.0</code> supports both <code>visualReference</code> and <code>visualReferences</code> for backward compatibility. It is recommended to use <code>visualReferences</code> for consistency and future compatibility.</p> <p>For multibrowser visual monitoring, you can update the baseline for all configured browsers in a single update call by specifying a list of VisualReference objects, one per browser. Each VisualReference object maps to a specific browser configuration, allowing you to manage visual baselines for multiple browsers simultaneously.</p> <p>For single configuration canaries using Chrome browser (default browser), use visualReferences for <code>syn-nodejs-puppeteer-11.0</code> and above, and <code>syn-nodejs-playwright-3.0</code> and above canaries. The browserType in the visualReference object is not mandatory.</p>"
2043+
},
2044+
"BrowserConfigs":{
2045+
"shape":"BrowserConfigs",
2046+
"documentation":"<p>A structure that specifies the browser type to use for a canary run. CloudWatch Synthetics supports running canaries on both <code>CHROME</code> and <code>FIREFOX</code> browsers.</p> <note> <p>If not specified, <code>browserConfigs</code> defaults to Chrome.</p> </note>"
19662047
}
19672048
}
19682049
},
@@ -1990,6 +2071,10 @@
19902071
"BaseCanaryRunId":{
19912072
"shape":"String",
19922073
"documentation":"<p>Specifies which canary run to use the screenshots from as the baseline for future visual monitoring with this canary. Valid values are <code>nextrun</code> to use the screenshots from the next run after this update is made, <code>lastrun</code> to use the screenshots from the most recent run before this update was made, or the value of <code>Id</code> in the <a href=\"https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_CanaryRun.html\"> CanaryRun</a> from a run of this a canary in the past 31 days. If you specify the <code>Id</code> of a canary run older than 31 days, the operation returns a 400 validation exception error..</p>"
2074+
},
2075+
"BrowserType":{
2076+
"shape":"BrowserType",
2077+
"documentation":"<p>The browser type associated with this visual reference.</p>"
19932078
}
19942079
},
19952080
"documentation":"<p>An object that specifies what screenshots to use as a baseline for visual monitoring by this canary. It can optionally also specify parts of the screenshots to ignore during the visual monitoring comparison.</p> <p>Visual monitoring is supported only on canaries running the <b>syn-puppeteer-node-3.2</b> runtime or later. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_SyntheticsLogger_VisualTesting.html\"> Visual monitoring</a> and <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Blueprints_VisualTesting.html\"> Visual monitoring blueprint</a> </p>"
@@ -2004,10 +2089,26 @@
20042089
"BaseCanaryRunId":{
20052090
"shape":"String",
20062091
"documentation":"<p>The ID of the canary run that produced the baseline screenshots that are used for visual monitoring comparisons by this canary.</p>"
2092+
},
2093+
"BrowserType":{
2094+
"shape":"BrowserType",
2095+
"documentation":"<p>The browser type associated with this visual reference.</p>"
20072096
}
20082097
},
20092098
"documentation":"<p>If this canary performs visual monitoring by comparing screenshots, this structure contains the ID of the canary run that is used as the baseline for screenshots, and the coordinates of any parts of those screenshots that are ignored during visual monitoring comparison.</p> <p>Visual monitoring is supported only on canaries running the <b>syn-puppeteer-node-3.2</b> runtime or later.</p>"
20102099
},
2100+
"VisualReferences":{
2101+
"type":"list",
2102+
"member":{"shape":"VisualReferenceInput"},
2103+
"max":2,
2104+
"min":1
2105+
},
2106+
"VisualReferencesOutput":{
2107+
"type":"list",
2108+
"member":{"shape":"VisualReferenceOutput"},
2109+
"max":2,
2110+
"min":1
2111+
},
20112112
"VpcConfigInput":{
20122113
"type":"structure",
20132114
"members":{

0 commit comments

Comments
 (0)