Skip to content

Commit 27f14e5

Browse files
committed
Update to version v2.0.0
1 parent 11b4e9b commit 27f14e5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+9641
-2972
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ regional-s3-assets/
77
open-source/
88
console_new/
99
**/aws_config.js
10+
deployment/ecr/*.jar
1011

1112
.pnp
1213
.pnp.js

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,31 @@ All notable changes to this project will be documented in this file.
33

44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6+
## [2.0.0] - 2021-09-30
7+
⚠ BREAKING CHANGES
8+
Version 2.0.0 does not support upgrading from previous versions.
9+
### Added
10+
- Support to view complete data from previous test runs, including test configuration, test data, and Amazon CloudWatch dashboards
11+
- Results History now has a `View details` link to display data from previous test runs
12+
- Support for an existing Amazon VPC
13+
- Launch Fargate tasks in multiple availability zones
14+
- Using AWS CDK source code to generate the AWS CloudFormation template
15+
16+
### Changed
17+
- Results History displays:
18+
- Run Time
19+
- Task Count
20+
- Concurrency
21+
- Average Response Time
22+
- Success %
23+
- Tags created in CloudFormation propagated to Fargate test tasks
24+
- Test ids only contain alphanumeric characters
25+
26+
### Removed
27+
- Remove AWS CodePipeline, AWS CodeBuild, and Amazon ECR image repository resource creation by AWS CloudFormation stack
28+
- The solution's container image is stored in a public ECR image repository managed by AWS
29+
- Remove `ECRChecker` lambda function and state machine stage
30+
631
## [1.3.0] - 2021-04-30
732
### Added
833
- Support for up to 1000 tasks

NOTICE.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ react under the Massachusetts Institute of Technology (MIT) license
2828
react-ace under the Massachusetts Institute of Technology (MIT) license
2929
react-dom under the Massachusetts Institute of Technology (MIT) license
3030
react-router-dom under the Massachusetts Institute of Technology (MIT) license
31+
react-router-hash-link under the Massachusetts Institute of Technology (MIT) license
3132
react-scripts under the Massachusetts Institute of Technology (MIT) license
3233
reactstrap under the Massachusetts Institute of Technology (MIT) license
33-
shortid under the Massachusetts Institute of Technology (MIT) license
34+
nanoid under the Massachusetts Institute of Technology (MIT) license
3435
taurus under the Apache License Version 2.0
3536
uuid under the Massachusetts Institute of Technology (MIT) license
3637
xml-js under the Massachusetts Institute of Technology (MIT) license

README.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,9 @@ A NodeJS Lambda function for the API microservices. Integrated with Amazon API G
2424
**source/console**<br/>
2525
ReactJS Single page application to provide a GUI to the solutions. Authenticated through Amazon Cognito this dashboard allows users to Create tests and view the final results.
2626

27-
**source/container**<br/>
28-
The Taurus DockerFile and bash script run at start of the test to download the test definition from S3. This is the source file for the image pipeline to build and deploy the Docker image to Amazon ECR. Details on Taurus can be found [here](https://gettaurus.org/).
29-
3027
**source/custom-resource**<br/>
3128
A NodeJS Lambda function used as a CloudFormation custom resource for configuring Amazon S3 bucket notifications and to send anonymous metrics.
3229

33-
**source/ecr-checker**<br/>
34-
A NodeJS Lambda function that checks if the Amazon ECR is ready or not.
35-
3630
**source/results-parser**<br/>
3731
A NodeJS Lambda function used to write the xml output from the docker images to Amazon DynamoDB and generate the final results for each test.
3832

@@ -51,7 +45,7 @@ To make changes to the solution, download or clone this repo, update the source
5145

5246
### Prerequisites:
5347
* [AWS Command Line Interface](https://aws.amazon.com/cli/)
54-
* Node.js 12.x or later
48+
* Node.js 14.x or later
5549

5650
### 1. Clone the Distributed Load Testing on AWS solution repository
5751
Clone the ```distributed-load-testing-on-aws``` GitHub repository, then make the desired code changes.
@@ -74,6 +68,8 @@ export REGION=aws-region-code # the AWS region to launch the solution (e.g. us-e
7468
export DIST_OUTPUT_BUCKET=my-bucket-name # bucket where customized code will reside
7569
export SOLUTION_NAME=my-solution-name
7670
export VERSION=my-version # version number for the customized code
71+
export PUBLIC_ECR_REGISTRY=public.ecr.aws/awssolutions/distributed-load-testing-on-aws-load-tester # replace with the container registry and image if you want to use a different container image
72+
export PUBLIC_ECR_TAG=v2.0 # replace with the container image tag if you want to use a different container image
7773
```
7874

7975
### 4. Create an Amazon S3 Bucket
@@ -102,11 +98,14 @@ aws s3 cp ./global-s3-assets/ s3://$DIST_OUTPUT_BUCKET-$REGION/$SOLUTION_NAME/$V
10298
* Get the link of the `distributed-load-testing-on-aws.template` uploaded to your Amazon S3 bucket.
10399
* Deploy the Distributed Load Testing on AWS solution to your account by launching a new AWS CloudFormation stack using the link of the `distributed-load-testing-on-aws.template`.
104100

101+
## Creating a custom container build
102+
This solution uses a public Amazon Elastic Container Registry (Amazon ECR) image repository managed by AWS to store the solution container image that is used to run the configured tests. If you want to customize the container image, you can rebuild and push the image into an ECR image repository in your own AWS account.
103+
For details on how to customize the container image, please see the **Container image customization** section of the [implementation guide](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/container-image.html).
105104

106105
## Collection of operational metrics
107-
This solution collects anonymous operational metrics to help AWS improve the quality and features of the solution. For more information, including how to disable this capability, please see the [implementation guide](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/operational-metrics.html).
108106

107+
This solution collects anonymous operational metrics to help AWS improve the quality and features of the solution. For more information, including how to disable this capability, please see the [implementation guide](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/operational-metrics.html).
109108
***
110109

111110
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.<br />
112-
SPDX-License-Identifier: Apache-2.0
111+
SPDX-License-Identifier: Apache-2.0

architecture.png

-11.1 KB
Loading

deployment/build-s3-dist.sh

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
# ./build-s3-dist.sh source-bucket-base-name trademarked-solution-name version-code
88
#
99
# Paramenters:
10-
# - source-bucket-base-name: Name for the S3 bucket location where the AWS CloudFormation template will source the Lambda
11-
# code from. The AWS Lambda code is contained in the zip files. The template will append '-[region_name]' to this bucket name.
10+
# - source-bucket-base-name: Name for the S3 bucket location where the AWS CloudFormation template will source the Lambda code from.
11+
# The AWS Lambda code is contained in the zip files. The template will append '-[region_name]' to this bucket name.
1212
# For example: ./build-s3-dist.sh solutions my-solution v1.0.0
1313
# The template will then expect the source code to be located in the solutions-[region_name] bucket
1414
#
@@ -46,8 +46,10 @@ mkdir -p $template_dist_dir $build_dist_dir
4646
echo "------------------------------------------------------------------------------"
4747
echo "CloudFormation Template"
4848
echo "------------------------------------------------------------------------------"
49-
cp $template_dir/distributed-load-testing-on-aws.yaml $template_dist_dir/distributed-load-testing-on-aws.template
5049

50+
cd $source_dir/infrastructure
51+
npm install
52+
node_modules/aws-cdk/bin/cdk synth --asset-metadata false --path-metadata false > $template_dist_dir/distributed-load-testing-on-aws.template
5153
replace="s/CODE_BUCKET/$1/g"
5254
echo "sed -i -e $replace"
5355
sed -i -e $replace $template_dist_dir/distributed-load-testing-on-aws.template
@@ -57,6 +59,16 @@ sed -i -e $replace $template_dist_dir/distributed-load-testing-on-aws.template
5759
replace="s/CODE_VERSION/$3/g"
5860
echo "sed -i -e $replace"
5961
sed -i -e $replace $template_dist_dir/distributed-load-testing-on-aws.template
62+
63+
echo "***** public ECR registry: $PUBLIC_ECR_REGISTRY"
64+
replace="s|PUBLIC_ECR_REGISTRY|$PUBLIC_ECR_REGISTRY|g"
65+
echo "sed -i -e $replace"
66+
sed -i -e $replace $template_dist_dir/distributed-load-testing-on-aws.template
67+
68+
echo "***** public ECR tag: $PUBLIC_ECR_TAG"
69+
replace="s/PUBLIC_ECR_TAG/$PUBLIC_ECR_TAG/g"
70+
echo "sed -i -e $replace"
71+
sed -i -e $replace $template_dist_dir/distributed-load-testing-on-aws.template
6072
# remove tmp file for MACs
6173
[ -e $template_dist_dir/distributed-load-testing-on-aws.template-e ] && rm -r $template_dist_dir/distributed-load-testing-on-aws.template-e
6274

@@ -114,29 +126,17 @@ npm install --production
114126
rm package-lock.json
115127
zip -q -r9 $build_dist_dir/task-status-checker.zip *
116128

117-
echo "------------------------------------------------------------------------------"
118-
echo "Creating ecr-checker deployment package"
119-
echo "------------------------------------------------------------------------------"
120-
cd $source_dir/ecr-checker
121-
rm -rf node_modules/
122-
npm install --production
123-
rm package-lock.json
124-
zip -q -r9 $build_dist_dir/ecr-checker.zip *
125-
126129
echo "------------------------------------------------------------------------------"
127130
echo "Creating container deployment package"
128131
echo "------------------------------------------------------------------------------"
129-
cd $source_dir/container
132+
cd $template_dir/ecr/distributed-load-testing-on-aws-load-tester
130133
# Downloading jetty 9.4.34.v20201102
131134
curl -O https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-alpn-client/9.4.34.v20201102/jetty-alpn-client-9.4.34.v20201102.jar
132135
curl -O https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-alpn-openjdk8-client/9.4.34.v20201102/jetty-alpn-openjdk8-client-9.4.34.v20201102.jar
133136
curl -O https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-client/9.4.34.v20201102/jetty-client-9.4.34.v20201102.jar
134137
curl -O https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-http/9.4.34.v20201102/jetty-http-9.4.34.v20201102.jar
135138
curl -O https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-io/9.4.34.v20201102/jetty-io-9.4.34.v20201102.jar
136139
curl -O https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-util/9.4.34.v20201102/jetty-util-9.4.34.v20201102.jar
137-
zip -q -r9 ../../deployment/regional-s3-assets/container.zip *
138-
cp container-manifest.json $build_dist_dir/
139-
rm -f *.jar
140140

141141
echo "------------------------------------------------------------------------------"
142142
echo "Building console"
@@ -152,8 +152,8 @@ cp -r ./build/* $build_dist_dir/console/
152152
echo "------------------------------------------------------------------------------"
153153
echo "Generate console manifest file"
154154
echo "------------------------------------------------------------------------------"
155-
cd $build_dist_dir
156-
manifest=(`find console -type f | sed 's|^./||'`)
155+
cd $build_dist_dir/console
156+
manifest=(`find * -type f ! -iname ".DS_Store"`)
157157
manifest_json=$(IFS=,;printf "%s" "${manifest[*]}")
158158
echo "[\"$manifest_json\"]" | sed 's/,/","/g' > ./console-manifest.json
159159

0 commit comments

Comments
 (0)