You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/workflows/layers_partitions.yml
+24-1Lines changed: 24 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,16 @@
5
5
# We pull each the version of the layer and store them as artifacts, the we upload them to each of the Partitioned AWS accounts.
6
6
#
7
7
# A number of safety checks are performed to ensure safety.
8
+
#
9
+
# === Automated activities ===
10
+
# 1. [Setup] configure partition-specific regions, partition names, and STS audience based on target partition (China/GovCloud)
11
+
# 2. [Download] retrieve the specified layer version from the main AWS partition (us-east-1) and store as artifacts
12
+
# 3. [Copy & Verify] deploy the layer to all regions in the target partition and validate layer deployment by comparing SHA256, description, and version numbers
13
+
#
14
+
# === Manual activities ===
15
+
# 1. After the `make-release` workflow finishes and the PR for the documentation update gets created, trigger this workflow manually via `workflow_dispatch` with environment, version, and partition inputs for each Gamma and Prod environment in the China and GovCloud partitions
16
+
# 2. Monitor deployment progress and verify successful layer publication across all target regions
17
+
# 3. Once this workflow is completed, the PR for the documentation update can me merged
8
18
9
19
on:
10
20
workflow_dispatch:
@@ -44,6 +54,7 @@ permissions:
44
54
contents: read
45
55
46
56
jobs:
57
+
# This job configures partition-specific settings including regions, partition names, and STS audience based on the target partition (China or GovCloud) selected in the workflow inputs.
# This job downloads the specified layer version from the main AWS partition (us-east-1) and stores both the layer zip file and metadata as GitHub Actions artifacts for use in deployment.
68
80
download:
69
81
runs-on: ubuntu-latest
70
82
permissions:
@@ -96,7 +108,7 @@ jobs:
96
108
path: AWSLambdaPowertoolsTypeScriptV2.json
97
109
retention-days: 1
98
110
if-no-files-found: error
99
-
111
+
# This job deploys the layer to all regions in the target partition using a matrix strategy. It performs integrity checks, publishes the layer, sets public permissions, and validates deployment.
100
112
copy:
101
113
name: Copy
102
114
needs:
@@ -153,6 +165,11 @@ jobs:
153
165
--action lambda:GetLayerVersion \
154
166
--principal '*' \
155
167
--version-number "$LAYER_VERSION"
168
+
# This step retrieves the newly deployed layer metadata and compares it against the original source layer:
169
+
# 1. SHA256 hash verification - ensures the layer content is identical to the source
170
+
# 2. Description validation - confirms the version number in the description matches the source
171
+
# 3. Layer Version number verification - validates that the layer version numbers match between source and target
Copy file name to clipboardExpand all lines: docs/maintainers.md
+9-27Lines changed: 9 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -179,50 +179,32 @@ layer version that was deployed, as this will be used in the next steps.
179
179
5.**Publish GovCloud Layers (Gamma)**: Run the `Layer Deployment (Partitions)` workflow with the `main` branch,
180
180
targeting the `Gamma` deployment environment and the GovCloud partition, using the Lambda layer version from the
181
181
step 4. This will publish the Lambda layers to the AWS GovCloud (US-East) and AWS GovCloud (US-West) Regions.
182
-
6.**Verify GovCloud Layers (Gamma)**: Download the `AWSLambdaPowertoolsTypeScriptV2-us-gov-east-1.json` and
183
-
`AWSLambdaPowertoolsTypeScriptV2-us-gov-west-1.json` ZIP files. Unzip the files, inspect the JSON files therein and
184
-
ensure the version number in the `Description` field (i.e., `Powertools for AWS Lambda (TypeScript) version 2.20.0`)
185
-
and the layer version in the `LayerVersionArn` field (i.e., `arn:aws-us-gov:lambda:us-gov-east-1:164754790254:layer:AWSLambdaPowertoolsTypeScriptV2:32`)
186
-
are correct.
187
-
7.**Publish GovCloud Layers (Prod)**: Run the `Layer Deployment (Partitions)` workflow with the `main` branch,
182
+
6.**Publish GovCloud Layers (Prod)**: Run the `Layer Deployment (Partitions)` workflow with the `main` branch,
188
183
targeting the `Prod` deployment environment and the GovCloud partition, using the Lambda layer version from step 4.
189
184
This will publish the Lambda layers to the AWS GovCloud (US-East) and AWS GovCloud (US-West) Regions.
190
-
8.**Verify GovCloud Layers (Prod)**: Download the `AWSLambdaPowertoolsTypeScriptV2-us-gov-east-1.json` and
191
-
`AWSLambdaPowertoolsTypeScriptV2-us-gov-west-1.json` ZIP files. Unzip the files, inspect the JSON files therein and
192
-
ensure the version number in the `Description` field (i.e., `Powertools for AWS Lambda (TypeScript) version 2.20.0`)
193
-
and the layer version in the `LayerVersionArn` field (i.e., `arn:aws-us-gov:lambda:us-gov-west-1:165093116878:layer:AWSLambdaPowertoolsTypeScriptV2:32`)
194
-
are correct.
195
-
9.**Publish China Layer (Gamma)**: Run the `Layer Deployment (Partitions)` workflow with the `main` branch, targeting
185
+
7.**Publish China Layer (Gamma)**: Run the `Layer Deployment (Partitions)` workflow with the `main` branch, targeting
196
186
the `Gamma` deployment environment and the China partition, using the Lambda layer version from step 4. This will
197
187
publish the Lambda layer to the AWS China (Beijing) Region.
198
-
10.**Verify China Layer (Gamma)**: Download the `AWSLambdaPowertoolsTypeScriptV2-cn-north-1.json` ZIP file. Unzip
199
-
the file, inspect the JSON file therein and ensure the version number in the `Description` field
200
-
(i.e., `Powertools for AWS Lambda (TypeScript) version 2.20.0`) and the layer version in the `LayerVersionArn` field
201
-
(i.e., `arn:aws-cn:lambda:cn-north-1:498595349401:layer:AWSLambdaPowertoolsTypeScriptV2:32`) are correct.
202
-
11.**Publish China Layer (Prod)**: Run the `Layer Deployment (Partitions)` workflow with the `main` branch,
188
+
8.**Publish China Layer (Prod)**: Run the `Layer Deployment (Partitions)` workflow with the `main` branch,
203
189
targeting the `Prod` deployment environment and the China partition, and using the Lambda layer version from step 4.
204
190
This will publish the Lambda layer to the AWS China (Beijing) Region.
205
-
12.**Verify China Layer (Prod)**: Download the `AWSLambdaPowertoolsTypeScriptV2-cn-north-1.json` ZIP file. Unzip the
206
-
file, inspect the JSON file therein and ensure the version number in the `Description` field
207
-
(i.e., `Powertools for AWS Lambda (TypeScript) version 2.20.0`) and the layer version in the `LayerVersionArn`
208
-
field (i.e., `arn:aws-cn:lambda:cn-north-1:498634801083:layer:AWSLambdaPowertoolsTypeScriptV2:32`) are correct.
209
-
13.**Merge docs PR**: Once the `Layer Deployment (Partition)` workflow for the production China partition is complete,
191
+
9.**Merge docs PR**: Once the `Layer Deployment (Partition)` workflow for the production China partition is complete,
210
192
merge the PR from step 4 to update the documentation with the new version.
211
-
14.**Update SSM Parameters (Beta)**: Run the `SSM Parameters` workflow with the `main` branch, targeting the `beta`
193
+
10.**Update SSM Parameters (Beta)**: Run the `SSM Parameters` workflow with the `main` branch, targeting the `beta`
212
194
deployment environment, and using the package version from npm (i.e., `2.20.0`) and Lambda layer version from step 4.
213
195
This will update the SSM parameters with the new version.
214
-
15.**Verify SSM Parameters (Beta)**: Use the AWS CLI to verify that the SSM parameters were updated correctly. Run
196
+
11.**Verify SSM Parameters (Beta)**: Use the AWS CLI to verify that the SSM parameters were updated correctly. Run
215
197
the following command: `aws ssm get-parameter --name=/aws/service/powertools/beta/typescript/generic/all/latest`
216
198
and `aws ssm get-parameter --name=/aws/service/powertools/beta/typescript/generic/all/<version>` to verify that the
217
199
SSM parameters were updated correctly.
218
-
16.**Update SSM Parameters (Prod)**: Run the `SSM Parameters` workflow with the `main` branch, targeting the `prod`
200
+
12.**Update SSM Parameters (Prod)**: Run the `SSM Parameters` workflow with the `main` branch, targeting the `prod`
219
201
deployment environment, and using the package version from npm (i.e., `2.20.0`) and Lambda layer version from step 4.
220
202
This will update the SSM parameters with the new version.
221
-
17.**Verify SSM Parameters (Prod)**: Use the AWS CLI to verify that the SSM parameters were updated correctly. Run
203
+
13.**Verify SSM Parameters (Prod)**: Use the AWS CLI to verify that the SSM parameters were updated correctly. Run
222
204
the following command: `aws ssm get-parameter --name=/aws/service/powertools/typescript/generic/all/latest`
223
205
and `aws ssm get-parameter --name=/aws/service/powertools/typescript/generic/all/<version>` to verify that the
224
206
SSM parameters were updated correctly.
225
-
18.**Update Docs**: Run the `Rebuild latest docs` workflow with the `main` branch using the package version from
207
+
14.**Update Docs**: Run the `Rebuild latest docs` workflow with the `main` branch using the package version from
226
208
npm (i.e. `2.20.0`). This will update the documentation with the new version.
227
209
228
210
Once complete, you can start drafting the release notes to let customers know **what changed and what's in it for them (a.k.a why they should care)**. We have guidelines in the release notes section so you know what good looks like.
0 commit comments