From 5d55fe4ea6d3df5b24ed3b880d828137863d99d1 Mon Sep 17 00:00:00 2001 From: oyiz-michael Date: Fri, 28 Nov 2025 21:37:49 +0100 Subject: [PATCH] fix(ci): update layer version for all AWS partitions in docs Fixes #7650 This extends the fix from #6868 to handle all AWS partitions, not just commercial AWS. The previous fix only updated layer ARNs with specific python versions (e.g., python312) but missed the template placeholders with {python_version} for China and GovCloud partitions. Changes: - Updated hardcoded layer versions from :18 to :27 in docs/index.md - Extended update_layer_arn_v3.sh to handle AWS China (arn:aws-cn) and GovCloud (arn:aws-us-gov) layer ARNs - Added sed patterns for both specific versions and {python_version} placeholders across all AWS partitions The automation now correctly updates layer versions for: - Commercial AWS: arn:aws:lambda:{region}:017000801446:layer:... - AWS China: arn:aws-cn:lambda:cn-north-1:498634801083:layer:... - GovCloud East: arn:aws-us-gov:lambda:us-gov-east-1:165087284144:layer:... - GovCloud West: arn:aws-us-gov:lambda:us-gov-west-1:165093116878:layer:... --- docs/index.md | 16 ++++++++-------- layer_v3/scripts/update_layer_arn_v3.sh | 13 ++++++++++++- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/docs/index.md b/docs/index.md index 6143aa6b4ea..abdaa8bf671 100644 --- a/docs/index.md +++ b/docs/index.md @@ -70,8 +70,8 @@ You can install Powertools for AWS Lambda (Python) using your favorite dependenc | Architecture | Layer ARN | | ------------ | ----------------------------------------------------------------------------------------------------------------------------- | - | x86_64 | __arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV3-{python_version}-x86_64:18__{: .copyMe} | - | ARM | __arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV3-{python_version}-arm64:18__{: .copyMe} | + | x86_64 | __arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV3-{python_version}-x86_64:27__{: .copyMe} | + | ARM | __arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV3-{python_version}-arm64:27__{: .copyMe} | === "AWS Console" @@ -221,8 +221,8 @@ You can install Powertools for AWS Lambda (Python) using your favorite dependenc | Architecture | Layer ARN | | ------------ | --------------------------------------------------------------------------------------------------------- | - | x86_64 | __arn:aws-cn:lambda:cn-north-1:498634801083:layer:AWSLambdaPowertoolsPythonV3-{python_version}-x86_64:18__{: .copyMe} | - | ARM | __arn:aws-cn:lambda:cn-north-1:498634801083:layer:AWSLambdaPowertoolsPythonV3-{python_version}-arm64:18__{: .copyMe} | + | x86_64 | __arn:aws-cn:lambda:cn-north-1:498634801083:layer:AWSLambdaPowertoolsPythonV3-{python_version}-x86_64:27__{: .copyMe} | + | ARM | __arn:aws-cn:lambda:cn-north-1:498634801083:layer:AWSLambdaPowertoolsPythonV3-{python_version}-arm64:27__{: .copyMe} | === "Lambda Layer (GovCloud)" @@ -234,15 +234,15 @@ You can install Powertools for AWS Lambda (Python) using your favorite dependenc | Architecture | Layer ARN | | ------------ | --------------------------------------------------------------------------------------------------------- | - | x86_64 | __arn:aws-us-gov:lambda:us-gov-east-1:165087284144:layer:AWSLambdaPowertoolsPythonV3-{python_version}-x86_64:18__{: .copyMe}:clipboard: | - | ARM | __arn:aws-us-gov:lambda:us-gov-east-1:165087284144:layer:AWSLambdaPowertoolsPythonV3-{python_version}-arm64:18__{: .copyMe}:clipboard: | + | x86_64 | __arn:aws-us-gov:lambda:us-gov-east-1:165087284144:layer:AWSLambdaPowertoolsPythonV3-{python_version}-x86_64:27__{: .copyMe}:clipboard: | + | ARM | __arn:aws-us-gov:lambda:us-gov-east-1:165087284144:layer:AWSLambdaPowertoolsPythonV3-{python_version}-arm64:27__{: .copyMe}:clipboard: | **AWS GovCloud (us-gov-west-1)** | Architecture | Layer ARN | | ------------ | --------------------------------------------------------------------------------------------------------- | - | x86_64 | __arn:aws-us-gov:lambda:us-gov-west-1:165093116878:layer:AWSLambdaPowertoolsPythonV3-{python_version}-x86_64:18__{: .copyMe} | - | ARM | __arn:aws-us-gov:lambda:us-gov-west-1:165093116878:layer:AWSLambdaPowertoolsPythonV3-{python_version}-arm64:18__{: .copyMe} | + | x86_64 | __arn:aws-us-gov:lambda:us-gov-west-1:165093116878:layer:AWSLambdaPowertoolsPythonV3-{python_version}-x86_64:27__{: .copyMe} | + | ARM | __arn:aws-us-gov:lambda:us-gov-west-1:165093116878:layer:AWSLambdaPowertoolsPythonV3-{python_version}-arm64:27__{: .copyMe} | === "Serverless Application Repository (SAR)" diff --git a/layer_v3/scripts/update_layer_arn_v3.sh b/layer_v3/scripts/update_layer_arn_v3.sh index 5b769d1b977..a28ec39ef19 100755 --- a/layer_v3/scripts/update_layer_arn_v3.sh +++ b/layer_v3/scripts/update_layer_arn_v3.sh @@ -27,11 +27,22 @@ find ./docs ./examples -type f \( -name "*.md" -o -name "*.py" -o -name "*.yaml" # -i: edit files in-place without creating a backup # -E: use extended regular expressions # The regex matches the layer name and replaces only the version number at the end + + # Commercial AWS (arn:aws:lambda) sed -i -E "s/(AWSLambdaPowertoolsPythonV3-python[0-9]+-((arm64)|(x86_64)):)[0-9]+/\1$new_version/g" "$file" sed -i -E "s/(AWSLambdaPowertoolsPythonV3-{python_version}-((arm64)|(x86_64)):)[0-9]+/\1$new_version/g" "$file" + + # AWS China (arn:aws-cn:lambda) + sed -i -E "s/(arn:aws-cn:lambda:[^:]+:[^:]+:layer:AWSLambdaPowertoolsPythonV3-python[0-9]+-((arm64)|(x86_64)):)[0-9]+/\1$new_version/g" "$file" + sed -i -E "s/(arn:aws-cn:lambda:[^:]+:[^:]+:layer:AWSLambdaPowertoolsPythonV3-{python_version}-((arm64)|(x86_64)):)[0-9]+/\1$new_version/g" "$file" + + # AWS GovCloud (arn:aws-us-gov:lambda) + sed -i -E "s/(arn:aws-us-gov:lambda:[^:]+:[^:]+:layer:AWSLambdaPowertoolsPythonV3-python[0-9]+-((arm64)|(x86_64)):)[0-9]+/\1$new_version/g" "$file" + sed -i -E "s/(arn:aws-us-gov:lambda:[^:]+:[^:]+:layer:AWSLambdaPowertoolsPythonV3-{python_version}-((arm64)|(x86_64)):)[0-9]+/\1$new_version/g" "$file" + if [ $? -eq 0 ]; then echo "Updated $file successfully" - grep "arn:aws:lambda:" "$file" + grep "arn:aws.*:lambda:" "$file" || true else echo "Error processing $file" fi