mirror of
https://github.com/swift-server/swift-aws-lambda-runtime.git
synced 2026-06-02 07:27:33 +00:00
main
106 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
9f566bf4f1 |
[plugin] Display a warning when compiling on Amazon Linux 2 and optin documentation and examples for Amazon Linux 2023 (#668)
This PR has been reworked. Instead of silently switching the default base image based on Swift version, we now: 1. **Keep Amazon Linux 2 as the default** base Docker image for the packager plugin 2. **Add a prominent deprecation warning** when AL2 is used (either via Docker or natively), informing developers that AL2 reaches End of Life on June 30, 2026 3. **Migrate all examples** (READMEs, SAM templates, scripts) to build and deploy on Amazon Linux 2023 (`provided.al2023` runtime + `--base-docker-image swift:amazonlinux2023`) 4. **Update documentation** (readme, quick-setup) with migration notes The warning includes the `--base-docker-image swift:6.3-amazonlinux2023` flag and reminds developers to use the `provided.al2023` runtime when deploying. After June 30, 2026, the default will switch to AL2023. --- <details> <summary>Original PR description (superseded)</summary> ~~Now that Docker Hub has official Swift images based on Amazon Linux 2023 (starting with 6.3), the packager plugin picks the right base image automatically depending on the Swift version:~~ ~~- Swift 6.3 and later: `swift:<version>-amazonlinux2023`~~ ~~- Earlier versions: `swift:<version>-amazonlinux2` (unchanged behavior)~~ ~~- No version specified (latest): defaults to `amazonlinux2023`~~ ~~When only a major version is provided (e.g. `--swift-version 6` without a minor), we conservatively treat it as 6.0 and use Amazon Linux 2, since we can't be sure it's 6.3+.~~ ~~Also added a verbose log line showing the resolved Swift version, Amazon Linux version, and final base image to help with debugging.~~ ~~The `--base-docker-image` flag still overrides everything as before.~~ </details> --------- Co-authored-by: Sébastien Stormacq <stormacq@amazon.lu> |
||
|
|
bd7d9ee38a |
Add ResourcesPackaging README and update dependencies (#669)
Two small housekeeping changes: - Added a README for the ResourcesPackaging example explaining how to use Swift package resources with Lambda. - Updated dependency versions in Package.swift to avoid CI errors on current toolchains. |
||
|
|
2745fe1b5e |
drop support for Swift 6.0 (#667)
Drop support fro Swift 6.0 as per ecosystem's policy to support the last three major versions, now 6.1, 6.2, and 6.3 - CI is updated - all docs, readme, and examples are updated to 6.3 as default |
||
|
|
ddad9b9bee |
Use published dependency by default in examples (#665)
## Summary Examples now default to the published `swift-aws-lambda-runtime` package from GitHub, so they work out of the box when cloned standalone (as described in the READMEs). CI scripts swap the dependency to the local path (`../..`) before building, ensuring we still test against the current branch. ### Changes - **`Examples/APIGatewayV2/Package.swift`** — Default to remote URL, local path is commented out with clear instructions. - **`.github/workflows/scripts/use-local-deps.sh`** (new) — Shared script that rewrites Package.swift to use the local dependency. - **`integration_tests.sh`**, **`check-archive-plugin.sh`**, **`check-link-foundation.sh`** — Source `use-local-deps.sh` before building. |
||
|
|
db771cf844 | Update CDK dependencies in Examples/CDK | ||
|
|
b963eba265 | Update CDK dependencies in Examples/CDK | ||
|
|
a3816ccdda |
Bump yaml and aws-cdk-lib in /Examples/CDK/infra (#661)
Removes [yaml](https://github.com/eemeli/yaml). It's no longer used after updating ancestor dependency [aws-cdk-lib](https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib). These dependencies need to be updated together. Removes `yaml` Updates `aws-cdk-lib` from 2.241.0 to 2.248.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/aws/aws-cdk/releases">aws-cdk-lib's releases</a>.</em></p> <blockquote> <h2>v2.248.0</h2> <h3>Bug Fixes</h3> <ul> <li><strong>eks:</strong> downgrade isolated subnet validation from error to warning (<a href="https://redirect.github.com/aws/aws-cdk/issues/37500">#37500</a>) (<a href="https://github.com/aws/aws-cdk/commit/470856cadcee34b2ec5e0620fab63838c223fd97">470856c</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/37491">#37491</a></li> </ul> <hr /> <h2>Alpha modules (2.248.0-alpha.0)</h2> <h2>v2.247.0</h2> <h3>⚠ BREAKING CHANGES</h3> <ul> <li>** L1 resources are automatically generated from public CloudFormation Resource Schemas. They are built to closely reflect the real state of CloudFormation. Sometimes these updates can contain changes that are incompatible with previous types, but more accurately reflect reality. In this release we have changed:</li> </ul> <p>aws-bedrockagentcore: AWS::BedrockAgentCore::OnlineEvaluationConfig: ExecutionStatus attribute removed. aws-appstream: AWS::AppStream::ImageBuilder: Name property is now immutable. aws-eks: AWS::EKS::Capability: EKS_CAPABILITY_ACK_S3_LOGS vended log type removed.</p> <h3>Features</h3> <ul> <li>update L1 CloudFormation resource definitions (<a href="https://redirect.github.com/aws/aws-cdk/issues/37410">#37410</a>) (<a href="https://github.com/aws/aws-cdk/commit/bd2c3187323c7bcf8a19943f86682c14c601d1a9">bd2c318</a>)</li> <li><strong>apigatewayv2:</strong> add role support for lambda authorizers (<a href="https://redirect.github.com/aws/aws-cdk/issues/35706">#35706</a>) (<a href="https://github.com/aws/aws-cdk/commit/2fb2f1650e957979e5ebf8292df3a95d41baa4ff">2fb2f16</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/35696">#35696</a></li> <li><strong>batch:</strong> skip unregister job definition on update (<a href="https://redirect.github.com/aws/aws-cdk/issues/36011">#36011</a>) (<a href="https://github.com/aws/aws-cdk/commit/2fb2240d2b2ca922e0603c3e341bb61ce9131155">2fb2240</a>)</li> <li><strong>elasticloadbalancingv2:</strong> jwt verification for application load balancer (<a href="https://redirect.github.com/aws/aws-cdk/issues/36099">#36099</a>) (<a href="https://github.com/aws/aws-cdk/commit/aacd28aac59dbf42973302e3165140d944356b32">aacd28a</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/36096">#36096</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>bump brace-expansion from 5.0.3 to 5.0.5 to address CVE-2026-33750 (<a href="https://redirect.github.com/aws/aws-cdk/issues/37379">#37379</a>) (<a href="https://github.com/aws/aws-cdk/commit/69cf4c9c44c610eb029d92e355efcf6e7f931ed2">69cf4c9</a>)</li> <li>prevent prototype pollution in 2 APIs (<a href="https://redirect.github.com/aws/aws-cdk/issues/37453">#37453</a>) (<a href="https://github.com/aws/aws-cdk/commit/101653766cab8a8112608e170f5e07f5b962ba49">1016537</a>)</li> <li><strong>aws-cdk-lib:</strong> condensed stack trace hides namespaced package name (<a href="https://redirect.github.com/aws/aws-cdk/issues/37413">#37413</a>) (<a href="https://github.com/aws/aws-cdk/commit/cb8e7fbc9fc10682d505b2cdba1a7ce173b0dfd3">cb8e7fb</a>)</li> </ul> <hr /> <h2>Alpha modules (2.247.0-alpha.0)</h2> <h3>Features</h3> <ul> <li><strong>mediapackagev2-alpha:</strong> new L2 construct (<a href="https://redirect.github.com/aws/aws-cdk/issues/37279">#37279</a>) (<a href="https://github.com/aws/aws-cdk/commit/7debfb9c5e807fac5df6e9e0ea3097d72325ffbc">7debfb9</a>)</li> </ul> <h2>v2.246.0</h2> <h3>Features</h3> <ul> <li><strong>bedrock:</strong> add MiniMax and GLM foundation model identifiers (<a href="https://redirect.github.com/aws/aws-cdk/issues/37348">#37348</a>) (<a href="https://github.com/aws/aws-cdk/commit/201534444ac183959119c1849f34931fa8f3d18d">2015344</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/37347">#37347</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>dynamodb:</strong> throw error when grantee is an unsupported ServicePrincipal (<a href="https://redirect.github.com/aws/aws-cdk/issues/37335">#37335</a>) (<a href="https://github.com/aws/aws-cdk/commit/d12754fdeda48181b235cbf563358ffeaa1e4c2f">d12754f</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/35817">#35817</a> <a href="https://redirect.github.com/aws//redirect.github.com/aws/aws-cdk/issues/37273/issues/issuecomment-4099645443">aws/aws-cdk#37273</a></li> <li><strong>lambda-nodejs:</strong> use powershell for spawn steps on Windows (<a href="https://redirect.github.com/aws/aws-cdk/issues/37412">#37412</a>) (<a href="https://github.com/aws/aws-cdk/commit/a92105c64c4ff30bd85f506ef4f7dec39a923871">a92105c</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/37387">#37387</a></li> <li><strong>core:</strong> noisy property deprecation warnings (<a href="https://redirect.github.com/aws/aws-cdk/pull/37415">#37415</a>) (<a href="https://github.com/aws/aws-cdk/commit/4fd000271d26a3dd9f1617800d07e02b40af7db1">4fd0002</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/37407">#37407</a></li> </ul> <h3>Reverts</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/aws/aws-cdk/blob/main/CHANGELOG.v2.alpha.md">aws-cdk-lib's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <p>All notable changes to this project will be documented in this file. See <a href="https://github.com/conventional-changelog/standard-version">standard-version</a> for commit guidelines.</p> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.247.0-alpha.0...v2.248.0-alpha.0">2.248.0-alpha.0</a> (2026-04-02)</h2> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.246.0-alpha.0...v2.247.0-alpha.0">2.247.0-alpha.0</a> (2026-04-02)</h2> <h3>Features</h3> <ul> <li><strong>mediapackagev2-alpha:</strong> new L2 construct (<a href="https://redirect.github.com/aws/aws-cdk/issues/37279">#37279</a>) (<a href="https://github.com/aws/aws-cdk/commit/7debfb9c5e807fac5df6e9e0ea3097d72325ffbc">7debfb9</a>)</li> </ul> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.245.0-alpha.0...v2.246.0-alpha.0">2.246.0-alpha.0</a> (2026-03-31)</h2> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.244.0-alpha.0...v2.245.0-alpha.0">2.245.0-alpha.0</a> (2026-03-27)</h2> <h3>Features</h3> <ul> <li><strong>s3tables-alpha:</strong> add support for partition spec, sort order, and table properties (<a href="https://redirect.github.com/aws/aws-cdk/issues/36811">#36811</a>) (<a href="https://github.com/aws/aws-cdk/commit/2696cd16e8e2edc8d40f1443b9c87eb6171e5d1f">2696cd1</a>)</li> <li><strong>s3tables-alpha:</strong> add metrics configuration support for TableBucket (<a href="https://redirect.github.com/aws/aws-cdk/issues/37275">#37275</a>) (<a href="https://github.com/aws/aws-cdk/commit/e8786f5d782d906971f933a2d6d432309d5384d7">e8786f5</a>)</li> <li><strong>s3tables-alpha:</strong> implement ITaggableV2 on TableBucket and Table L2 constructs (<a href="https://redirect.github.com/aws/aws-cdk/issues/37277">#37277</a>) (<a href="https://github.com/aws/aws-cdk/commit/69c8944ea3f4abf0f4218af2fc42c8e862e8cad3">69c8944</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/33054">#33054</a></li> </ul> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.243.0-alpha.0...v2.244.0-alpha.0">2.244.0-alpha.0</a> (2026-03-19)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>kinesisanalytics-flink-alpha:</strong> mark deprecated flink runtimes as deprecated (<a href="https://redirect.github.com/aws/aws-cdk/issues/37155">#37155</a>) (<a href="https://github.com/aws/aws-cdk/commit/0a894472650bb1a2c41050ae2b00581fb937c924">0a89447</a>)</li> </ul> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.242.0-alpha.0...v2.243.0-alpha.0">2.243.0-alpha.0</a> (2026-03-11)</h2> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.241.0-alpha.0...v2.242.0-alpha.0">2.242.0-alpha.0</a> (2026-03-10)</h2> <h3>Features</h3> <ul> <li><strong>mixins-preview:</strong> allow passing resource objects into properties in CFN Property mixins (<a href="https://redirect.github.com/aws/aws-cdk/issues/37148">#37148</a>) (<a href="https://github.com/aws/aws-cdk/commit/f2386291a50961660135b6d13b576a3744fa5ecf">f238629</a>)</li> <li><strong>mixins-preview:</strong> generate EventBridge pattern for all events (<a href="https://redirect.github.com/aws/aws-cdk/issues/37081">#37081</a>) (<a href="https://github.com/aws/aws-cdk/commit/f30e8360112c724ce386f26d7d2bf10d6a58e479">f30e836</a>)</li> <li><strong>mixins-preview:</strong> support custom merge strategies via IMergeStrategy (<a href="https://redirect.github.com/aws/aws-cdk/issues/37170">#37170</a>) (<a href="https://github.com/aws/aws-cdk/commit/0dec0113c45f5808e2afd45ac5be1d044e577a4b">0dec011</a>)</li> </ul> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.240.0-alpha.0...v2.241.0-alpha.0">2.241.0-alpha.0</a> (2026-03-02)</h2> <h3>Features</h3> <ul> <li><strong>mixins-preview:</strong> add <code>recordFields</code> and <code>outputFormat</code> to Vended Logs Mixin (<a href="https://redirect.github.com/aws/aws-cdk/issues/37042">#37042</a>) (<a href="https://github.com/aws/aws-cdk/commit/dd94c312ae77cd9b51cbf6d544c85a2af6a7cdc8">dd94c31</a>)</li> <li><strong>mixins-preview:</strong> cross account delivery destinations (<a href="https://redirect.github.com/aws/aws-cdk/issues/36827">#36827</a>) (<a href="https://github.com/aws/aws-cdk/commit/a759eb69d560ff039d09d62e91627bb267a664e5">a759eb6</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aws/aws-cdk/commit/78536e699d4c5acac876156ea0c2aaab7dff3f82"><code>78536e6</code></a> Merge branch 'main' into merge-back/2.247.0</li> <li><a href="https://github.com/aws/aws-cdk/commit/470856cadcee34b2ec5e0620fab63838c223fd97"><code>470856c</code></a> fix(eks): downgrade isolated subnet validation from error to warning (<a href="https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib/issues/37500">#37500</a>)</li> <li><a href="https://github.com/aws/aws-cdk/commit/7b6c66ff5b92e4071d41defc46558e0c73c887d8"><code>7b6c66f</code></a> chore: update analytics metadata blueprints</li> <li><a href="https://github.com/aws/aws-cdk/commit/6fc7add92e3355556777cd088487259325acaf6f"><code>6fc7add</code></a> chore: yarn upgrade dependencies requiring intervention (<a href="https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib/issues/36806">#36806</a>)</li> <li><a href="https://github.com/aws/aws-cdk/commit/bd2c3187323c7bcf8a19943f86682c14c601d1a9"><code>bd2c318</code></a> feat: update L1 CloudFormation resource definitions (<a href="https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib/issues/37410">#37410</a>)</li> <li><a href="https://github.com/aws/aws-cdk/commit/2fb2f1650e957979e5ebf8292df3a95d41baa4ff"><code>2fb2f16</code></a> feat(apigatewayv2): add role support for lambda authorizers (<a href="https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib/issues/35706">#35706</a>)</li> <li><a href="https://github.com/aws/aws-cdk/commit/aacd28aac59dbf42973302e3165140d944356b32"><code>aacd28a</code></a> feat(elasticloadbalancingv2): jwt verification for application load balancer ...</li> <li><a href="https://github.com/aws/aws-cdk/commit/101653766cab8a8112608e170f5e07f5b962ba49"><code>1016537</code></a> fix: prevent prototype pollution in 2 APIs (<a href="https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib/issues/37453">#37453</a>)</li> <li><a href="https://github.com/aws/aws-cdk/commit/2fb2240d2b2ca922e0603c3e341bb61ce9131155"><code>2fb2240</code></a> feat(batch): skip unregister job definition on update (<a href="https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib/issues/36011">#36011</a>)</li> <li><a href="https://github.com/aws/aws-cdk/commit/372571a41a93694a3f48046f22508353df323ce3"><code>372571a</code></a> Merge branch 'main' into merge-back/2.246.0</li> <li>Additional commits viewable in <a href="https://github.com/aws/aws-cdk/commits/v2.248.0/packages/aws-cdk-lib">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/awslabs/swift-aws-lambda-runtime/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
f3bd0ae938 |
Bump picomatch from 2.3.1 to 2.3.2 in /Examples/CDK/infra (#660)
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/micromatch/picomatch/releases">picomatch's releases</a>.</em></p> <blockquote> <h2>2.3.2</h2> <p>This is a security release fixing several security relevant issues.</p> <h2>What's Changed</h2> <ul> <li>fix: exception when glob pattern contains constructor by <a href="https://github.com/Jason3S"><code>@Jason3S</code></a> in <a href="https://redirect.github.com/micromatch/picomatch/pull/144">micromatch/picomatch#144</a></li> <li>Fix for <a href="https://github.com/micromatch/picomatch/security/advisories/GHSA-c2c7-rcm5-vvqj">CVE-2026-33671</a></li> <li>Fix for <a href="https://github.com/micromatch/picomatch/security/advisories/GHSA-3v7f-55p6-f55p">CVE-2026-33672</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2">https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md">picomatch's changelog</a>.</em></p> <blockquote> <h1>Release history</h1> <p><strong>All notable changes to this project will be documented in this file.</strong></p> <p>The format is based on <a href="http://keepachangelog.com/en/1.0.0/">Keep a Changelog</a> and this project adheres to <a href="http://semver.org/spec/v2.0.0.html">Semantic Versioning</a>.</p> <!-- raw HTML omitted --> <ul> <li>Changelogs are for humans, not machines.</li> <li>There should be an entry for every single version.</li> <li>The same types of changes should be grouped.</li> <li>Versions and sections should be linkable.</li> <li>The latest version comes first.</li> <li>The release date of each versions is displayed.</li> <li>Mention whether you follow Semantic Versioning.</li> </ul> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <p>Changelog entries are classified using the following labels <em>(from <a href="http://keepachangelog.com/">keep-a-changelog</a></em>):</p> <ul> <li><code>Added</code> for new features.</li> <li><code>Changed</code> for changes in existing functionality.</li> <li><code>Deprecated</code> for soon-to-be removed features.</li> <li><code>Removed</code> for now removed features.</li> <li><code>Fixed</code> for any bug fixes.</li> <li><code>Security</code> in case of vulnerabilities.</li> </ul> <!-- raw HTML omitted --> <h2>4.0.0 (2024-02-07)</h2> <h3>Fixes</h3> <ul> <li>Fix bad text values in parse <a href="https://redirect.github.com/micromatch/picomatch/issues/126">#126</a>, thanks to <a href="https://github.com/connor4312"><code>@connor4312</code></a></li> </ul> <h3>Changed</h3> <ul> <li>Remove process global to work outside of node <a href="https://redirect.github.com/micromatch/picomatch/issues/129">#129</a>, thanks to <a href="https://github.com/styfle"><code>@styfle</code></a></li> <li>Add sideEffects to package.json <a href="https://redirect.github.com/micromatch/picomatch/issues/128">#128</a>, thanks to <a href="https://github.com/frandiox"><code>@frandiox</code></a></li> <li>Removed <code>os</code>, make compatible browser environment. See <a href="https://redirect.github.com/micromatch/picomatch/issues/124">#124</a>, thanks to <a href="https://github.com/gwsbhqt"><code>@gwsbhqt</code></a></li> </ul> <h2>3.0.1</h2> <h3>Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/micromatch/picomatch/commit/81cba8d4b767cab3cb29d26eb4f691eed75b73b2"><code>81cba8d</code></a> Publish 2.3.2</li> <li><a href="https://github.com/micromatch/picomatch/commit/fc1f6b69006e9435caf8fb40d8aff378bc0b7bce"><code>fc1f6b6</code></a> Merge commit from fork</li> <li><a href="https://github.com/micromatch/picomatch/commit/eec17aee5428a7249e9ca5adbb8a0d28fa29619b"><code>eec17ae</code></a> Merge commit from fork</li> <li><a href="https://github.com/micromatch/picomatch/commit/78f8ca4362d9e66cadea97b93e292f10096452ed"><code>78f8ca4</code></a> Merge pull request <a href="https://redirect.github.com/micromatch/picomatch/issues/156">#156</a> from micromatch/backport-144</li> <li><a href="https://github.com/micromatch/picomatch/commit/3f4f10eaa65bf3a52e8f2999674cd27e11fa3c9b"><code>3f4f10e</code></a> Merge pull request <a href="https://redirect.github.com/micromatch/picomatch/issues/144">#144</a> from Jason3S/jdent-object-properties</li> <li>See full diff in <a href="https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/awslabs/swift-aws-lambda-runtime/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
f62b215394 |
Update dependencies on the CDK example (#659)
Just an update of the depencies to address critical security issues in the downstream dependencies |
||
|
|
56e822f943 |
Bump minimatch and aws-cdk-lib in /Examples/CDK/infra (#654)
Removes [minimatch](https://github.com/isaacs/minimatch). It's no longer used after updating ancestor dependency [aws-cdk-lib](https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib). These dependencies need to be updated together. Removes `minimatch` Updates `aws-cdk-lib` from 2.240.0 to 2.240.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/aws/aws-cdk/blob/main/CHANGELOG.v2.alpha.md">aws-cdk-lib's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <p>All notable changes to this project will be documented in this file. See <a href="https://github.com/conventional-changelog/standard-version">standard-version</a> for commit guidelines.</p> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.239.0-alpha.0...v2.240.0-alpha.0">2.240.0-alpha.0</a> (2026-02-23)</h2> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.238.0-alpha.0...v2.239.0-alpha.0">2.239.0-alpha.0</a> (2026-02-19)</h2> <h3>⚠ BREAKING CHANGES</h3> <p>redshift-alpha: update default node type from <code>DC2_LARGE</code> to <code>RA3_LARGE</code></p> <h3>Features</h3> <ul> <li><strong>bedrock-agentcore-alpha:</strong> add <code>fromCodeAsset</code> method to create runtime artifact with local code assets (<a href="https://redirect.github.com/aws/aws-cdk/issues/36472">#36472</a>) (<a href="https://github.com/aws/aws-cdk/commit/c5a87e6682a3668de849d4c7a0913fdee3eb170c">c5a87e6</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/36473">#36473</a></li> <li><strong>bedrock-agentcore-alpha:</strong> added new target type (api gateway) in agentcore gateway target. (<a href="https://redirect.github.com/aws/aws-cdk/issues/36841">#36841</a>) (<a href="https://github.com/aws/aws-cdk/commit/0842754ec56412a9b22f2e92f5aea7c86129ec52">0842754</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/36817">#36817</a></li> <li><strong>mixins-preview:</strong> add ECS ClusterSettingsMixin (<a href="https://redirect.github.com/aws/aws-cdk/issues/36796">#36796</a>) (<a href="https://github.com/aws/aws-cdk/commit/b8ab5be8f2e0733433a55dd48b26e7f56f6e0393">b8ab5be</a>)</li> <li><strong>mixins-preview:</strong> add s3 bucket mixin for publicAccessBlock (<a href="https://redirect.github.com/aws/aws-cdk/issues/36905">#36905</a>) (<a href="https://github.com/aws/aws-cdk/commit/feed4b2690bd481e464dd3ececa4cba0997a03db">feed4b2</a>)</li> <li><strong>mixins-preview:</strong> send Vended Logs to pre-created DeliveryDestination using <code>toDestination()</code> (<a href="https://redirect.github.com/aws/aws-cdk/issues/36896">#36896</a>) (<a href="https://github.com/aws/aws-cdk/commit/48f1fe6aa86473a25ffdcf53cfecb5e1169b54db">48f1fe6</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>redshift-alpha:</strong> update default node type from <code>DC2_LARGE</code> to <code>RA3_LARGE</code> (<a href="https://redirect.github.com/aws/aws-cdk/issues/36516">#36516</a>) (<a href="https://github.com/aws/aws-cdk/commit/ea19e5cde2e64d5cdcdfa3af41764542e77e221c">ea19e5c</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/36416">#36416</a></li> </ul> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.237.1-alpha.0...v2.238.0-alpha.0">2.238.0-alpha.0</a> (2026-02-09)</h2> <h3>Features</h3> <ul> <li><strong>eks-v2-alpha:</strong> add support for bootstrapSelfManagedAddons (<a href="https://redirect.github.com/aws/aws-cdk/issues/36740">#36740</a>) (<a href="https://github.com/aws/aws-cdk/commit/1ffe38dc950a096cb5e1c1ee20f2c49899dc0a23">1ffe38d</a>)</li> <li><strong>eks-v2-alpha:</strong> add support for EKS hybrid nodes (<a href="https://redirect.github.com/aws/aws-cdk/issues/36749">#36749</a>) (<a href="https://github.com/aws/aws-cdk/commit/48ace56d82537630fc339cb41962473a97375aea">48ace56</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>eks-v2-alpha:</strong> ensure kubectl provider and handler functions use the same vpc configuration (<a href="https://redirect.github.com/aws/aws-cdk/issues/36735">#36735</a>) (<a href="https://github.com/aws/aws-cdk/commit/4e02f0896069105dae83c46f19f1b346a546ad57">4e02f08</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/34878">#34878</a> <a href="https://redirect.github.com/aws/aws-cdk/issues/34877">#34877</a></li> <li><strong>ivs-alpha:</strong> add region constraints to integration tests (<a href="https://redirect.github.com/aws/aws-cdk/issues/36851">#36851</a>) (<a href="https://github.com/aws/aws-cdk/commit/d55fec42357410b8263b814b931daf5dccc5c5e3">d55fec4</a>)</li> <li><strong>mixins-preview:</strong> apply mixins in order (<a href="https://redirect.github.com/aws/aws-cdk/issues/36847">#36847</a>) (<a href="https://github.com/aws/aws-cdk/commit/726060c0ea9f57de4c6e13c1f50c330e4fc2608e">726060c</a>)</li> <li><strong>mixins-preview:</strong> apply mixins in order in <code>MixinApplicator</code> (<a href="https://redirect.github.com/aws/aws-cdk/issues/36877">#36877</a>) (<a href="https://github.com/aws/aws-cdk/commit/09db1c99710c9f8e91774e767de93fff1a0d2650">09db1c9</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/36847">#36847</a></li> </ul> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.237.0-alpha.0...v2.237.1-alpha.0">2.237.1-alpha.0</a> (2026-02-03)</h2> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.236.0-alpha.0...v2.237.0-alpha.0">2.237.0-alpha.0</a> (2026-02-02)</h2> <h3>Features</h3> <ul> <li><strong>bedrock-agentcore-alpha:</strong> add support for custom claims and scopes to runtime/gateway authorizers (<a href="https://redirect.github.com/aws/aws-cdk/issues/36810">#36810</a>) (<a href="https://github.com/aws/aws-cdk/commit/a3abcd010648e83bed273dff8f581291b5b3c902">a3abcd0</a>)</li> <li><strong>eks-v2-alpha:</strong> pass additional helm chart values to aws-load-balancer-controller (<a href="https://redirect.github.com/aws/aws-cdk/issues/36754">#36754</a>) (<a href="https://github.com/aws/aws-cdk/commit/cf61814ac58448ddd70682e45c07dd8ca58c4fd1">cf61814</a>), closes <a href="https://github.com/aws//github.com/kubernetes-sigs/aws-load-balancer-controller/blob/main/helm/aws-load-balancer-controller/values.yaml/issues/L199">/github.com/kubernetes-sigs/aws-load-balancer-controller/blob/main/helm/aws-load-balancer-controller/values.yaml#L199</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/aws/aws-cdk/commits/v2.240.0/packages/aws-cdk-lib">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/awslabs/swift-aws-lambda-runtime/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
553b5e3716 |
Add support for JSON Structured Logging (#638)
This PR adds support for Structured Logging, as per [the design document](https://github.com/awslabs/swift-aws-lambda-runtime/blob/feature/structured-json-logging/Sources/AWSLambdaRuntime/Docs.docc/Proposals/0002-logging.md) --------- Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
f86f4e202d |
Update CDK dependencies (#650)
## Issue \# Fixes Dependabot alert #11 (minimatch ReDoS) and Dependabot alert #12 (ajv ReDoS). ## Description of changes Upgrades CDK dependencies in `Examples/CDK/infra/` to resolve two ReDoS vulnerabilities in bundled transitive dependencies: - `aws-cdk`: `2.1003.0` → `2.1015.0` - `aws-cdk-lib`: `^2.189.1` → `^2.215.0` (resolves to `2.240.0`) The new `aws-cdk-lib` bundles `minimatch@^10.2.1` (was `3.1.2`) and `ajv@8.18.0` (was `8.17.1`), which address the reported vulnerabilities. `npm audit` now reports 0 vulnerabilities. ## New/existing dependencies impact assessment, if applicable No new dependencies were added. Existing dependencies `aws-cdk` and `aws-cdk-lib` were updated to their latest versions. `package-lock.json` was regenerated. ## Conventional Commits `fix: upgrade CDK dependencies to resolve minimatch and ajv ReDoS vulnerabilities` By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
eccd045d80 |
fix: Local Server should pass HTTP headers down to the Lambda Runtime (#643)
<!--- Provide a general summary of your changes in the Title above --> ## Issue \# <!--- If it fixes an issue, please link to the issue here --> https://github.com/awslabs/swift-aws-lambda-runtime/issues/607 ## Description of changes <!--- Why is this change required? What problem does it solve? --> The local HTTP server was not forwarding user‑provided headers to the runtime’s response. It passes all headers through to the runtime. This it makes local behavior match the Lambda runtime API contract and allows developers to opt into metadata by sending the appropriate runtime headers. ## New/existing dependencies impact assessment, if applicable <!--- No new dependencies were added to this change. --> <!--- If any dependency was added / modified / removed, THIRD-PARTY-LICENSES must be updated accordingly. --> N/A ## Conventional Commits <!--- Please use conventional commits to let us know what kind of change this is.--> <!--- More info can be found here: https://www.conventionalcommits.org/en/v1.0.0/--> By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. --------- Co-authored-by: Sébastien Stormacq <sebastien.stormacq@gmail.com> |
||
|
|
190eb81876 |
Add support for Lambda Managed Instances without changing the public API [Convenience + Example] (#623)
This PR builds on https://github.com/awslabs/swift-aws-lambda-runtime/pull/629 to add convenience structs (Handlers and Adapters) that are `Sendable` **Changes** - **Added Sendable adapter types**: Implemented `ClosureHandlerSendable` - a thread-safe version of existing closure handler that enforces `Sendable` conformance for concurrent execution environments - and added conditional conformance to `Sendable` for other Adapters when the Handler is `Sendable` - **Enhanced handler protocols for concurrency**: Extended handler protocols to support `Sendable` constraints and concurrent response writing through `LambdaResponseStreamWriter & Sendable`, enabling safe multi-threaded invocation processing - **Created comprehensive Lambda Managed Instances examples**: Built three demonstration functions showcasing concurrent execution capabilities, streaming responses, and background processing patterns specific to the new managed instances deployment model **Context** Lambda Managed Instances support multi-concurrent invocations where multiple invocations execute simultaneously within the same execution environment. The runtime now detects the configured concurrency level and launches the appropriate number of RICs to handle concurrent requests efficiently. When `AWS_LAMBDA_MAX_CONCURRENCY` is 1 or unset, the runtime maintains the existing single-threaded behaviour for optimal performance on traditional Lambda deployments. --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
feb6d2cd49 |
Cleanup script and test example (#628)
Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
e0f064a93e |
Refactor project directories (#621)
This PR refactors the project's directories.
As the number of source files grows, I created subdirectories to
separate the runtime itself, from its HTTP Client (`RuntimeClient`) and
local HTTP Server (`Lambda+LocalServer`).
The new layout looks like this:
```text
Sources
├── AWSLambdaRuntime
│ ├── FoundationSupport
│ │ ├── Context+Foundation.swift
│ │ ├── Lambda+JSON.swift
│ │ └── Vendored
│ │ ├── ByteBuffer-foundation.swift
│ │ └── JSON+ByteBuffer.swift
│ ├── HTTPClient
│ │ ├── ControlPlaneRequest.swift
│ │ ├── ControlPlaneRequestEncoder.swift
│ │ ├── LambdaRuntimeClient+ChannelHandler.swift
│ │ ├── LambdaRuntimeClient.swift
│ │ └── LambdaRuntimeClientProtocol.swift
│ ├── HTTPServer
│ │ ├── Lambda+LocalServer+Pool.swift
│ │ └── Lambda+LocalServer.swift
│ ├── Lambda.swift
│ ├── LambdaClock.swift
│ ├── LambdaContext.swift
│ ├── LambdaRequestID.swift
│ ├── LambdaResponseStreamWriter+Headers.swift
│ ├── LambdaRuntimeError.swift
│ ├── Runtime
│ │ ├── LambdaHandlers.swift
│ │ ├── LambdaRuntime+Codable.swift
│ │ ├── LambdaRuntime+Handler.swift
│ │ ├── LambdaRuntime+ServiceLifecycle.swift
│ │ └── LambdaRuntime.swift
│ ├── SendableMetatype.swift
│ ├── Utils.swift
│ └── Version.swift
└── MockServer
└── MockHTTPServer.swift
```
|
||
|
|
4494361efb |
Fix dependency on HB example (#618)
The Hummingbird-Lambda exports the Swift AWS Lambda Runtime. Therefore, the sample project doesn't need to declare the runtime as a dependency. |
||
|
|
72865e405a |
Update commented deps in examples to use runtime v2 (#616)
Fix example dependencies Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
3ddd64087d |
Add Streaming Lambda Examples with API Gateway and Function URL (#615)
## Overview This PR reorganizes and enhances the streaming Lambda examples by splitting them into two distinct examples that demonstrate different invocation methods: 1. **Streaming+FunctionUrl** - Streaming responses via Lambda Function URLs 2. **Streaming+APIGateway** - Streaming responses via API Gateway REST API ## Changes ### 🔄 Restructured Examples - **Renamed**: `Examples/Streaming/` → `Examples/Streaming+FunctionUrl/` - Maintains the original streaming example using Lambda Function URLs - Updated documentation to clarify Function URL-specific configuration - Improved AWS credentials handling in curl examples - **New**: `Examples/Streaming+APIGateway/` - Comprehensive example demonstrating API Gateway REST API with response streaming - Complete SAM template with proper IAM roles and streaming configuration - Detailed documentation covering API Gateway-specific setup ### 📚 Documentation Improvements #### Streaming+FunctionUrl - Clarified that this example uses Lambda Function URLs - Updated curl examples to use `eval $(aws configure export-credentials --format env)` for cleaner credential handling - Maintained all existing functionality and deployment instructions #### Streaming+APIGateway (New) - **316-line comprehensive README** covering: - Response streaming concepts and benefits - HTTP status code and header configuration - Streaming response body patterns - Local testing instructions - Complete SAM deployment guide with detailed template explanation - API Gateway-specific invocation with AWS Sigv4 authentication - Payload format documentation with example JSON - Security and reliability best practices - How API Gateway streaming works under the hood ### 🛠️ Technical Details #### API Gateway Streaming Configuration The new example demonstrates: - Special Lambda URI: `/response-streaming-invocations` endpoint - `responseTransferMode: STREAM` configuration - IAM role with both `lambda:InvokeFunction` and `lambda:InvokeWithResponseStream` permissions - Proper timeout configuration (60s) to accommodate streaming duration #### SAM Template Features ```yaml - Lambda function with streaming support (arm64, provided.al2) - API Gateway REST API with OpenAPI 3.0 definition - IAM execution role for API Gateway to invoke Lambda with streaming - Complete outputs for easy testing (API URL and Lambda ARN) ``` ### 🔐 Security Enhancements Both examples now include comprehensive security best practices: - API Gateway access logging - Throttling configuration - AWS WAF integration recommendations - Lambda concurrent execution limits - Environment variable encryption - Dead Letter Queue (DLQ) configuration - VPC configuration guidance ### 🧪 Testing Both examples support: - **Local testing**: `swift run` with curl invocation on port 7000 - **AWS deployment**: Complete SAM templates with deployment instructions - **Authenticated invocation**: AWS Sigv4 examples with proper credential handling ## Benefits 1. **Clearer separation**: Developers can now easily choose between Function URLs and API Gateway based on their use case 2. **Better documentation**: Each example has tailored documentation for its specific invocation method 3. **Production-ready**: Includes security best practices and proper IAM configuration 4. **Easier testing**: Improved credential handling in curl examples ## Breaking Changes None - this is purely additive. The original streaming example is preserved as `Streaming+FunctionUrl`. ## Testing Checklist - [x] Local testing works for both examples - [x] SAM deployment templates are valid - [x] Documentation is comprehensive and accurate - [x] Security best practices are documented - [x] Curl examples work with proper authentication ## Related Documentation - [AWS Lambda Response Streaming](https://docs.aws.amazon.com/lambda/latest/dg/configuration-response-streaming.html) - [API Gateway Lambda Proxy Integration with Streaming](https://docs.aws.amazon.com/apigateway/latest/developerguide/response-streaming-lambda-configure.html) - [Lambda Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) EOF --------- Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
023b8fe526 |
Simplify local dependency injection for examples (#612)
See issue #536 All the examples are now depending on the runtime library located at `../..`. The `Package.swift` files contain a commented line with the `.package` to use when user wants to fetch the runtime from GitHub. --------- Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
fb31389f88 |
Fix 565 : HelloWorld and Resource examples now uses Swift 6.2 (#611)
See issues #565 HelloWorld and Resources examples project now use Swift 6.2 Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
2abe7eb7de |
Add support for Lambda Tenants (#608)
Address https://github.com/awslabs/swift-aws-lambda-runtime/issues/605 NEW Lambda Tenant isolation capability: https://docs.aws.amazon.com/lambda/latest/dg/tenant-isolation.html # Add Support for Lambda Tenant Isolation Mode ## Summary This PR adds support for AWS Lambda's tenant isolation mode to the Swift AWS Lambda Runtime, enabling developers to build multi-tenant applications with strict execution environment isolation per tenant. ## Changes ### Runtime Support - Added `tenantID` property to `LambdaContext` to expose the tenant identifier - Extended `InvocationMetadata` to capture the `Lambda-Runtime-Aws-Tenant-Id` header - Added `AmazonHeaders.tenantID` constant for the tenant ID header - Added trace logging for invocation headers to aid debugging ### New Example: MultiTenant A complete working example demonstrating tenant isolation mode: - **Request tracking system** that maintains separate counters and histories per tenant - **Actor-based storage** (`TenantDataStore`) for thread-safe tenant data management - **Immutable data structures** (`TenantData`) following Swift best practices - **API Gateway integration** with tenant ID passed via query parameter - **SAM template** configured with `TenancyConfig.TenantIsolationMode: PER_TENANT` - **Comprehensive documentation** covering architecture, deployment, testing, and best practices ### Testing - Added unit test for tenant ID extraction from invocation headers - Integrated MultiTenant example into CI/CD pipeline ### Documentation The example includes detailed documentation on: - When to use tenant isolation (user code execution, sensitive data processing) - How tenant isolation works (dedicated environments, no cross-tenant reuse) - Concurrency limits and scaling considerations - Pricing implications - Security best practices - CloudWatch monitoring with tenant dimensions ## Files Changed - `Sources/AWSLambdaRuntime/LambdaContext.swift` - Added tenantID property - `Sources/AWSLambdaRuntime/ControlPlaneRequest.swift` - Capture tenant ID from headers - `Sources/AWSLambdaRuntime/Utils.swift` - Added tenantID header constant - `Sources/AWSLambdaRuntime/Lambda.swift` - Pass tenant ID to context - `Sources/AWSLambdaRuntime/LambdaRuntimeClient+ChannelHandler.swift` - Added trace logging - `Tests/AWSLambdaRuntimeTests/InvocationTests.swift` - Added tenant ID test - `Examples/MultiTenant/*` - New complete example with SAM template - `.github/workflows/pull_request.yml` - Added MultiTenant to CI pipeline ## Testing Instructions 1. Build and deploy the example: bash cd Examples/MultiTenant swift package archive --allow-network-connections docker sam deploy --guided 2. Test with different tenants: bash curl "https://<api-id>.execute-api.<region>.amazonaws.com/Prod?tenant-id= alice" curl "https://<api-id>.execute-api.<region>.amazonaws.com/Prod?tenant-id= bob" 3. Verify isolation by checking that each tenant maintains separate request counts ## Related Documentation - [AWS Lambda Tenant Isolation](https://docs.aws.amazon.com/lambda/latest/dg/tenant-isolation.html) - [AWS Blog: Streamlined Multi-Tenant Application Development](https://aws.amazon.com/blogs/aws/streamlined-multi-tenant-application-development-with-tenant-isolation-mode-in-aws-lambda/) --------- Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> Co-authored-by: Tim Condon <0xTim@users.noreply.github.com> |
||
|
|
97583a78c2 |
Add Multi-Source API Example (#598)
This PR adds a new example demonstrating how to build a Lambda function that handles requests from multiple sources (Application Load Balancer and API Gateway V2) using a single handler. ### What's New **New Example: `Examples/MultiSourceAPI`** A Lambda function that: - Implements `StreamingLambdaHandler` to accept raw `ByteBuffer` events - Dynamically decodes events as either `ALBTargetGroupRequest` or `APIGatewayV2Request` - Returns appropriate responses based on the detected event source - Demonstrates handling multiple AWS service integrations with a single function ### Key Features - **Type-safe event detection**: Uses Swift's `Decodable` to identify the event source at runtime - **Streaming response**: Implements `StreamingLambdaHandler` for efficient response handling - **Complete deployment**: Includes SAM template with both ALB and API Gateway V2 infrastructure - **Production-ready**: Full VPC setup with subnets, security groups, and load balancer configuration ### Files Added - `Examples/MultiSourceAPI/Sources/main.swift` - Lambda handler implementation - `Examples/MultiSourceAPI/Package.swift` - Swift package configuration - `Examples/MultiSourceAPI/template.yaml` - SAM deployment template with ALB and API Gateway V2 - `Examples/MultiSourceAPI/README.md` - Documentation with build, deploy, and test instructions - Updated CI to include the new example ### Use Case This pattern is useful when you want to: - Expose the same Lambda function through multiple AWS services - Reduce code duplication by handling similar requests from different sources - Maintain a single codebase for multi-channel APIs --------- Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> Co-authored-by: Josh Elkins <jbelkins@users.noreply.github.com> |
||
|
|
b1553d2766 |
Accept multiple POST /invoke requests to allow parallel testing (#585)
Closing https://github.com/swift-server/swift-aws-lambda-runtime/issues/584 The LocalServer now queues concurrent `POST /invoke` requests from testing client applications and ensures that the requests are delivered to the Lambda Runtime one by one, just like the AWS Lambda Runtime environment does. The `Pool` has now two modes : pure FIFO (one element get exactly one `next()`) and one mode where multiple elements can get pushed and multiple `next(for requestId:String)` can be called concurrently. The two modes are needed because invocations are 1:1 (one `POST /invoke` is always by one matching `GET /next`) but responses are n:n (a response can have multiple chunks and concurrent invocations can trigger multiple `next(for requestId: String)` I made a couple of additional changes while working on this PR - I moved the `Pool` code in a separate file for improved readability - I removed an instance of `DispatchTime` that was hiding in the code, unnoticed until today - I removed the `async` requirement on `Pool.push(_)` function. This was not required (thank you @t089 for having reported this) - I removed the `fatalError()` that was in the `Pool` implementation. The pool now throws an error when `next()` is invoked concurrently, making it easier to test. - I added extensive unit tests to validate the Pool behavior - I added a test to verify that a rapid succession of client invocations are correctly queued and return no error - I moved a `continuation(resume:)` outside of a lock. Generally speaking, it's a bad idea to resume continuation while owning a lock. I suspect this is causing a error during test execution when we spawn and tear down mutliple `Task` very quickly. In some rare occasions, the test was failing with an invalid assertion in NIO : `NIOCore/NIOAsyncWriter.swift:177: Fatal error: Deinited NIOAsyncWriter without calling finish()` --------- Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
e58d89148c |
Replace standard documents and processes with AWS ones (#574)
- Adjust notice, security reporting, code of conduct, contribution process to the standard AWS documents - Adjust GitHub issue templates to AWS standard ones. - Adjust the license header in all source files --------- Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
dee635267b |
change references from /swift-server to /awslabs (#591)
Change Examples, README, and doc to refer to https://github.org/awslabs instead of https://github.org/swift-server --------- Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
8cfd36a30d |
Rename APIGateway example to APIGatewayV2 (#575)
Now that we have an APIGatewayV1 example, rename the existing APIGateway examples to APIGatewayV2. Fix https://github.com/transfer-aws/swift-aws-lambda-runtime/issues/572 |
||
|
|
74e4efdbac |
Apply recommendation for security and reliability (#573)
Apply recommendations in code and documentation - [CI] restrict permissions to read-all instead of the default write-all - All examples README.md : add a note about Lambda functions configuration with improved security and scalability changes for production environment - Swift docc documentation: add a note about Lambda functions configuration with improved security and scalability changes for production environment --------- Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
d8aa38be78 |
[Example] Add APIGatewayV1 example (#569)
This PR adds an APIGateway V1 example, which differs slightly from the existing [V2 example](https://github.com/swift-server/swift-aws-lambda-runtime/tree/main/Examples/APIGateway). ### Motivation: While APIGatewayV2 has existed for a while, there are still some scenarios where V1 is preferable (see [Choose between REST APIs and HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-vs-rest.html) for more details). This PR adds a working example for the `Api` endpoint type. ### Modifications: Sources/main.swift - Swapped APIGatewayRequestV2 and APIGatewayResponseV2 for their unversioned counterparts (aka V1). template.yaml - Changed the Events name and corresponding `Type: Api` values. - Added necessary additional properties to define a `GET` endpoint for an `Api` endpoint. Readme.md - Updated the request and response example outputs. ### Result: Now, an APIGateway and APIGatewayV1 example exist. > [!NOTE] > It is the author's opinion that this new example should technically be called `APIGateway` and the existing one should be renamed to `APIGatewayV2` to keep consistent with the request and response type naming conventions, but this is omitted from this request to be less disruptive. |
||
|
|
02d483074d |
[Example] Use smaller containers in all examples (#571)
All the examples using SAM have a default Lambda runtime environment memory size of 512Mb. Lambda functions run in a microVM defined by its memory size. The memory size influences the CPU power. (see https://docs.aws.amazon.com/lambda/latest/dg/configuration-memory.html) Increasing memory size increases runtime performance but also increase costs. As most of our examples are very simple and small functions, 512Mb memory is not required. This PR reduces Lambda runtime execution environment to 128Mb to reduce AWS costs. Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu> |
||
|
|
a1ab8df708 |
Update toolchain and doc for 6.2 (#564)
In preparation for the 2.0.0 GA release, - Update `.swift-version`, `Package.swift` and all examples' `package.swift` to Swift 6.2 - Update all references to `2.0.0-beta.3` to `2.0.0`. This includes the doc and readme, but also the dependencies in the examples `Package.swift`. This will temporary break the build of the examples, until we tag v2.0.0. Note the CI will not be affected as its consumes the local version of the library - [CI] Use Swift-6.2-noble for all testing tasks - Reinstate the script to generate the contributors list and update the list |
||
|
|
1843cdcb3c |
[fix] The library must compile when no traits are enabled (#563)
Make required changed to ensure the library compiles when no traits are enabled (fix: https://github.com/swift-server/swift-aws-lambda-runtime/issues/562) Add an example project that serves as test in the CI ### Motivation: Recent changes introduced compilation errors when no traits are enabled. ### Modifications: - `LambdaResponseStreamWriter.writeStatusAndHeaders()` moved to the `FoundationSupport` directory where all classes and struct depending on `Encodable` and `Decodable` are located, protected by `#if FoundationJSONSupport` - `LambdaRuntime.run()` method when ServiceLifeCycle is disabled in now public (and therefore can not be `@inlinable` anymore) - Add an example that disables all traits. - Add this example to the CI ### Result: The Library now compiles when no default traits are enabled. This is flagged `semver/major` because we change the public API `LambdaRuntime.run()` |
||
|
|
303559d9ed |
Bump Amazon RDS version 19 PG 17 (#561)
Update SwiftServiceLifeCycle example to use Postgres 17 (PG 15 is going to be deprecated on Amazon RDS) |
||
|
|
262c3b539a |
Revert streaming codable handler and provide it as an example, not an API (#549)
Revert streaming codable handler change and propose it as an example instead of an handler API. **Motivation:** I made a mistake when submitting this PR https://github.com/swift-server/swift-aws-lambda-runtime/pull/532 It provides a Streaming+Codable handler that conveniently allows developers to write handlers with `Codable` events for streaming functions. This is a mistake for three reasons: - This is the only handler that assumes a Lamba Event structure as input. I added a minimal `FunctionUrlRequest` and `FunctionURLResponse` to avoid importing the AWS Lambda Events library. It is the first handler to be event-specific. I don't think the runtime should introduce event specific code. - The handler only works when Lambda functions are exposed through Function URLs. Streaming functions can also be invoke by API or CLI. - The handler hides `FunctionURLRequest` details (HTTP headers, query parameters, etc.) from developers Developers were unaware they were trading flexibility for convenience The lack of clear documentation about these limitations led to incorrect usage patterns and frustrated developers who needed full request control or were using other invocation methods. **Modifications:** - Removed the Streaming+Codable API from the library - Moved the Streaming+Codable code to an example - Added prominent warning section in the example README explaining the limitations - Clarified when to use Streaming+Codable vs ByteBuffer approaches - Added decision rule framework to help developers choose the right approach **Result:** The only API provided by the library to use Streaming Lambda functions is exposing the raw `ByteBuffer` as input, there is no more `Codable` handler for Streaming functions available in the API. I kept the `Streaming+Codable` code an example. After this change, developers have clear guidance on when to use each streaming approach: - Use streaming codable for Function URL + JSON payload + no request details needed - Use ByteBuffer StreamingLambdaHandler for full control, other invocation methods, or request metadata access This prevents misuse of the API and sets proper expectations about the handler's capabilities and limitations, leading to better developer experience and fewer integration issues. |
||
|
|
af7e9db838 |
[doc] Updated streaming response limit to 200 MB (#548)
### Motivation: AWS Lambda response streaming now supports a default maximum response payload size of 200 MB (increased from 20 MB). This update aligns the documentation with the new AWS limits. ### Modifications: - Updated readme.md: Changed "soft limit of 20 MB" to "default maximum response payload size of 200 MB" - Updated Examples/Streaming/README.md: Same change as above - Updated terminology to match AWS official documentation ### Result: Documentation now accurately reflects the current AWS Lambda streaming response limits, enabling users to understand they can stream up to 200 MB payloads. Reference: https://aws.amazon.com/about-aws/whats-new/2025/07/aws-lambda-response-streaming-200-mb-payloads/ |
||
|
|
a5ff8e5c00 |
Add hummingbird Lambda example (#544)
Add Hummingbird web framework integration example for AWS Lambda **Motivation:** Developers using the Hummingbird web framework need a clear example of how to integrate it with AWS Lambda. The existing examples focus on basic Lambda handlers, but don't demonstrate how to use popular Swift web frameworks like Hummingbird in a serverless context. **Modifications:** Added a complete Hummingbird Lambda example in Examples/Hummingbird/ including Package.swift with Hummingbird Lambda dependencies, main.swift demonstrating router setup with API Gateway V2 integration, SAM template for deployment, and comprehensive README documentation with build, deploy, and usage instructions. **Result:** Developers can now easily create AWS Lambda functions using the Hummingbird web framework, with a working example that shows router configuration, API Gateway integration, and complete deployment workflow using familiar Hummingbird syntax. |
||
|
|
0a6af5b4e1 |
prepare 2.0.0-beta.1 (#538)
Change dependencies in `Examples/*` and documentation to `from: "2.0.0-beta.1"` |
||
|
|
e6ba07fd06 |
[example] Add example for Swift Service Lifecycle (#522)
Now that task cancellation works, re publishing this PR with a new example for Swift Service Lifecycle |
||
|
|
9287d56e60 |
[core] Implement Lambda streaming with custom HTTP headers (#521)
Fix https://github.com/swift-server/swift-aws-lambda-runtime/issues/520 |
||
|
|
412a345bdd |
[core] Add user-facing API for Streaming Lambda functions that receive JSON events (#532)
Add user-facing API for Streaming Lambda functions that receives JSON
events
### Motivation:
Streaming Lambda functions developed by developers had no choice but to
implement a handler that receives incoming data as a `ByteBuffer`. While
this is useful for low-level development, I assume most developers will
want to receive a JSON event to trigger their streaming Lambda function.
Going efficiently from a `ByteBuffer` to a Swift struct requires some
code implemented in the `JSON+ByteBuffer.swift` file of the librray. We
propose to further help developers by providing them with a new
`handler()` function that directly receives their `Decodable` type.
### Modifications:
This PR adds a public facing API (+ unit test + updated README) allowing
developers to write a handler method accepting any `Decodable` struct as
input.
```swift
import AWSLambdaRuntime
import NIOCore
// Define your input event structure
struct StreamingRequest: Decodable {
let count: Int
let message: String
let delayMs: Int?
}
// Use the new streaming handler with JSON decoding
let runtime = LambdaRuntime { (event: StreamingRequest, responseWriter, context: LambdaContext) in
context.logger.info("Received request to send \(event.count) messages")
// Stream the messages
for i in 1...event.count {
let response = "Message \(i)/\(event.count): \(event.message)\n"
try await responseWriter.write(ByteBuffer(string: response))
// Optional delay between messages
if let delay = event.delayMs, delay > 0 {
try await Task.sleep(for: .milliseconds(delay))
}
}
// Finish the stream
try await responseWriter.finish()
// Optional: Execute background work after response is sent
context.logger.info("Background work: processing completed")
}
try await runtime.run()
```
This interface provides:
- **Type-safe JSON input**: Automatic decoding of JSON events into Swift
structs
- **Streaming responses**: Full control over when and how to stream data
back to clients
- **Background work support**: Ability to execute code after the
response stream is finished
- **Familiar API**: Uses the same closure-based pattern as regular
Lambda handlers
Because streaming Lambda functions can be invoked either directly
through the API or through Lambda Function URL, this PR adds the
decoding logic to support both types, shielding developers from working
with Function URL requests and base64 encoding.
We understand these choice will have an impact on the raw performance
for event handling. Those advanced users that want to get the maximum
might use the existing `handler(_ event: ByteBuffer, writer:
LambaStreamingWriter)` function to implement their own custom decoding
logic.
This PR provides a balance between ease of use for 80% of the users vs
ultimate performance, without closing the door for the 20% who need it.
### Result:
Lambda function developers can now use arbitrary `Decodable` Swift
struct or Lambda events to trigger their streaming functions. 🎉
---------
Co-authored-by: Tim Condon <0xTim@users.noreply.github.com>
|
||
|
|
f1514b13d1 |
[core] Add support for streaming function to the local server (#531)
The local server used for testing functions locally (`swift run`) now support streaming lambda functions Fix https://github.com/swift-server/swift-aws-lambda-runtime/issues/528 |
||
|
|
aa21cb2daa |
Update dependencies in CDK example (#535)
ran `npm update` to update `package-lock` file ### Motivation: Should fix a dependabot security alert https://github.com/swift-server/swift-aws-lambda-runtime/security/dependabot/7 ### Modifications: just updated `Package-lock.json` file |
||
|
|
344d30b401 |
[core] Only one LambdaRuntime.run() can be called at a time (fix #507) (#508)
This is a proposal to fix issue #507 **changes** - `LambdaRuntime.init()` uses a `Mutex<Bool>` to make sure only one instance is created - `LambdaRuntime.init()` can now throw an error in case an instance already exists (I did not use `fatalError()` to make it easier to test) - All `convenience init()` methods catch possible errors instead of re-throwing it to a void breaking the user-facing API - Renamed existing `LambdaRuntimeError` to `LambdaRuntimeClientError` - Introduced a new type `LambdaRuntimeError` to represent the double initialization error --------- Co-authored-by: Fabian Fett <fabianfett@apple.com> Co-authored-by: Adam Fowler <adamfowler71@gmail.com> |
||
|
|
41c5edaf04 |
Bump aws-cdk-lib from 2.183.0 to 2.189.1 in /Examples/CDK/infra (#514)
Bumps [aws-cdk-lib](https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib) from 2.183.0 to 2.189.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/aws/aws-cdk/releases">aws-cdk-lib's releases</a>.</em></p> <blockquote> <h2>v2.189.1</h2> <h3>Bug Fixes</h3> <ul> <li><strong>core:</strong> implicit Aspect applications do not override custom Aspect applications (<a href="https://redirect.github.com/aws/aws-cdk/issues/34132">#34132</a>) (<a href="https://github.com/aws/aws-cdk/commit/b7f4bc7aee1d99b70e4d9d3cedea53e910ee37ef">b7f4bc7</a>)</li> </ul> <hr /> <h2>Alpha modules (2.189.1-alpha.0)</h2> <h2>v2.189.0</h2> <h3>Features</h3> <ul> <li><strong>apigatewayv2:</strong> dualstack HTTP and WebSocket API (<a href="https://redirect.github.com/aws/aws-cdk/issues/34054">#34054</a>) (<a href="https://github.com/aws/aws-cdk/commit/eec900e90f38f34f896b22cf36cb225fc9c13cc8">eec900e</a>)</li> <li>update L1 CloudFormation resource definitions (<a href="https://redirect.github.com/aws/aws-cdk/issues/34064">#34064</a>) (<a href="https://github.com/aws/aws-cdk/commit/9cb260266e92f45e40a19667e29ccf2decb3d2b8">9cb2602</a>)</li> <li><strong>bedrock:</strong> support Amazon Nova Reel 1.1 (<a href="https://redirect.github.com/aws/aws-cdk/issues/34070">#34070</a>) (<a href="https://github.com/aws/aws-cdk/commit/3da0c4d267dbb693ffc01b9fae69cebcb180cdec">3da0c4d</a>)</li> <li>support L2 constructs for Amazon S3 Tables (<a href="https://redirect.github.com/aws/aws-cdk/issues/33599">#33599</a>) (<a href="https://github.com/aws/aws-cdk/commit/2e95252fecbb1fec9874fd5af4b4bd6449d50471">2e95252</a>)</li> <li><strong>pipelines:</strong> add <code>V2</code> pipeline type support in L3 construct (<a href="https://redirect.github.com/aws/aws-cdk/issues/34005">#34005</a>) (<a href="https://github.com/aws/aws-cdk/commit/994e95289b589596179553a5b9d7201155bd9ed1">994e952</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/33995">#33995</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>codepipeline:</strong> replace account root principal with pipeline role in trust policy for cross-account actions (under feature flag) (<a href="https://redirect.github.com/aws/aws-cdk/issues/34074">#34074</a>) (<a href="https://github.com/aws/aws-cdk/commit/2d901f4e7bb982221e1a48a13666939140109d5a">2d901f4</a>)</li> <li><strong>custom-resources:</strong> <code>AwsCustomResource</code> assumed role session name may contain invalid characters (<a href="https://redirect.github.com/aws/aws-cdk/issues/34016">#34016</a>) (<a href="https://github.com/aws/aws-cdk/commit/32b6b4d7fa99723efb667239fbe455ede43b92c6">32b6b4d</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/23260">#23260</a> <a href="https://redirect.github.com/aws/aws-cdk/issues/34011">#34011</a></li> </ul> <hr /> <h2>Alpha modules (2.189.0-alpha.0)</h2> <h3>Features</h3> <ul> <li><strong>ec2-alpha:</strong> implement mapPublicIpOnLaunch prop in SubnetV2 (<a href="https://redirect.github.com/aws/aws-cdk/issues/34057">#34057</a>) (<a href="https://github.com/aws/aws-cdk/commit/836c5cf3e4c627f817e4dc8ed2af28a5bba54792">836c5cf</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/32159">#32159</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>amplify:</strong> unable to re-run integ test due to missing <code>status</code> field in <code>customRule</code> (<a href="https://redirect.github.com/aws/aws-cdk/issues/33973">#33973</a>) (<a href="https://github.com/aws/aws-cdk/commit/6638c08d56afe7ecc4f23cff4cf334b887001e5e">6638c08</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/33962">#33962</a></li> </ul> <h2>v2.188.0</h2> <h3>Features</h3> <ul> <li>update L1 CloudFormation resource definitions (<a href="https://redirect.github.com/aws/aws-cdk/issues/33980">#33980</a>) (<a href="https://github.com/aws/aws-cdk/commit/0923b5e82dd0c8da864f0c806f295fae270c22c1">0923b5e</a>)</li> <li>update L1 CloudFormation resource definitions (<a href="https://redirect.github.com/aws/aws-cdk/issues/34029">#34029</a>) (<a href="https://github.com/aws/aws-cdk/commit/be6210f246b97befcdc9446862e991071738008d">be6210f</a>)</li> <li><strong>codepipeline:</strong> add usePipelineRoleForActions field support in L2 (<a href="https://redirect.github.com/aws/aws-cdk/issues/33961">#33961</a>) (<a href="https://github.com/aws/aws-cdk/commit/d8bbc1c3f8479ab5031b8684364735b9a6c31fa2">d8bbc1c</a>)</li> <li><strong>codepipeline-actions:</strong> support <code>ECRBuildAndPublish</code> action (<a href="https://redirect.github.com/aws/aws-cdk/issues/33375">#33375</a>) (<a href="https://github.com/aws/aws-cdk/commit/c5cd679b2f979b9e51c7a071b18d930d3a475129">c5cd679</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/33376">#33376</a></li> <li><strong>codepipeline-actions:</strong> support <code>InspectorEcrImageScanAction</code> and <code>InspectorSourceCodeScanAction</code> actions (<a href="https://redirect.github.com/aws/aws-cdk/issues/33378">#33378</a>) (<a href="https://github.com/aws/aws-cdk/commit/2dc8cc7f703ebcd61f2b5f4d20401a1ade788e7a">2dc8cc7</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/33377">#33377</a></li> <li><strong>cognito:</strong> v3.0 pre token generation trigger event (<a href="https://redirect.github.com/aws/aws-cdk/issues/33778">#33778</a>) (<a href="https://github.com/aws/aws-cdk/commit/ea1436f85d036bddb9a96dd54f02a639c3aab212">ea1436f</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/33733">#33733</a></li> <li><strong>events-targets:</strong> support ApiGatewayV2 HttpApi (<a href="https://redirect.github.com/aws/aws-cdk/issues/33864">#33864</a>) (<a href="https://github.com/aws/aws-cdk/commit/91a3076fb16369629a710ebc560c103a91c2ea20">91a3076</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/26649">#26649</a></li> <li><strong>kinesisfirehose:</strong> support S3 file extension format (<a href="https://redirect.github.com/aws/aws-cdk/issues/33776">#33776</a>) (<a href="https://github.com/aws/aws-cdk/commit/e314a9aa5d149704cc2abd30927a41d317a3ce6c">e314a9a</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/32154">#32154</a></li> <li><strong>logs-destinations:</strong> support Amazon Data Firehose logs destination (<a href="https://redirect.github.com/aws/aws-cdk/issues/33683">#33683</a>) (<a href="https://github.com/aws/aws-cdk/commit/a8edf696e91c44cbda286889896464960dd03266">a8edf69</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/32038">#32038</a> <a href="https://redirect.github.com/aws/aws-cdk/issues/24766">#24766</a></li> <li><strong>pipelines:</strong> actions can default to the pipeline service role instead of a newly created role (<a href="https://redirect.github.com/aws/aws-cdk/issues/33991">#33991</a>) (<a href="https://github.com/aws/aws-cdk/commit/2ebc51e694e85aa0d8e0401dbb1fc1037298eda5">2ebc51e</a>)</li> <li><strong>rds:</strong> engine lifecycle support (<a href="https://redirect.github.com/aws/aws-cdk/issues/33902">#33902</a>) (<a href="https://github.com/aws/aws-cdk/commit/c0f8d293df157cd196e2bd9fb569374d0535f471">c0f8d29</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/33859">#33859</a></li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/aws/aws-cdk/blob/main/CHANGELOG.v2.alpha.md">aws-cdk-lib's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <p>All notable changes to this project will be documented in this file. See <a href="https://github.com/conventional-changelog/standard-version">standard-version</a> for commit guidelines.</p> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.198.0-alpha.0...v2.199.0-alpha.0">2.199.0-alpha.0</a> (2025-05-27)</h2> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.197.0-alpha.0...v2.198.0-alpha.0">2.198.0-alpha.0</a> (2025-05-22)</h2> <h3>⚠ BREAKING CHANGES TO EXPERIMENTAL FEATURES</h3> <ul> <li><strong>amplify:</strong> A compute role is created when <code>platform</code> is <code>Platform.WEB_COMPUTE</code> or <code>Platform.WEB_DYNAMIC</code>.</li> </ul> <h3>Features</h3> <ul> <li><strong>amplify:</strong> add compute role support for Amplify app (<a href="https://redirect.github.com/aws/aws-cdk/issues/33962">#33962</a>) (<a href="https://github.com/aws/aws-cdk/commit/7490b921aa2c464e32ad27064fa4b84571d5ba1a">7490b92</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/33882">#33882</a></li> <li><strong>ec2:</strong> add i7i instance class (<a href="https://redirect.github.com/aws/aws-cdk/issues/34453">#34453</a>) (<a href="https://github.com/aws/aws-cdk/commit/3fe8ab4bb100e23042f3d55d4a52bfc8cdbf495a">3fe8ab4</a>)</li> </ul> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.196.1-alpha.0...v2.197.0-alpha.0">2.197.0-alpha.0</a> (2025-05-20)</h2> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.196.0-alpha.0...v2.196.1-alpha.0">2.196.1-alpha.0</a> (2025-05-19)</h2> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.195.0-alpha.0...v2.196.0-alpha.0">2.196.0-alpha.0</a> (2025-05-15)</h2> <h3>Features</h3> <ul> <li><strong>msk:</strong> support Kafka versions 3.9.x and 3.9.x Kraft (<a href="https://redirect.github.com/aws/aws-cdk/issues/34213">#34213</a>) (<a href="https://github.com/aws/aws-cdk/commit/a1226db3164f885ab1bbf13a18697831cfde74d0">a1226db</a>)</li> <li><strong>pipes-targets:</strong> add SNS (<a href="https://redirect.github.com/aws/aws-cdk/issues/34159">#34159</a>) (<a href="https://github.com/aws/aws-cdk/commit/2f846b395cc5061363bd6def946a04740ac0139b">2f846b3</a>)</li> <li><strong>s3tables:</strong> server-side encryption by customer managed KMS key (<a href="https://redirect.github.com/aws/aws-cdk/issues/34229">#34229</a>) (<a href="https://github.com/aws/aws-cdk/commit/488f0db714c20fcaf5dbdf682277a70c6a938d3f">488f0db</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>ec2:</strong> dual-stack vpc without private subnets creates EgressOnlyInternetGateway (under feature flag) (<a href="https://redirect.github.com/aws/aws-cdk/issues/34437">#34437</a>) (<a href="https://github.com/aws/aws-cdk/commit/35e818b4f86638b5fe6074705511d1eee16266d2">35e818b</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/30981">#30981</a></li> <li><strong>ec2-alpha:</strong> fix resource id references and tags for migration behind feature flag (<a href="https://redirect.github.com/aws/aws-cdk/issues/34377">#34377</a>) (<a href="https://github.com/aws/aws-cdk/commit/aa735341a8e95224a14241b5e1c5c5ba71de5022">aa73534</a>)</li> </ul> <h2><a href="https://github.com/aws/aws-cdk/compare/v2.194.0-alpha.0...v2.195.0-alpha.0">2.195.0-alpha.0</a> (2025-05-07)</h2> <h3>⚠ BREAKING CHANGES TO EXPERIMENTAL FEATURES</h3> <ul> <li><strong>iot:</strong> By default, <code>deviceDertificateAgeCheck</code> is automatically enabled.</li> </ul> <h3>Features</h3> <ul> <li><strong>iot:</strong> device certificate age check audit configuration (<a href="https://redirect.github.com/aws/aws-cdk/issues/33816">#33816</a>) (<a href="https://github.com/aws/aws-cdk/commit/9ad383d5300c5d5f5a9d2552fbd541436570a404">9ad383d</a>)</li> <li><strong>location:</strong> support L2 API Key Construct (<a href="https://redirect.github.com/aws/aws-cdk/issues/32733">#32733</a>) (<a href="https://github.com/aws/aws-cdk/commit/d86787889dd49dce220324d141bf48e1bfa8fc3b">d867878</a>), closes <a href="https://redirect.github.com/aws/aws-cdk/issues/30684">#30684</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aws/aws-cdk/commit/e7432ee4f8ae6f4ba000b1c1833188dddeb15624"><code>e7432ee</code></a> chore(release): 2.189.1</li> <li><a href="https://github.com/aws/aws-cdk/commit/b7f4bc7aee1d99b70e4d9d3cedea53e910ee37ef"><code>b7f4bc7</code></a> fix(core): implicit Aspect applications do not override custom Aspect applica...</li> <li><a href="https://github.com/aws/aws-cdk/commit/dcd077fb04f6900fd92e127d92a777cc38cdf932"><code>dcd077f</code></a> chore: update analytics metadata blueprints</li> <li><a href="https://github.com/aws/aws-cdk/commit/b997bf125f0782d37fb8c99db0e0be09f4b10295"><code>b997bf1</code></a> chore(release): 2.189.0</li> <li><a href="https://github.com/aws/aws-cdk/commit/eec900e90f38f34f896b22cf36cb225fc9c13cc8"><code>eec900e</code></a> feat(apigatewayv2): dualstack HTTP and WebSocket API (<a href="https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib/issues/34054">#34054</a>)</li> <li><a href="https://github.com/aws/aws-cdk/commit/9cb260266e92f45e40a19667e29ccf2decb3d2b8"><code>9cb2602</code></a> feat: update L1 CloudFormation resource definitions (<a href="https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib/issues/34064">#34064</a>)</li> <li><a href="https://github.com/aws/aws-cdk/commit/2d901f4e7bb982221e1a48a13666939140109d5a"><code>2d901f4</code></a> fix(codepipeline): replace account root principal with pipeline role in trust...</li> <li><a href="https://github.com/aws/aws-cdk/commit/3da0c4d267dbb693ffc01b9fae69cebcb180cdec"><code>3da0c4d</code></a> feat(bedrock): support Amazon Nova Reel 1.1 (<a href="https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib/issues/34070">#34070</a>)</li> <li><a href="https://github.com/aws/aws-cdk/commit/b1e8879a800850efb130cb8aaaef596195de56f9"><code>b1e8879</code></a> docs(pipelines): add link to developer guide on how to use docker drop-in rep...</li> <li><a href="https://github.com/aws/aws-cdk/commit/1b98a41853c17dcce53c5bb7074011c8dd928fb3"><code>1b98a41</code></a> docs(batch): add note on update fatgate compute environment (<a href="https://github.com/aws/aws-cdk/tree/HEAD/packages/aws-cdk-lib/issues/34022">#34022</a>)</li> <li>Additional commits viewable in <a href="https://github.com/aws/aws-cdk/commits/v2.189.1/packages/aws-cdk-lib">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/swift-server/swift-aws-lambda-runtime/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sébastien Stormacq <sebastien.stormacq@gmail.com> |
||
|
|
0267ab1497 |
[example] Update cdk dependencies (#503)
Update CDK dependencies to address https://github.com/swift-server/swift-aws-lambda-runtime/security/dependabot/2 |
||
|
|
bba711bd18 |
remove mentions of LambdaRuntImeCore (#495)
Cleanup code from mentions of `LambdaRuntimeCore` |
||
|
|
0a75e0f9cc | Use package traits when using Swift 6.1 (#490) | ||
|
|
0777c80172 |
Add S3EventNotifier example (#477)
Add `S3EventNotifier` example ### Motivation: There is currently no example regarding an AWS event triggered lambda, such as a lambda that gets invoked on an S3 object upload. I've had to look for a while to figure out that the `AWSLambdaEvents` exists and that it can be used for that (had to find out via a Java example! 😜) so I think this could be useful and a somewhat common use case ### Modifications: Added an example of a lambda that gets triggered when an object gets uploaded to an S3 bucket. I have not described how to set up the actual S3 event in AWS because I figured if you needed such a lambda you'd know, but I can describe that too in the README if needed --------- Co-authored-by: Sébastien Stormacq <sebastien.stormacq@gmail.com> |
||
|
|
bd0ec62646 |
Remove platform dance in some examples (#476)
Remove `#if os` on some examples |
||
|
|
4d7d23b9c1 |
[examples] Update to Swift Lambda Events 1.0.0 (#475)
Now that the swift Lambda event library has been tagged 1.0.0, update all the examples to use `from: "1.0.0"` instead of `main` branch |