Skip to content

Commit 2b9a3a3

Browse files
authored
Merge branch 'awslabs:develop' into feat(event-source)-1656-s3-event-eventbridge
2 parents 2a10202 + b9ebe28 commit 2b9a3a3

File tree

4 files changed

+68
-55
lines changed

4 files changed

+68
-55
lines changed

CHANGELOG.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,20 @@
44
<a name="unreleased"></a>
55
# Unreleased
66

7+
## Documentation
8+
9+
* **homepage:** revamp install UX & share how we build Lambda Layer ([#1978](https://github.com/awslabs/aws-lambda-powertools-python/issues/1978))
10+
11+
## Maintenance
12+
13+
* **deps-dev:** bump mypy-boto3-dynamodb from 1.26.24 to 1.26.84 ([#1981](https://github.com/awslabs/aws-lambda-powertools-python/issues/1981))
14+
* **deps-dev:** bump mkdocs-material from 9.0.15 to 9.1.0 ([#1976](https://github.com/awslabs/aws-lambda-powertools-python/issues/1976))
15+
* **deps-dev:** bump cfn-lint from 0.67.0 to 0.74.0 ([#1974](https://github.com/awslabs/aws-lambda-powertools-python/issues/1974))
16+
* **deps-dev:** bump aws-cdk-lib from 2.66.1 to 2.67.0 ([#1977](https://github.com/awslabs/aws-lambda-powertools-python/issues/1977))
17+
18+
19+
<a name="v2.9.1"></a>
20+
## [v2.9.1] - 2023-03-01
721
## Bug Fixes
822

923
* **idempotency:** revert dict mutation that impacted static_pk_value feature ([#1970](https://github.com/awslabs/aws-lambda-powertools-python/issues/1970))
@@ -16,6 +30,7 @@
1630
## Maintenance
1731

1832
* update project description
33+
* update v2 layer ARN on documentation
1934
* **ci:** disable pypi test due to maintenance mode
2035
* **ci:** replace deprecated set-output commands ([#1957](https://github.com/awslabs/aws-lambda-powertools-python/issues/1957))
2136
* **deps:** bump fastjsonschema from 2.16.2 to 2.16.3 ([#1961](https://github.com/awslabs/aws-lambda-powertools-python/issues/1961))
@@ -2926,7 +2941,8 @@
29262941
* Merge pull request [#5](https://github.com/awslabs/aws-lambda-powertools-python/issues/5) from jfuss/feat/python38
29272942

29282943

2929-
[Unreleased]: https://github.com/awslabs/aws-lambda-powertools-python/compare/v2.9.0...HEAD
2944+
[Unreleased]: https://github.com/awslabs/aws-lambda-powertools-python/compare/v2.9.1...HEAD
2945+
[v2.9.1]: https://github.com/awslabs/aws-lambda-powertools-python/compare/v2.9.0...v2.9.1
29302946
[v2.9.0]: https://github.com/awslabs/aws-lambda-powertools-python/compare/v2.8.0...v2.9.0
29312947
[v2.8.0]: https://github.com/awslabs/aws-lambda-powertools-python/compare/v2.7.1...v2.8.0
29322948
[v2.7.1]: https://github.com/awslabs/aws-lambda-powertools-python/compare/v2.7.0...v2.7.1

docs/index.md

Lines changed: 35 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: AWS Lambda Powertools for Python
55

66
<!-- markdownlint-disable MD043 MD013 -->
77

8-
A suite of utilities for AWS Lambda functions to ease adopting best practices such as tracing, structured logging, custom metrics, idempotency, batching, [**and more**](#features).
8+
Powertools is a developer toolkit to implement Serverless best practices and increase developer velocity.
99

1010
???+ tip
1111
Powertools is also available for [Java](https://awslabs.github.io/aws-lambda-powertools-java/){target="_blank"}, [TypeScript](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/){target="_blank"}, and [.NET](https://awslabs.github.io/aws-lambda-powertools-dotnet/){target="_blank"}
@@ -24,41 +24,52 @@ A suite of utilities for AWS Lambda functions to ease adopting best practices su
2424

2525
## Install
2626

27-
Powertools is available in the following formats:
27+
You can install Powertools using one of the following options:
2828

2929
* **Lambda Layer (x86_64)**: [**arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV2:23**](#){: .copyMe}:clipboard:
3030
* **Lambda Layer (arm64)**: [**arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV2-Arm64:23**](#){: .copyMe}:clipboard:
31-
* **PyPi**: **`pip install "aws-lambda-powertools"`**
31+
* **Pip**: **[`pip install "aws-lambda-powertools"`](#){: .copyMe}:clipboard:**
3232

33-
???+ info "Some utilities require additional dependencies"
34-
You can stop reading if you're using Lambda Layer.
35-
36-
[Tracer](./core/tracer.md){target="_blank"}, [Validation](./utilities/validation.md){target="_blank"} and [Parser](./utilities/parser.md){target="_blank"} require additional dependencies. If you prefer to install all of them, use `pip install "aws-lambda-powertools[all]"`.
33+
??? question "Using Pip? You might need to install additional dependencies."
34+
[**Tracer**](./core/tracer.md){target="_blank"}, [**Validation**](./utilities/validation.md){target="_blank"} and [**Parser**](./utilities/parser.md){target="_blank"} require additional dependencies. If you prefer to install all of them, use [**`pip install "aws-lambda-powertools[all]"`**](#){: .copyMe}:clipboard:.
3735

3836
For example:
3937

40-
* [Tracer](./core/tracer.md#install){target="_blank"}: **`pip install "aws-lambda-powertools[tracer]"`**
41-
* [Validation](./utilities/validation.md#install){target="_blank"}: **`pip install "aws-lambda-powertools[validation]"`**
42-
* [Parser](./utilities/parser.md#install){target="_blank"}: **`pip install "aws-lambda-powertools[parser]"`**
43-
* [Tracer](./core/tracer.md#install){target="_blank"} and [Parser](./utilities/parser.md#install){target="_blank"}: **`pip install "aws-lambda-powertools[tracer,parser]"`**
38+
* **Tracer**: **[`pip install "aws-lambda-powertools[tracer]"`](#){: .copyMe}:clipboard:**
39+
* **Validation**: **[`pip install "aws-lambda-powertools[validation]"`](#){: .copyMe}:clipboard:**
40+
* **Parser**: **[`pip install "aws-lambda-powertools[parser]"`](#){: .copyMe}:clipboard:**
41+
* **Tracer** and **Parser**: **[`pip install "aws-lambda-powertools[tracer,parser]"`](#){: .copyMe}:clipboard:**
4442

4543
### Local development
4644

47-
Powertools relies on the AWS SDK bundled in the Lambda runtime. This helps us achieve an optimal package size and initialization.
45+
!!! info "Using Powertools via Lambda Layer? Simply add [**`"aws-lambda-powertools[all]"`**](#){: .copyMe}:clipboard: as a development dependency."
46+
47+
Powertools relies on the [AWS SDK bundled in the Lambda runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html){target="_blank"}. This helps us achieve an optimal package size and initialization. However, when developing locally, you need to install AWS SDK as a development dependency (not as a production dependency):
48+
49+
* **Pip**: [**`pip install "aws-lambda-powertools[aws-sdk]"`**](#){: .copyMe}:clipboard:
50+
* **Poetry**: [**`poetry add "aws-lambda-powertools[aws-sdk]" --group dev`**](#){: .copyMe}:clipboard:
51+
* **Pipenv**: [**`pipenv install --dev "aws-lambda-powertools[aws-sdk]"`**](#){: .copyMe}:clipboard:
52+
53+
??? question "Why is that necessary?"
54+
Powertools relies on the AWS SDK being available to use in the target runtime (AWS Lambda).
4855

49-
This means you need to add AWS SDK as a development dependency (not as a production dependency).
56+
As a result, it affects your favorite IDE in terms of code auto-completion, or running your tests suite locally with no Lambda emulation such as [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html){target="_blank"}.
5057

51-
* **Pip**: `pip install "aws-lambda-powertools[aws-sdk]"`
52-
* **Poetry**: `poetry add "aws-lambda-powertools[aws-sdk]" --group dev`
53-
* **Pipenv**: `pipenv install --dev "aws-lambda-powertools[aws-sdk]"`
58+
**A word about dependency resolution**
5459

55-
???+ note "Local emulation"
56-
If you're running your code locally with [AWS SAM CLI](https://github.com/aws/aws-sam-cli){target="_blank"}, and not with your Python/IDE interpreter directly, this is not necessary. SAM CLI already brings the AWS SDK in its emulation image.
60+
In this context, `[aws-sdk]` is an alias to the `boto3` package. Due to dependency resolution, it'll either install:
61+
62+
* **(A)** the SDK version available in [Lambda runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html){target="_blank"}
63+
* **(B)** a more up-to-date version if another package you use also depends on `boto3`, for example [Powertools Tracer](core/tracer.md){target="_blank"}
5764

5865
### Lambda Layer
5966

67+
???+ warning "As of now, Container Image deployment (OCI) or inline Lambda functions do not support Lambda Layers."
68+
6069
[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. Layers promote code sharing and separation of responsibilities so that you can iterate faster on writing business logic.
6170

71+
For our Layers, we compile and optimize [all dependencies](https://github.com/awslabs/aws-lambda-powertools-python/blob/develop/pyproject.toml#L98){target="_blank"}, and [remove duplicate dependencies already available in the Lambda runtime](https://github.com/awslabs/cdk-aws-lambda-powertools-layer/blob/main/layer/Python/Dockerfile#L36){target="_blank"} to achieve the most optimal size.
72+
6273
You can include Powertools Lambda Layer using [AWS Lambda Console](https://docs.aws.amazon.com/lambda/latest/dg/invocation-layers.html#invocation-layers-using){target="_blank"}, or your preferred deployment framework.
6374

6475
??? note "Note: Click to expand and copy any regional Lambda Layer ARN"
@@ -271,16 +282,6 @@ You can include Powertools Lambda Layer using [AWS Lambda Console](https://docs.
271282
? Do you want to edit the local lambda function now? No
272283
```
273284

274-
=== "Get the Layer .zip contents"
275-
276-
Change {region} to your AWS region, e.g. `eu-west-1`
277-
278-
```bash title="AWS CLI"
279-
aws lambda get-layer-version-by-arn --arn arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV2:23 --region {region}
280-
```
281-
282-
The pre-signed URL to download this Lambda Layer will be within `Location` key.
283-
284285
=== "arm64"
285286

286287
=== "SAM"
@@ -439,18 +440,14 @@ You can include Powertools Lambda Layer using [AWS Lambda Console](https://docs.
439440
? Do you want to edit the local lambda function now? No
440441
```
441442

442-
=== "Get the Layer .zip contents"
443-
Change {region} to your AWS region, e.g. `eu-west-1`
443+
??? question "Want to inspect the contents of the Layer?"
444+
Change {region} to your AWS region, e.g. `eu-west-1`
444445

445-
```bash title="AWS CLI"
446-
aws lambda get-layer-version-by-arn --arn arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV2-Arm64:23 --region {region}
447-
```
448-
449-
The pre-signed URL to download this Lambda Layer will be within `Location` key.
450-
451-
???+ warning "Warning: Limitations"
446+
```bash title="AWS CLI"
447+
aws lambda get-layer-version-by-arn --arn arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV2:23 --region {region}
448+
```
452449

453-
Container Image deployment (OCI) or inline Lambda functions do not support Lambda Layers.
450+
The pre-signed URL to download this Lambda Layer will be within `Location` key.
454451

455452
#### SAR
456453

poetry.lock

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ python-snappy = "^0.6.1"
7272
mypy-boto3-appconfig = "^1.26.71"
7373
mypy-boto3-cloudformation = "^1.26.57"
7474
mypy-boto3-cloudwatch = "^1.26.52"
75-
mypy-boto3-dynamodb = "^1.26.24"
75+
mypy-boto3-dynamodb = "^1.26.84"
7676
mypy-boto3-lambda = "^1.26.80"
7777
mypy-boto3-logs = "^1.26.53"
7878
mypy-boto3-secretsmanager = "^1.26.49"
@@ -81,7 +81,7 @@ mypy-boto3-s3 = "^1.26.62"
8181
mypy-boto3-xray = "^1.26.11"
8282
types-requests = "^2.28.11"
8383
typing-extensions = "^4.4.0"
84-
mkdocs-material = "^9.0.15"
84+
mkdocs-material = "^9.1.0"
8585
filelock = "^3.9.0"
8686
checksumdir = "^1.2.0"
8787
mypy-boto3-appconfigdata = "^1.26.70"
@@ -100,7 +100,7 @@ all = ["pydantic", "aws-xray-sdk", "fastjsonschema"]
100100
aws-sdk = ["boto3"]
101101

102102
[tool.poetry.group.dev.dependencies]
103-
cfn-lint = "0.67.0"
103+
cfn-lint = "0.74.0"
104104
mypy = "^0.982"
105105
types-python-dateutil = "^2.8.19.6"
106106
httpx = "^0.23.3"

0 commit comments

Comments
 (0)