Skip to content

Commit

Permalink
chore(synthetics): update runtimes (#29446)
Browse files Browse the repository at this point in the history
### Issue # (if applicable)

Could not find any in the backlog

### Reason for this change

Update the CDK listed Synthetics runtimes to match the current availability, as well as add missing deprecated versions

### Description of changes

* Added new runtimes
* Marked existing runtimes as deprecated
* Add previously deprecated runtimes
  * For the sake of consistency and readability, the static fields for `syn-1.0` and `syn-nodejs-2.*` were still named `SYNTHETICS_NODEJS_PUPPETEER_*`
* Fix documented versions for existing runtimes
* Added `{@link}` tags to match the web documentation

### Description of how you validated changes

I compared the current CDK versions to live SDK data, using the `synthetics:DescribeRuntimeVersions` API results. Deprecated versions were established using the `DeprecationDate` field

### Checklist
- [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md)

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
  • Loading branch information
nmussy committed Mar 15, 2024
1 parent bbc624c commit 87139ab
Showing 1 changed file with 39 additions and 4 deletions.
43 changes: 39 additions & 4 deletions packages/aws-cdk-lib/aws-synthetics/lib/runtime.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,12 @@ export class Runtime {
/**
* `syn-nodejs-puppeteer-3.5` includes the following:
* - Lambda runtime Node.js 14.x
* - Puppeteer-core version 10.1.0
* - Puppeteer-core version 5.5.0
* - Chromium version 92.0.4512
*
* New features:
* - **Updated dependencies**: The only new features in this runtime are the updated dependencies.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.5
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime.
*/
Expand All @@ -36,7 +39,7 @@ export class Runtime {
/**
* `syn-nodejs-puppeteer-3.6` includes the following:
* - Lambda runtime Node.js 14.x
* - Puppeteer-core version 10.1.0
* - Puppeteer-core version 5.5.0
* - Chromium version 92.0.4512
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.6
Expand All @@ -47,7 +50,7 @@ export class Runtime {
/**
* `syn-nodejs-puppeteer-3.7` includes the following:
* - Lambda runtime Node.js 14.x
* - Puppeteer-core version 10.1.0
* - Puppeteer-core version 5.5.0
* - Chromium version 92.0.4512
*
* New Features:
Expand Down Expand Up @@ -169,7 +172,7 @@ export class Runtime {
* New Features:
* - **Stability improvements**: Added auto-retry logic for handling intermittent Puppeteer launch errors.
* - **Dependency upgrades**: Upgrades for some third-party dependency packages.
* - **Canaries without Amazon S3 permissions**: Bug fixes, such that canaries that don't have any Amazon S3 permissions can still run. These canaries with no Amazon S3 permissions won't be able to upload screenshots or other artifacts to Amazon S3. For more information about permissions for canaries, see Required roles and permissions for canaries.
* - **Canaries without Amazon S3 permissions**: Bug fixes, such that canaries that don't have any Amazon S3 permissions can still run. These canaries with no Amazon S3 permissions won't be able to upload screenshots or other artifacts to Amazon S3. For more information about permissions for canaries, see {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_CanaryPermissions.html | Required roles and permissions for canaries}.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-6.1
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime.
Expand All @@ -191,13 +194,27 @@ export class Runtime {
*/
public static readonly SYNTHETICS_NODEJS_PUPPETEER_6_2 = new Runtime('syn-nodejs-puppeteer-6.2', RuntimeFamily.NODEJS);

/**
* `syn-nodejs-puppeteer-7.0` includes the following:
* - Lambda runtime Node.js 18.x
* - Puppeteer-core version 21.9.0
* - Chromium version 121.0.6167.139
*
* New Features:
* - **Updated versions of the bundled libraries in Puppeteer and Chromium**: The Puppeteer and Chromium dependencies are updated to new versions.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-7.0
*/
public static readonly SYNTHETICS_NODEJS_PUPPETEER_7_0 = new Runtime('syn-nodejs-puppeteer-7.0', RuntimeFamily.NODEJS);

/**
* `syn-python-selenium-1.0` includes the following:
* - Lambda runtime Python 3.8
* - Selenium version 3.141.0
* - Chromium version 83.0.4103.0
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-1.0
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest Python Selenium runtime.
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_1_0 = new Runtime('syn-python-selenium-1.0', RuntimeFamily.PYTHON);

Expand All @@ -214,6 +231,7 @@ export class Runtime {
* - **Cross-Region artifact buckets**: A canary can store its artifacts in an Amazon S3 bucket in a different Region.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-1.1
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest Python Selenium runtime.
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_1_1 = new Runtime('syn-python-selenium-1.1', RuntimeFamily.PYTHON);

Expand All @@ -227,6 +245,7 @@ export class Runtime {
* - **Updated dependencies**: The only new features in this runtime are the updated dependencies.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-1.2
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest Python Selenium runtime.
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_1_2 = new Runtime('syn-python-selenium-1.2', RuntimeFamily.PYTHON);

Expand All @@ -240,6 +259,7 @@ export class Runtime {
* - **More precise timestamps**: The start time and stop time of canary runs are now precise to the millisecond.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-1.3
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest Python Selenium runtime.
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_1_3 = new Runtime('syn-python-selenium-1.3', RuntimeFamily.PYTHON);

Expand All @@ -256,7 +276,9 @@ export class Runtime {
* Bug fixes:
* - **Timestamp added**: A timestamp has been added to canary logs.
* - **Session re-use**: A bug was fixed so that canaries are now prevented from reusing the session from their previous canary run.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-2.0
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest Python Selenium runtime.
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_2_0 = new Runtime('syn-python-selenium-2.0', RuntimeFamily.PYTHON);

Expand All @@ -273,6 +295,19 @@ export class Runtime {
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_2_1 = new Runtime('syn-python-selenium-2.1', RuntimeFamily.PYTHON);

/**
* `syn-python-selenium-3.0` includes the following:
* - Lambda runtime Python 3.8
* - Selenium version 4.15.1
* - Chromium version 121.0.6167.139
*
* New Features:
* - **Updated versions of the bundled libraries in Chromium**: The Chromium dependency is updated to a new version.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-3.0
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_3_0 = new Runtime('syn-python-selenium-3.0', RuntimeFamily.PYTHON);

/**
* @param name The name of the runtime version
* @param family The Lambda runtime family
Expand Down

0 comments on commit 87139ab

Please sign in to comment.