Skip to content

Commit 1272b2f

Browse files
Merge branch 'develop' into layer/fix-dockerfile-issues
2 parents ece5e47 + 27b5548 commit 1272b2f

File tree

3 files changed

+29
-16
lines changed

3 files changed

+29
-16
lines changed

.github/workflows/layers_partition_verify.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Parition Layer Verification
1+
# Partition Layer Verification
22
# ---
3-
# This workflow queries the Parition layer info in production only
3+
# This workflow queries the Partition layer info in production only
44

55
on:
66
workflow_dispatch:
@@ -51,11 +51,11 @@ jobs:
5151
runs-on: ubuntu-latest
5252
outputs:
5353
regions: ${{ format('{0}{1}', steps.regions_china.outputs.regions, steps.regions_govcloud.outputs.regions) }}
54-
parition: ${{ format('{0}{1}', steps.regions_china.outputs.partition, steps.regions_govcloud.outputs.parition) }}
54+
partition: ${{ format('{0}{1}', steps.regions_china.outputs.partition, steps.regions_govcloud.outputs.partition) }}
5555
aud: ${{ format('{0}{1}', steps.regions_china.outputs.aud, steps.regions_govcloud.outputs.aud) }}
5656
steps:
5757
- id: regions_china
58-
name: Parition (China)
58+
name: Partition (China)
5959
if: ${{ inputs.partition == 'China' }}
6060
run: |
6161
echo regions='["cn-north-1"]'>> "$GITHUB_OUTPUT"
@@ -95,7 +95,7 @@ jobs:
9595
- name: Output ${{ matrix.layer }}-${{ matrix.arch }}
9696
# fetch the specific layer version information from the us-east-1 commercial region
9797
run: |
98-
aws --region us-east-1 lambda get-layer-version-by-arn --arn 'arn:aws:lambda:us-east-1:017000801446:layer:${{ matrix.layer }}-${{ matrix.arch }}:${{ inputs.version }}' | jq -r '{"Layer Version Arn": .LayerVersionArn, "Version": .Version, "Description": .Description, "Compatible Runtimes": .CompatibleRuntimes[0], "Compatible Architectures": .CompatibleArchitectures[0], "SHA": .Content.CodeSha256} | keys[] as $k | [$k, .[$k]] | @tsv' | column -t -s $'\t'
98+
aws --region us-east-1 lambda get-layer-version-by-arn --arn 'arn:aws:lambda:us-east-1:017000801446:layer:${{ matrix.layer }}-${{ matrix.arch }}:${{ inputs.version }}' > '${{ matrix.layer }}-${{ matrix.arch }}.json'
9999
- name: Store Metadata
100100
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
101101
with:
@@ -149,7 +149,7 @@ jobs:
149149
- name: Verify Layer
150150
run: |
151151
export layer_output='${{ matrix.layer }}-${{ matrix.arch }}-${{matrix.region}}.json'
152-
aws --region ${{ matrix.region}} lambda get-layer-version-by-arn --arn "arn:${{ needs.setup.outputs.parition }}:lambda:${{ matrix.region}}:${{ secrets[format('AWS_ACCOUNT_{0}', steps.transform.outputs.CONVERTED_REGION)] }}:layer:${{ matrix.layer }}-${{ matrix.arch }}:${{ steps.partition_version.outputs.partition_version }}" > $layer_output
152+
aws --region ${{ matrix.region}} lambda get-layer-version-by-arn --arn "arn:${{ needs.setup.outputs.partition }}:lambda:${{ matrix.region}}:${{ secrets[format('AWS_ACCOUNT_{0}', steps.transform.outputs.CONVERTED_REGION)] }}:layer:${{ matrix.layer }}-${{ matrix.arch }}:${{ steps.partition_version.outputs.partition_version }}" > $layer_output
153153
REMOTE_SHA=$(jq -r '.Content.CodeSha256' $layer_output)
154154
LOCAL_SHA=$(jq -r '.Content.CodeSha256' ${{ matrix.layer }}-${{ matrix.arch }}.json)
155155
test "$REMOTE_SHA" == "$LOCAL_SHA" && echo "SHA OK: ${LOCAL_SHA}" || exit 1

.github/workflows/layers_partitions.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,20 @@ jobs:
9191
mask-aws-account-id: true
9292
- name: Grab Zip
9393
run: |
94-
aws --region us-east-1 lambda get-layer-version-by-arn --arn arn:aws:lambda:us-east-1:017000801446:layer:${{ matrix.layer }}-${{ matrix.arch }}:${{ inputs.version }} --query 'Content.Location' | xargs curl -L -o ${{ matrix.layer }}_${{ matrix.arch }}.zip
95-
aws --region us-east-1 lambda get-layer-version-by-arn --arn arn:aws:lambda:us-east-1:017000801446:layer:${{ matrix.layer }}-${{ matrix.arch }}:${{ inputs.version }} > ${{ matrix.layer }}_${{ matrix.arch }}.json
94+
aws --region us-east-1 lambda get-layer-version-by-arn --arn arn:aws:lambda:us-east-1:017000801446:layer:${{ matrix.layer }}-${{ matrix.arch }}:${{ inputs.version }} --query 'Content.Location' | xargs curl -L -o ${{ matrix.layer }}-${{ matrix.arch }}.zip
95+
aws --region us-east-1 lambda get-layer-version-by-arn --arn arn:aws:lambda:us-east-1:017000801446:layer:${{ matrix.layer }}-${{ matrix.arch }}:${{ inputs.version }} > ${{ matrix.layer }}-${{ matrix.arch }}.json
9696
- name: Store Zip
9797
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
9898
with:
99-
name: ${{ matrix.layer }}_${{ matrix.arch }}.zip
100-
path: ${{ matrix.layer }}_${{ matrix.arch }}.zip
99+
name: ${{ matrix.layer }}-${{ matrix.arch }}.zip
100+
path: ${{ matrix.layer }}-${{ matrix.arch }}.zip
101101
retention-days: 1
102102
if-no-files-found: error
103103
- name: Store Metadata
104104
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
105105
with:
106-
name: ${{ matrix.layer }}_${{ matrix.arch }}.json
107-
path: ${{ matrix.layer }}_${{ matrix.arch }}.json
106+
name: ${{ matrix.layer }}-${{ matrix.arch }}.json
107+
path: ${{ matrix.layer }}-${{ matrix.arch }}.json
108108
retention-days: 1
109109
if-no-files-found: error
110110

@@ -135,15 +135,15 @@ jobs:
135135
- name: Download Zip
136136
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
137137
with:
138-
name: ${{ matrix.layer }}_${{ matrix.arch }}.zip
138+
name: ${{ matrix.layer }}-${{ matrix.arch }}.zip
139139
- name: Download Metadata
140140
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
141141
with:
142-
name: ${{ matrix.layer }}_${{ matrix.arch }}.json
142+
name: ${{ matrix.layer }}-${{ matrix.arch }}.json
143143
- name: Verify Layer Signature
144144
run: |
145-
SHA=$(jq -r '.Content.CodeSha256' '${{ matrix.layer }}_${{ matrix.arch }}.json')
146-
test "$(openssl dgst -sha256 -binary ${{ matrix.layer }}_${{ matrix.arch }}.zip | openssl enc -base64)" == "$SHA" && echo "SHA OK: ${SHA}" || exit 1
145+
SHA=$(jq -r '.Content.CodeSha256' '${{ matrix.layer }}-${{ matrix.arch }}.json')
146+
test "$(openssl dgst -sha256 -binary ${{ matrix.layer }}-${{ matrix.arch }}.zip | openssl enc -base64)" == "$SHA" && echo "SHA OK: ${SHA}" || exit 1
147147
- id: transform
148148
run: |
149149
echo 'CONVERTED_REGION=${{ matrix.region }}' | tr 'a-z\-' 'A-Z_' >> "$GITHUB_OUTPUT"

docs/index.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,19 @@ You can install Powertools for AWS Lambda (Python) using your favorite dependenc
210210

211211
You'll find the pre-signed URL under `Location` key as part of the CLI command output.
212212

213+
=== "Lambda Layer (China)"
214+
215+
[Lambda Layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html){target="_blank"} is a .zip file archive that can contain additional code, pre-packaged dependencies, data, or configuration files. We compile and optimize [all dependencies](#install), and remove duplicate dependencies [already available in the Lambda runtime](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/layer_v3/docker/Dockerfile#L34){target="_blank"} to achieve the most optimal size.
216+
217+
For the latter, make sure to replace `{python_version}` without the period (.), e.g., `python313` for `Python 3.13`.
218+
219+
**AWS China Beijing (cn-north-1)**
220+
221+
| Architecture | Layer ARN |
222+
| ------------ | --------------------------------------------------------------------------------------------------------- |
223+
| x86_64 | __arn:aws-cn:lambda:cn-north-1:498634801083:layer:AWSLambdaPowertoolsPythonV3-{python_version}-x86_64:18__{: .copyMe}:clipboard: |
224+
| ARM | __arn:aws-cn:lambda:cn-north-1:498634801083:layer:AWSLambdaPowertoolsPythonV3-{python_version}-arm64:18__{: .copyMe}:clipboard: |
225+
213226
=== "Lambda Layer (GovCloud)"
214227

215228
[Lambda Layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html){target="_blank"} is a .zip file archive that can contain additional code, pre-packaged dependencies, data, or configuration files. We compile and optimize [all dependencies](#install), and remove duplicate dependencies [already available in the Lambda runtime](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/layer_v3/docker/Dockerfile#L34){target="_blank"} to achieve the most optimal size.

0 commit comments

Comments
 (0)