Skip to content

Commit 71c3228

Browse files
Changes for v1.1.1 (#7)
1 parent 014557a commit 71c3228

30 files changed

+2203
-193
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ To get the version of the solution, you can look at the description of the creat
2525
"Environment": {
2626
"Variables": {
2727
"SOLUTION_ID": "SO0248",
28-
"SOLUTION_VERSION": "v1.1.0"
28+
"SOLUTION_VERSION": "v1.1.1"
2929
}
3030
},
3131
```
@@ -34,7 +34,7 @@ This information is also provided in `source/infrastructure/cdk.json`:
3434

3535
```json
3636
"SOLUTION_ID": "SO0248",
37-
"SOLUTION_VERSION": "v1.1.0",
37+
"SOLUTION_VERSION": "v1.1.1",
3838
```
3939

4040

CHANGELOG.md

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,33 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [1.0.0] - 2024-05-28
8+
## [1.1.1] - 2025-03-07
99

10-
### Added
10+
- Upgrade to Prebid Server v3.22 and underlying Docker base image
11+
- Optimized container image using jlink reducing image size from 774 MB to 142 MB
12+
- Change to Poetry for Python dependency management
13+
- Add script to run Prebid Server container locally with stack settings
1114

12-
- All files, initial version
15+
## [1.1.0] - 2024-10-31
16+
17+
- Upgrade to Prebid Server v3.13 and underlying Docker base image
18+
- ECS runtime logs in AWS CloudWatch instead of S3
19+
- Option to opt-out of installing CloudFront and WAF
20+
- Customize Prebid Server configuration through files in S3
21+
- Option to specify a custom container image
22+
23+
## [1.0.2] - 2024-09-23
24+
25+
- Upgrade Python `requests` package to version 2.32.3 in requirements.txt
26+
- Bug fix for launch failure of EfsCleanupContainerStop Lambda function
1327

1428
## [1.0.1] - 2024-08-02
1529

1630
- Remove python `setuptools` and `pip` from prebid server docker image
1731
- Include missing copyright header for `source/infrastructure/prebid_server/stack_constants.py`
1832

19-
## [1.0.2] - 2024-09-23
33+
## [1.0.0] - 2024-05-28
2034

21-
- Upgrade Python `requests` package to version 2.32.3 in requirements.txt
22-
- Bug fix for launch failure of EfsCleanupContainerStop Lambda function
35+
### Added
2336

24-
## [1.1.0] - 2024-10-31
25-
- Upgrade to Prebid Server v3.13 and underlying Docker base image
26-
- ECS runtime logs in AWS CloudWatch instead of S3
27-
- Option to opt-out of installing CloudFront and WAF
28-
- Customize Prebid Server configuration through files in S3
29-
- Option to specify a custom container image
37+
- All files, initial version

CODE_OF_CONDUCT.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
## Code of Conduct
2-
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
3-
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
2+
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
3+
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
44
[email protected] with any additional questions or comments.

NOTICE.txt

Lines changed: 69 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -10,78 +10,74 @@ specific language governing permissions and limitations under the License.
1010
**********************
1111
THIRD PARTY COMPONENTS
1212
**********************
13+
1314
This software includes third party software subject to the following copyrights:
1415

15-
Name Version License
16-
prebid-server-java 3.13.0 Apache-2.0
17-
attrs 22.1.0 MIT License
18-
avro 1.11.1 Apache Software License
19-
aws-cdk-lib 2.140.0 Apache-2.0
20-
aws-cdk.asset-awscli-v1 2.2.11 Apache-2.0
21-
aws-cdk.asset-kubectl-v20 2.1.1 Apache-2.0
22-
aws-cdk.asset-node-proxy-agent-v5 2.0.17 Apache-2.0
23-
aws-lambda 0.2.0 Apache Software License
24-
aws-lambda-powertools 1.31.0 MIT License; Other/Proprietary License
25-
aws-solutions-cdk 2.0.0 Apache Software License
26-
aws-solutions-constructs.aws-eventbridge-lambda 2.25.0 Apache-2.0
27-
aws-solutions-constructs.aws-lambda-dynamodb 2.25.0 Apache-2.0
28-
aws-solutions-constructs.aws-lambda-sns 2.25.0 Apache-2.0
29-
aws-solutions-constructs.core 2.25.0 Apache-2.0
30-
aws-solutions-python 2.0.0 Apache Software License
31-
aws-xray-sdk 2.11.0 Apache Software License
32-
boto3 1.26.12 Apache Software License
33-
botocore 1.29.12 Apache Software License
34-
cattrs 22.2.0 MIT License
35-
cdk-nag 2.18.47 Apache-2.0
36-
certifi 2022.9.24 Mozilla Public License 2.0 (MPL 2.0)
37-
cffi 1.15.1 MIT License
38-
charset-normalizer 2.0.12 MIT License
39-
click 8.1.3 BSD License
40-
constructs 10.1.163 Apache-2.0
41-
coverage 6.5.0 Apache Software License
42-
crhelper 2.0.11 Apache Software License
43-
cronex 0.1.3.1 MIT License
44-
cryptography 38.0.3 Apache Software License; BSD License
45-
docker 6.0.0 Apache Software License
46-
exceptiongroup 1.0.4 MIT License
47-
fastjsonschema 2.16.2 BSD License
48-
idna 3.4 BSD License
49-
infrastructure 1.0.0 Apache Software License
50-
iniconfig 1.1.1 MIT License
51-
Jinja2 3.1.2 BSD License
52-
jmespath 1.0.1 MIT License
53-
jsii 1.71.0 Apache Software License
54-
MarkupSafe 2.1.1 BSD License
55-
moto 4.0.3 Apache Software License
56-
mypy-extensions 0.4.3 MIT License
57-
packaging 21.3 Apache Software License; BSD License
58-
parsedatetime 2.6 Apache Software License
59-
pathspec 0.10.2 Mozilla Public License 2.0 (MPL 2.0)
60-
platformdirs 2.5.4 MIT License
61-
pluggy 1.0.0 MIT License
62-
publication 0.0.3 MIT License
63-
pycparser 2.21 BSD License
64-
pyparsing 3.0.9 MIT License
65-
pytest 7.2.0 MIT License
66-
pytest-cov 4.0.0 MIT License
67-
pytest-env 0.8.1 MIT License
68-
pytest-mock 3.10.0 MIT License
69-
python-dateutil 2.8.2 Apache Software License; BSD License
70-
pytz 2022.6 MIT License
71-
PyYAML 6.0.2 MIT License
72-
requests 2.32.3 Apache Software License
73-
responses 0.17.0 Apache 2.0
74-
s3transfer 0.6.0 Apache Software License
75-
shared 0.0.0 Apache Software License
76-
six 1.16.0 MIT License
77-
tenacity 8.1.0 Apache Software License
78-
tomli 2.0.1 MIT License
79-
typeguard 2.13.3 MIT License
80-
typing_extensions 4.4.0 Python Software Foundation License
81-
urllib3 1.26.12 MIT License
82-
websocket-client 1.4.2 Apache Software License
83-
wrapt 1.14.1 BSD License
84-
xmltodict 0.13.0 MIT License
85-
wheel 0.38.4 MIT License
86-
Werkzeug 2.1.2 BSD License
87-
16+
alpinelinux/docker-alpine under the MIT license.
17+
github.com/prebid/prebid-server-java under the Apache-2.0 license.
18+
aws-cdk-asset-awscli-v1 under the Apache-2.0 license.
19+
aws-cdk-asset-kubectl-v20 under the Apache-2.0 license.
20+
aws-cdk-asset-node-proxy-agent-v6 under the Apache-2.0 license.
21+
aws-cdk-cloud-assembly-schema under the Apache-2.0 license.
22+
aws-cdk-lib under the Apache-2.0 license.
23+
aws-lambda-powertools under the MIT license.
24+
aws-solutions-cdk under the Apache-2.0 license.
25+
aws-solutions-python under the Apache-2.0 license.
26+
boto3 under the Apache-2.0 license.
27+
botocore under the Apache-2.0 license.
28+
cattrs under the MIT license.
29+
cdk-nag under the Apache-2.0 license.
30+
certifi under the MPL-2.0 license.
31+
cffi under the MIT license.
32+
charset-normalizer under the MIT license.
33+
click under the 0BSD license.
34+
colorama under the 0BSD license.
35+
constructs under the Apache-2.0 license.
36+
coverage under the Apache-2.0 license.
37+
crhelper under the Apache-2.0 license.
38+
cryptography under the Apache-2.0 license.
39+
docker under the Apache-2.0 license.
40+
idna under the 0BSD license.
41+
importlib-resources under the Apache-2.0 license.
42+
infrastructure under the MIT license.
43+
iniconfig under the MIT license.
44+
jinja2 under the 0BSD license.
45+
jmespath under the MIT license.
46+
jsii under the Apache-2.0 license.
47+
markupsafe under the 0BSD license.
48+
moto under the Apache-2.0 license.
49+
packaging under the Apache-2.0 license.
50+
pip under the MIT license.
51+
pluggy under the MIT license.
52+
publication under the MIT license.
53+
pycparser under the 0BSD license.
54+
pyparsing under the MIT license.
55+
pytest under the MIT license.
56+
pytest-cov under the MIT license.
57+
pytest-env under the MIT license.
58+
pytest-mock under the MIT license.
59+
pytest-ordering under the MIT license.
60+
python-dateutil under the Apache-2.0 license.
61+
pywin32 under the PSF-2.0 license.
62+
pyyaml under the MIT license.
63+
requests under the Apache-2.0 license.
64+
responses under the Apache-2.0 license.
65+
s3transfer under the Apache-2.0 license.
66+
six under the MIT license.
67+
typeguard under the MIT license.
68+
typing-extensions under the PSF-2.0 license.
69+
unit-tests under the Apache-2.0 license.
70+
url-normalize under the MIT license.
71+
urllib3 under the MIT license.
72+
werkzeug under the 0BSD license.
73+
xmltodict under the MIT license.
74+
75+
********************
76+
OPEN SOURCE LICENSES
77+
********************
78+
79+
0BSD - http://landley.net/toybox/license.html
80+
Apache-2.0 - https://www.apache.org/licenses/LICENSE-2.0
81+
PSF-2.0 - https://opensource.org/licenses/Python-2.0
82+
MIT - https://opensource.org/license/mit
83+
MPL-2.0 - https://www.mozilla.org/en-US/MPL/2.0/

README.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,30 @@ The following procedures assumes that all the OS-level configuration has been co
3333

3434
* [AWS Command Line Interface](https://aws.amazon.com/cli/)
3535
* [Python](https://www.python.org/) 3.11 or newer
36+
* [Pypi/Pip](https://pypi.org/project/pip/) 25.0 or newer
37+
* [Poetry](https://python-poetry.org/docs/#installing-with-pipx) 2.0 or newer
3638
* [Node.js](https://nodejs.org/en/) 16.x or newer
3739
* [AWS CDK](https://aws.amazon.com/cdk/) 2.140.0 or newer
38-
* [Amazon Corretto OpenJDK](https://docs.aws.amazon.com/corretto/) 17
40+
* [Amazon Corretto OpenJDK](https://docs.aws.amazon.com/corretto/) 21
41+
* [Apache Maven](https://maven.apache.org/) 3.9.9
3942
* [Docker](https://docs.docker.com/engine/)
4043
* [AWS access key ID and secret access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) configured in your environment with AdministratorAccess equivalent permissions
4144

4245
> **Please ensure you test the templates before updating any production deployments.**
4346
4447
### 1. Download or clone this repo
4548
```
46-
git clone https://github.com/aws-solutions/prebid-server-deployment-on-aws
49+
git clone https://github.com/aws-solutions/prebid-server-deployment-on-aws.git
4750
```
4851

4952
### 2. Create a Python virtual environment for development
5053
```bash
54+
cd prebid-server-deployment-on-aws
5155
python3 -m venv .venv
5256
source ./.venv/bin/activate
5357
cd ./source
54-
pip install -r requirements.txt
58+
pip install -r requirements-poetry.txt
59+
poetry install
5560
```
5661

5762
### 2. After introducing changes, run the unit tests to make sure the customizations don't break existing functionality
@@ -168,7 +173,7 @@ If you'd like to use a different container:
168173
* Build and host the solution assets for installation in your account using the process described above
169174
* Change to the `deployment/global-s3-assets` folder on the build workstation
170175
* Open the file `prebid-server-deployment-on-aws.template` in an editor
171-
* Find the line in the template under the Task Definition resource that is `"Image": "public.ecr.aws/aws-solutions/prebid-server:v1.1.0",`
176+
* Find the line in the template under the Task Definition resource that is `"Image": "public.ecr.aws/aws-solutions/prebid-server:v1.1.1",`
172177
* Update the Image property value with your container image URI
173178
* Create the stack by uploading the changed template to the CloudFormation console
174179

deployment/build-s3-dist.sh

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
# Paramenters:
1010
# - source-bucket-base-name: Name for the S3 bucket location where the template will source the Lambda
1111
# code from. The template will append '-[region_name]' to this bucket name.
12-
# For example: ./build-s3-dist.sh solutions v1.1.0
12+
# For example: ./build-s3-dist.sh solutions v1.1.1
1313
# The template will then expect the source code to be located in the solutions-[region_name] bucket
1414
#
1515
# - solution-name: name of the solution for consistency
@@ -21,7 +21,7 @@
2121
# Check to see if input has been provided:
2222
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then
2323
echo "Please provide the base source bucket name, trademark approved solution name and version where the lambda code will eventually reside."
24-
echo "For example: ./build-s3-dist.sh solutions trademarked-solution-name v1.1.0"
24+
echo "For example: ./build-s3-dist.sh solutions trademarked-solution-name v1.1.1"
2525
exit 1
2626
fi
2727

@@ -57,7 +57,7 @@ rm -rf $cdk_out
5757
# cp $template_dir/*.yaml $template_dist_dir/
5858
# cd $template_dist_dir
5959
# # Rename all *.yaml to *.template
60-
# for f in *.yaml; do
60+
# for f in *.yaml; do
6161
# mv -- "$f" "${f%.yaml}.template"
6262
# done
6363

@@ -107,3 +107,30 @@ fi
107107
# generate the templates (unbundled)
108108
cd $source_dir/
109109
cdk synth -o $cdk_out
110+
111+
# If this is a release pipeline and the ecr_image_tags.json file references a
112+
# version that is different from the $VERSION environment variable then
113+
# exit with an error to stop the pipeline. This is intended to help prevent
114+
# accidentally overwriting a prebid-server image that has already been
115+
# published to the aws-solutions public repo. This can happen if a developer
116+
# has forgotten to update ecr_image_tags.json and it still refers to a
117+
# previously published version.
118+
if [ "${PIPELINE_TYPE:-}" = "release" ]; then
119+
# The ${PIPELINE_TYPE:-} syntax provides a safe way to reference potentially
120+
# undefined variables, defaulting to an empty string if the variable isn't
121+
# set.
122+
echo "This is a Release pipeline"
123+
echo "------------------------------------------------------------------------------"
124+
echo "[Validation] Check docker image tag prior to publishing to Amazon ECR"
125+
echo "------------------------------------------------------------------------------"
126+
TAGS_JSON_FILE="$template_dir/ecr_image_tags.json"
127+
TAGS_JSON_FILE_EXISTS=$( [ -e $TAGS_JSON_FILE ] && echo true || echo false )
128+
if [ TAGS_JSON_FILE_EXISTS ]; then
129+
echo "Checking if version in ecr_image_tags.json matches $VERSION"
130+
CUSTOM_TAG=$(jq -r --arg key "$IMAGE" '.[$key]' $TAGS_JSON_FILE)
131+
if [ "$CUSTOM_TAG" != "$VERSION" ]; then
132+
echo "ecr_image_tags.json version does not match $VERSION"
133+
exit 1
134+
fi
135+
fi
136+
fi

0 commit comments

Comments
 (0)