diff --git a/packages/aws-cdk-lib/aws-synthetics/lib/runtime.ts b/packages/aws-cdk-lib/aws-synthetics/lib/runtime.ts index dd988e6eb3ff1..9c4acfa496bfa 100644 --- a/packages/aws-cdk-lib/aws-synthetics/lib/runtime.ts +++ b/packages/aws-cdk-lib/aws-synthetics/lib/runtime.ts @@ -22,182 +22,6 @@ export enum RuntimeFamily { * Runtime options for a canary */ export class Runtime { - - /** - * `syn-1.0` includes the following: - * - Lambda runtime Node.js 10.x - * - Puppeteer-core version 1.14.0 - * - Chromium version that matches Puppeteer-core 1.14.0 - * - * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-1.0 - * @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime. - */ - public static readonly SYNTHETICS_NODEJS_PUPPETEER_1_0 = new Runtime('syn-1.0', RuntimeFamily.NODEJS); - - /** - * `syn-nodejs-2.0-beta` includes the following: - * - Lambda runtime Node.js 10.x - * - Puppeteer-core version 3.3.0 - * - Chromium version 83.0.4103.0 - * - * New features: - * - **Upgraded dependencies**: This runtime version uses Puppeteer-core version 3.3.0 and Chromium version 83.0.4103.0 - * - **Synthetics reporting**: For each canary run, CloudWatch Synthetics creates a report named SyntheticsReport-PASSED.json or SyntheticsReport-FAILED.json which records data such as start time, end time, status, and failures. It also records the PASSED/FAILED status of each step of the canary script, and failures and screenshots captured for each step. - * - **Broken link checker report**: The new version of the broken link checker included in this runtime creates a report that includes the links that were checked, status code, failure reason (if any), and source and destination page screenshots. - * - **New CloudWatch metrics**: Synthetics publishes metrics named 2xx, 4xx, 5xx, and RequestFailed in the CloudWatchSynthetics namespace. These metrics show the number of 200s, 400s, 500s, and request failures in the canary runs. These metrics are reported only for UI canaries, and are not reported for API canaries. - * - **Sortable HAR files**: You can now sort your HAR files by status code, request size, and duration. - * - **Metrics timestamp**: CloudWatch metrics are now reported based on the Lambda invocation time instead of the canary run end time. - * - * Bug fixes: - * - Fixed the issue of canary artifact upload errors not being reported. Such errors are now surfaced as execution errors. - * - Fixed the issue of redirected requests (3xx) being incorrectly logged as errors. - * - Fixed the issue of screenshots being numbered starting from 0. They should now start with 1. - * - Fixed the issue of screenshots being garbled for Chinese and Japanese fonts. - * - * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-2.0-beta - * @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime. - */ - public static readonly SYNTHETICS_NODEJS_PUPPETEER_2_0_BETA = new Runtime('syn-nodejs-2.0-beta', RuntimeFamily.NODEJS); - - /** - * `syn-nodejs-2.0` includes the following: - * - Lambda runtime Node.js 10.x - * - Puppeteer-core version 3.3.0 - * - Chromium version 83.0.4103.0 - * - * New features: - * - **Upgraded dependencies**: This runtime version uses Puppeteer-core version 3.3.0 and Chromium version 83.0.4103.0 - * - **Support for X-Ray active tracing**: When a canary has tracing enabled, X-Ray traces are sent for all calls made by the canary that use the browser, the AWS SDK, or HTTP or HTTPS modules. Canaries with tracing enabled appear on the X-Ray Trace Map, even when they don't send requests to other services or applications that have tracing enabled. For more information, see {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_tracing.html | Canaries and X-Ray tracing}. - * - **Synthetics reporting**: For each canary run, CloudWatch Synthetics creates a report named SyntheticsReport-PASSED.json or SyntheticsReport-FAILED.json which records data such as start time, end time, status, and failures. It also records the PASSED/FAILED status of each step of the canary script, and failures and screenshots captured for each step. - * - **Broken link checker report**: The new version of the broken link checker included in this runtime creates a report that includes the links that were checked, status code, failure reason (if any), and source and destination page screenshots. - * - **New CloudWatch metrics**: Synthetics publishes metrics named 2xx, 4xx, 5xx, and RequestFailed in the CloudWatchSynthetics namespace. These metrics show the number of 200s, 400s, 500s, and request failures in the canary runs. With this runtime version, these metrics are reported only for UI canaries, and are not reported for API canaries. They are also reported for API canaries starting with runtime version syn-nodejs-puppeteeer-2.2. - * - **Sortable HAR files**: You can now sort your HAR files by status code, request size, and duration. - * - **Metrics timestamp**: CloudWatch metrics are now reported based on the Lambda invocation time instead of the canary run end time. - * - * Bug fixes: - * - Fixed the issue of canary artifact upload errors not being reported. Such errors are now surfaced as execution errors. - * - Fixed the issue of redirected requests (3xx) being incorrectly logged as errors. - * - Fixed the issue of screenshots being numbered starting from 0. They should now start with 1. - * - Fixed the issue of screenshots being garbled for Chinese and Japanese fonts. - * - * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-2.0 - * @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime. - */ - public static readonly SYNTHETICS_NODEJS_PUPPETEER_2_0 = new Runtime('syn-nodejs-2.0', RuntimeFamily.NODEJS); - - /** - * `syn-nodejs-2.1` includes the following: - * - Lambda runtime Node.js 10.x - * - Puppeteer-core version 3.3.0 - * - Chromium version 83.0.4103.0 - * - * New features: - * - **Configurable screenshot behavior**: Provides the ability to turn off the capturing of screenshots by UI canaries. In canaries that use previous versions of the runtimes, UI canaries always capture screenshots before and after each step. With syn-nodejs-2.1, this is configurable. Turning off screenshots can reduce your Amazon S3 storage costs, and can help you comply with HIPAA regulations. For more information, see {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library_Nodejs.html#CloudWatch_Synthetics_Library_SyntheticsConfiguration | SyntheticsConfiguration class}. - * - **Customize the Google Chrome launch parameters**: You can now configure the arguments used when a canary launches a Google Chrome browser window. For more information, see {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library_Nodejs.html#CloudWatch_Synthetics_Library_LaunchOptions | launch(options)}. - * - * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-2.1 - * @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime. - */ - public static readonly SYNTHETICS_NODEJS_PUPPETEER_2_1 = new Runtime('syn-nodejs-2.1', RuntimeFamily.NODEJS); - - /** - * `syn-nodejs-2.2` includes the following: - * - Lambda runtime Node.js 10.x - * - Puppeteer-core version 3.3.0 - * - Chromium version 83.0.4103.0 - * - * New features: - * - **Monitor your canaries as HTTP steps**: You can now test multiple APIs in a single canary. Each API is tested as a separate HTTP step, and CloudWatch Synthetics monitors the status of each step using step metrics and the CloudWatch Synthetics step report. CloudWatch Synthetics creates SuccessPercent and Duration metrics for each HTTP step. - * This functionality is implemented by the {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library_Nodejs.html#CloudWatch_Synthetics_Library_executeHttpStep | executeHttpStep(stepName, requestOptions, callback, stepConfig)} function. For more information, see executeHttpStep(stepName, requestOptions, [callback], [stepConfig]). - * The API canary blueprint is updated to use this new feature. - * - **HTTP request reporting**: You can now view detailed HTTP requests reports which capture details such as request/response headers, response body, status code, error and performance timings, TCP connection time, TLS handshake time, first byte time, and content transfer time. All HTTP requests which use the HTTP/HTTPS module under the hood are captured here. Headers and response body are not captured by default but can be enabled by setting configuration options. - * - **Global and step-level configuration**: You can set CloudWatch Synthetics configurations at the global level, which are applied to all steps of canaries. You can also override these configurations at the step level by passing configuration key/value pairs to enable or disable certain options. - * For more information, see {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library_Nodejs.html#CloudWatch_Synthetics_Library_SyntheticsConfiguration | SyntheticsConfiguration class}. - * - **Continue on step failure configuration**: You can choose to continue canary execution when a step fails. For the executeHttpStep function, this is turned on by default. You can set this option once at global level or set it differently per-step. - * - * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-2.2 - * @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime. - */ - public static readonly SYNTHETICS_NODEJS_PUPPETEER_2_2 = new Runtime('syn-nodejs-2.2', RuntimeFamily.NODEJS); - - /** - * `syn-nodejs-puppeteer-3.0` includes the following: - * - Lambda runtime Node.js 12.x - * - Puppeteer-core version 5.5.0 - * - Chromium version 88.0.4298.0 - * - * New Features: - * - **Upgraded dependencies**: This version uses Puppeteer version 5.5.0, Node.js 12.x, and Chromium 88.0.4298.0. - * - **Cross-Region bucket access**: You can now specify an S3 bucket in another Region as the bucket where your canary stores its log files, screenshots, and HAR files. - * - **New functions available**: This version adds library functions to retrieve the canary name and the Synthetics runtime version. - * - * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.0 - * @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime. - */ - public static readonly SYNTHETICS_NODEJS_PUPPETEER_3_0 = new Runtime('syn-nodejs-puppeteer-3.0', RuntimeFamily.NODEJS); - - /** - * `syn-nodejs-puppeteer-3.1` includes the following: - * - Lambda runtime Node.js 12.x - * - Puppeteer-core version 5.5.0 - * - Chromium version 88.0.4298.0 - * - * New Features: - * - **Ability to configure CloudWatch metrics**: With this runtime, you can disable the metrics that you do not require. Otherwise, canaries publish various CloudWatch metrics for each canary run. - * - **Screenshot linking**: You can link a screenshot to a canary step after the step has completed. To do this, you take the screenshot by using the takeScreenshot method, using the name of the step that you want to associate the screenshot with. For example, you might want to perform a step, add a wait time, and then take the screenshot. - * - **Heartbeat monitor blueprint can monitor multiple URLs**: You can use the heartbeat monitoring blueprint in the CloudWatch console to monitor multiple URLs and see the status, duration, associated screenshots, and failure reason for each URL in the step summary of the canary run report. - * - * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.1 - * @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime. - */ - public static readonly SYNTHETICS_NODEJS_PUPPETEER_3_1 = new Runtime('syn-nodejs-puppeteer-3.1', RuntimeFamily.NODEJS); - - /** - * `syn-nodejs-puppeteer-3.2` includes the following: - * - Lambda runtime Node.js 12.x - * - Puppeteer-core version 5.5.0 - * - Chromium version 88.0.4298.0 - * - * New Features: - * - **Visual monitoring with screenshots**: Canaries using this runtime or later can compare a screenshot taken during a run with a baseline version of the same screenshot. If the screenshots are more different than a specified percentage threshold, the canary fails. For more information, see {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library_Nodejs.html#CloudWatch_Synthetics_Library_SyntheticsLogger_VisualTesting | Visual monitoring} or {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Blueprints.html#CloudWatch_Synthetics_Canaries_Blueprints_VisualTesting | Visual monitoring blueprint}. - * - **New functions regarding sensitive data**: You can prevent sensitive data from appearing in canary logs and reports. For more information, see {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library_Nodejs.html#CloudWatch_Synthetics_Library_SyntheticsLogHelper | SyntheticsLogHelper class}. - * - **Deprecated function**: The RequestResponseLogHelper class is deprecated in favor of other new configuration options. For more information, see {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library_Nodejs.html#CloudWatch_Synthetics_Library_RequestResponseLogHelper | RequestResponseLogHelper class}. - * - * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.2 - * @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime. - */ - public static readonly SYNTHETICS_NODEJS_PUPPETEER_3_2 = new Runtime('syn-nodejs-puppeteer-3.2', RuntimeFamily.NODEJS); - - /** - * `syn-nodejs-puppeteer-3.3` includes the following: - * - Lambda runtime Node.js 12.x - * - Puppeteer-core version 5.5.0 - * - Chromium version 88.0.4298.0 - * - * New Features: - * - **More options for artifact encryption**: For canaries using this runtime or later, instead of using an AWS managed key to encrypt artifacts that the canary stores in Amazon S3, you can choose to use an AWS KMS customer managed key or an Amazon S3-managed key. For more information, see {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_artifact_encryption.html | Encrypting canary artifacts}. - * - * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.3 - * @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime. - */ - public static readonly SYNTHETICS_NODEJS_PUPPETEER_3_3 = new Runtime('syn-nodejs-puppeteer-3.3', RuntimeFamily.NODEJS); - - /** - * `syn-nodejs-puppeteer-3.4` includes the following: - * - Lambda runtime Node.js 12.x - * - Puppeteer-core version 5.5.0 - * - Chromium version 88.0.4298.0 - * - * New features: - * - **Custom handler function**: You can now use a custom handler function for your canary scripts. Previous runtimes required the script entry point to include .handler. - * You can also put canary scripts in any folder and pass the folder name as part of the handler. For example, MyFolder/MyScriptFile.functionname can be used as an entry point. - * - **Expanded HAR file information**: You can now see bad, pending, and incomplete requests in the HAR files produced by canaries. - * - * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.4 - * @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime. - */ - public static readonly SYNTHETICS_NODEJS_PUPPETEER_3_4 = new Runtime('syn-nodejs-puppeteer-3.4', RuntimeFamily.NODEJS); - /** * `syn-nodejs-puppeteer-3.5` includes the following: * - Lambda runtime Node.js 14.x