diff --git a/.github/workflows/examples.yaml b/.github/workflows/examples.yaml index c65e2d5b..392eec8b 100644 --- a/.github/workflows/examples.yaml +++ b/.github/workflows/examples.yaml @@ -115,7 +115,7 @@ jobs: run: | chmod +x /tmp/layer-x86_64/lambda-adapter printf 'FROM scratch\nCOPY --chmod=755 lambda-adapter /lambda-adapter\n' | \ - docker build -t public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 -f- /tmp/layer-x86_64 + docker build -t public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 -f- /tmp/layer-x86_64 - name: Build working-directory: examples/${{ matrix.example }} diff --git a/CHANGELOG.md b/CHANGELOG.md index eae7c13d..a9d1ff6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## v1.0.0 - 2026-03-20 +## v1.0.0 - 2026-03-27 ### Major Updates @@ -16,6 +16,7 @@ This is the first GA release of AWS Lambda Web Adapter. It includes multi-tenanc - **Error status codes**: New `AWS_LWA_ERROR_STATUS_CODES` env var to treat specific HTTP status codes as Lambda failures (#558) - **Runtime API proxy**: New `AWS_LWA_LAMBDA_RUNTIME_API_PROXY` env var to proxy Lambda runtime API calls (#588) - **Healthy status ranges**: New `AWS_LWA_READINESS_CHECK_HEALTHY_STATUS` supporting comma-separated codes and ranges (e.g., `200-399,404`) (#638) +- **GA readiness improvements**: Deprecation warnings for non-prefixed env vars, improved configuration validation (#667) ### Performance @@ -24,6 +25,9 @@ This is the first GA release of AWS Lambda Web Adapter. It includes multi-tenanc ### Bug Fixes +- Update aws-lc-rs to resolve 5 security advisories (#687) +- Disable connection pooling to prevent stale connections after SnapStart (#671) +- Preserve response body when `error_status_codes` triggers (#668) - Don't append trailing `?` when query string is empty (#657) - Fix `path_through_path` renamed to `pass_through_path` (#619) - Override user-set `x-amzn-{lambda,request}-context` headers to prevent spoofing (#286) @@ -36,6 +40,7 @@ This is the first GA release of AWS Lambda Web Adapter. It includes multi-tenanc - Added migration guide for 0.x to 1.0 upgrade - Added SECURITY.md - Added user guide with GitHub Pages deployment (#639) +- Simplify README and link to user guide (#644) ### CI/CD @@ -45,6 +50,46 @@ This is the first GA release of AWS Lambda Web Adapter. It includes multi-tenanc - Daily security audit via `rustsec/audit-check` (#391) - Benchmark tracking with PR comments +### Dependencies + +- Upgrade lambda runtime from 1.1.0-rc1 to 1.1.1 (#661) +- Bump rustls-webpki from 0.103.9 to 0.103.10 (#679) + +### Examples + +- Add FastMCP examples (#645) +- Add Datadog examples for streaming mode (#608) +- Upgrade deprecated Lambda runtimes in examples (#649) + +--- + +## v1.0.0-rc1 - 2026-02-16 + +### Features + +- **Multi-tenancy support**: Propagate `tenant_id` from Lambda context as `x-amz-tenant-id` header (#631) +- **Lambda Managed Instances**: Support concurrent request handling in a single execution environment (#625) +- Improve error handling, comprehensive documentation, and API improvements (#628) + +### Performance + +- Zero-copy body conversion and performance benchmarks (#627) + +### Bug Fixes + +- Rename `path_through_path` to `pass_through_path` (#619) +- Use native SAM CLI installer for all pipeline jobs (#632) + +### Examples + +- Add Datadog examples (#602, #608) + +### Maintenance + +- Update dependencies to latest versions (#624) +- Update arm64 supported regions (#621) +- Update `actions/checkout` GitHub Actions (#594) + --- ## v0.9.1 - 2025-04-23 diff --git a/README.md b/README.md index a2a8b719..2391bbcf 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The same docker image can run on AWS Lambda, Amazon EC2, AWS Fargate, and local ![Lambda Web Adapter](docs/images/lambda-adapter-overview.png) -📖 **[Read the full User Guide](https://awslabs.github.io/aws-lambda-web-adapter/)** +📖 **[Read the full User Guide](https://aws.github.io/aws-lambda-web-adapter/)** ## Features @@ -30,22 +30,22 @@ The same docker image can run on AWS Lambda, Amazon EC2, AWS Fargate, and local Add one line to your Dockerfile: ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` Pre-compiled multi-arch images (x86_64 and arm64) are available at [public.ecr.aws/awsguru/aws-lambda-adapter](https://gallery.ecr.aws/awsguru/aws-lambda-adapter). [Non-AWS base images](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html) may be used since the [Runtime Interface Client](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-ric) ships with the Lambda Web Adapter. -👉 [Docker Images guide](https://awslabs.github.io/aws-lambda-web-adapter/getting-started/docker-images.html) +👉 [Docker Images guide](https://aws.github.io/aws-lambda-web-adapter/getting-started/docker-images.html) ### Zip Packages 1. Attach the Lambda Web Adapter layer to your function: - - x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26` - - arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26` + - x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27` + - arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27` 2. Set environment variable `AWS_LAMBDA_EXEC_WRAPPER` to `/opt/bootstrap` 3. Set function handler to your startup script, e.g. `run.sh` -👉 [Zip Packages guide](https://awslabs.github.io/aws-lambda-web-adapter/getting-started/zip-packages.html) (includes AWS China region ARNs and Windows caveats) +👉 [Zip Packages guide](https://aws.github.io/aws-lambda-web-adapter/getting-started/zip-packages.html) (includes AWS China region ARNs and Windows caveats) ## Configurations @@ -73,7 +73,7 @@ The readiness check port/path and traffic port can be configured using environme > > Additionally, `AWS_LWA_READINESS_CHECK_MIN_UNHEALTHY_STATUS` has been removed in 1.0. Use `AWS_LWA_READINESS_CHECK_HEALTHY_STATUS` instead. -👉 [Detailed configuration docs](https://awslabs.github.io/aws-lambda-web-adapter/configuration/environment-variables.html) +👉 [Detailed configuration docs](https://aws.github.io/aws-lambda-web-adapter/configuration/environment-variables.html) ## Examples @@ -119,7 +119,7 @@ The readiness check port/path and traffic port can be configured using environme - [Datadog](examples/datadog) - [Datadog in Zip](examples/datadog-zip) -👉 [Examples organized by language](https://awslabs.github.io/aws-lambda-web-adapter/examples/overview.html) +👉 [Examples organized by language](https://aws.github.io/aws-lambda-web-adapter/examples/overview.html) ## Acknowledgement diff --git a/docs/guide/src/getting-started/docker-images.md b/docs/guide/src/getting-started/docker-images.md index 93906786..844bc24a 100644 --- a/docs/guide/src/getting-started/docker-images.md +++ b/docs/guide/src/getting-started/docker-images.md @@ -3,7 +3,7 @@ To use Lambda Web Adapter with Docker images, package your web app in a Dockerfile and add one line to copy the adapter binary: ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` [Non-AWS base images](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html) can be used since the [Runtime Interface Client](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-ric) ships with the adapter. @@ -12,7 +12,7 @@ COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter ```dockerfile FROM public.ecr.aws/docker/library/node:20-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=7000 WORKDIR "/var/task" ADD src/package.json /var/task/package.json @@ -37,5 +37,5 @@ ENV AWS_LWA_PORT=3000 Pre-compiled multi-arch images (x86_64 and arm64) are available at: ``` -public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 +public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 ``` diff --git a/docs/guide/src/getting-started/quick-start.md b/docs/guide/src/getting-started/quick-start.md index b43d9408..c5227c90 100644 --- a/docs/guide/src/getting-started/quick-start.md +++ b/docs/guide/src/getting-started/quick-start.md @@ -14,7 +14,7 @@ AWS Lambda Web Adapter works with Lambda functions packaged as both Docker image Add one line to your existing Dockerfile: ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` That's it. Your web app now runs on Lambda. diff --git a/docs/guide/src/getting-started/zip-packages.md b/docs/guide/src/getting-started/zip-packages.md index ba36f054..cd54448e 100644 --- a/docs/guide/src/getting-started/zip-packages.md +++ b/docs/guide/src/getting-started/zip-packages.md @@ -10,15 +10,15 @@ AWS Lambda Web Adapter works with AWS managed Lambda runtimes via Lambda Layers. | Architecture | Layer ARN | |-------------|-----------| -| x86_64 | `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26` | -| arm64 | `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26` | +| x86_64 | `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27` | +| arm64 | `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27` | #### AWS China Regions | Region | Architecture | Layer ARN | |--------|-------------|-----------| -| cn-north-1 (Beijing) | x86_64 | `arn:aws-cn:lambda:cn-north-1:041581134020:layer:LambdaAdapterLayerX86:26` | -| cn-northwest-1 (Ningxia) | x86_64 | `arn:aws-cn:lambda:cn-northwest-1:069767869989:layer:LambdaAdapterLayerX86:26` | +| cn-north-1 (Beijing) | x86_64 | `arn:aws-cn:lambda:cn-north-1:041581134020:layer:LambdaAdapterLayerX86:27` | +| cn-northwest-1 (Ningxia) | x86_64 | `arn:aws-cn:lambda:cn-northwest-1:069767869989:layer:LambdaAdapterLayerX86:27` | ### 2. Set the Exec Wrapper @@ -42,7 +42,7 @@ Resources: Runtime: nodejs20.x Handler: run.sh Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Environment: Variables: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap diff --git a/examples/aspnet-mvc-zip/README.md b/examples/aspnet-mvc-zip/README.md index 62b94d7c..59af4a80 100644 --- a/examples/aspnet-mvc-zip/README.md +++ b/examples/aspnet-mvc-zip/README.md @@ -17,7 +17,7 @@ Resources: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap RUST_LOG: info Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: Api: Type: HttpApi diff --git a/examples/aspnet-mvc-zip/template.yaml b/examples/aspnet-mvc-zip/template.yaml index 9af0700a..bba4e950 100644 --- a/examples/aspnet-mvc-zip/template.yaml +++ b/examples/aspnet-mvc-zip/template.yaml @@ -22,7 +22,7 @@ Resources: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap RUST_LOG: info Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: Api: Type: HttpApi diff --git a/examples/aspnet-mvc/README.md b/examples/aspnet-mvc/README.md index 7b3c9562..99560746 100644 --- a/examples/aspnet-mvc/README.md +++ b/examples/aspnet-mvc/README.md @@ -23,7 +23,7 @@ RUN dotnet publish "AspNetLambdaWebAdapter.csproj" -c Release -o /app/publish FROM base AS final ENV ASPNETCORE_URLS=http://+:8080 -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "AspNetLambdaWebAdapter.dll"] @@ -32,7 +32,7 @@ ENTRYPOINT ["dotnet", "AspNetLambdaWebAdapter.dll"] Line 12 copies lambda adapter binary into /opt/extensions. This is required to run ASP.NET application on Lambda. The `ASPNETCORE_URLS` environment variable is also set to 8080. This is required for the Lambda Web Adapter to work. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` ## Pre-requisites diff --git a/examples/aspnet-mvc/src/Dockerfile b/examples/aspnet-mvc/src/Dockerfile index 65e27a0d..b452183e 100644 --- a/examples/aspnet-mvc/src/Dockerfile +++ b/examples/aspnet-mvc/src/Dockerfile @@ -12,7 +12,7 @@ RUN dotnet publish "AspNetLambdaWebAdapter.csproj" -c Release -o /app/publish FROM base AS final ENV ASPNETCORE_URLS=http://+: -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "AspNetLambdaWebAdapter.dll"] \ No newline at end of file diff --git a/examples/aspnet-webapi-zip/README.md b/examples/aspnet-webapi-zip/README.md index c511a119..279d1641 100644 --- a/examples/aspnet-webapi-zip/README.md +++ b/examples/aspnet-webapi-zip/README.md @@ -17,7 +17,7 @@ Resources: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap RUST_LOG: info Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: Api: Type: HttpApi diff --git a/examples/aspnet-webapi-zip/template.yaml b/examples/aspnet-webapi-zip/template.yaml index 87263882..21c0202c 100644 --- a/examples/aspnet-webapi-zip/template.yaml +++ b/examples/aspnet-webapi-zip/template.yaml @@ -22,7 +22,7 @@ Resources: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap RUST_LOG: info Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: Api: Type: HttpApi diff --git a/examples/bedrock-agent-fastapi-zip/template.yaml b/examples/bedrock-agent-fastapi-zip/template.yaml index e1b4481d..eb7399c4 100644 --- a/examples/bedrock-agent-fastapi-zip/template.yaml +++ b/examples/bedrock-agent-fastapi-zip/template.yaml @@ -24,7 +24,7 @@ Resources: AWS_LWA_READINESS_CHECK_PROTOCOL: TCP PORT: 8000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Policies: AmazonS3ReadOnlyAccess BedrockAgentPermission: diff --git a/examples/bedrock-agent-fastapi/README.md b/examples/bedrock-agent-fastapi/README.md index 549ad8de..33e3d454 100644 --- a/examples/bedrock-agent-fastapi/README.md +++ b/examples/bedrock-agent-fastapi/README.md @@ -8,7 +8,7 @@ The top level folder is a typical AWS SAM project. The `app` directory is an Fas ```dockerfile FROM public.ecr.aws/docker/library/python:3.12.0-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 AWS_LWA_READINESS_CHECK_PROTOCOL=tcp WORKDIR /var/task COPY requirements.txt ./ @@ -20,7 +20,7 @@ CMD exec uvicorn --port=$PORT main:app Line 2 copies lambda adapter binary into /opt/extensions. This is the only change to run the FastAPI application on Lambda. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` ## Pre-requisites diff --git a/examples/bedrock-agent-fastapi/app/Dockerfile b/examples/bedrock-agent-fastapi/app/Dockerfile index d9e1c948..0571aa2b 100644 --- a/examples/bedrock-agent-fastapi/app/Dockerfile +++ b/examples/bedrock-agent-fastapi/app/Dockerfile @@ -1,5 +1,5 @@ FROM public.ecr.aws/docker/library/python:3.12.0-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 AWS_LWA_READINESS_CHECK_PROTOCOL=tcp WORKDIR /var/task COPY requirements.txt ./ diff --git a/examples/bun-graphql-streaming-zip/template.yaml b/examples/bun-graphql-streaming-zip/template.yaml index 23f528e4..33030f2d 100644 --- a/examples/bun-graphql-streaming-zip/template.yaml +++ b/examples/bun-graphql-streaming-zip/template.yaml @@ -26,7 +26,7 @@ Resources: AWS_LWA_INVOKE_MODE: response_stream PORT: 3000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27 - !Sub arn:aws:lambda:us-east-1:582637575117:layer:BunRuntimeArm64:1 FunctionUrlConfig: AuthType: NONE diff --git a/examples/bun-graphql-zip/template.yaml b/examples/bun-graphql-zip/template.yaml index de808ec4..ff57228b 100644 --- a/examples/bun-graphql-zip/template.yaml +++ b/examples/bun-graphql-zip/template.yaml @@ -25,7 +25,7 @@ Resources: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap PORT: 3000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 - !Sub arn:aws:lambda:us-east-1:582637575117:layer:BunRuntimeX64:1 Events: RootEvent: diff --git a/examples/datadog-zip/expressjs/cdk/app/cdk.ts b/examples/datadog-zip/expressjs/cdk/app/cdk.ts index 3642bd4b..ea8a331d 100644 --- a/examples/datadog-zip/expressjs/cdk/app/cdk.ts +++ b/examples/datadog-zip/expressjs/cdk/app/cdk.ts @@ -41,7 +41,7 @@ class LwaStack extends Stack { const lwa_lambda_layer = lambda.LayerVersion.fromLayerVersionArn( this, "lwa_lambda-layer", - "arn:aws:lambda:us-east-1:753240598075:layer:LambdaAdapterLayerX86:26", + "arn:aws:lambda:us-east-1:753240598075:layer:LambdaAdapterLayerX86:27", ); const dd_layer = lambda.LayerVersion.fromLayerVersionArn( this, diff --git a/examples/datadog/expressjs-streaming/lambda-asset/Dockerfile b/examples/datadog/expressjs-streaming/lambda-asset/Dockerfile index 41503eeb..c36ef9e6 100644 --- a/examples/datadog/expressjs-streaming/lambda-asset/Dockerfile +++ b/examples/datadog/expressjs-streaming/lambda-asset/Dockerfile @@ -2,7 +2,7 @@ FROM public.ecr.aws/docker/library/node:slim # APM support for responsestreaming mode requires v84+ COPY --from=public.ecr.aws/datadog/lambda-extension:84 /opt/. /opt/ -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter EXPOSE 8080 WORKDIR "/var/task" diff --git a/examples/datadog/expressjs/lambda-asset/Dockerfile b/examples/datadog/expressjs/lambda-asset/Dockerfile index 77bcc6df..14943dfe 100644 --- a/examples/datadog/expressjs/lambda-asset/Dockerfile +++ b/examples/datadog/expressjs/lambda-asset/Dockerfile @@ -1,7 +1,7 @@ FROM public.ecr.aws/docker/library/node:slim COPY --from=public.ecr.aws/datadog/lambda-extension:84 /opt/. /opt/ -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter EXPOSE 8080 WORKDIR "/var/task" diff --git a/examples/datadog/flask/lambda-asset/Dockerfile b/examples/datadog/flask/lambda-asset/Dockerfile index 7b202e4b..5d7b4277 100644 --- a/examples/datadog/flask/lambda-asset/Dockerfile +++ b/examples/datadog/flask/lambda-asset/Dockerfile @@ -1,7 +1,7 @@ FROM public.ecr.aws/docker/library/python:slim COPY --from=public.ecr.aws/datadog/lambda-extension:84 /opt/. /opt/ -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter EXPOSE 8080 WORKDIR "/var/task" diff --git a/examples/deno-zip/README.md b/examples/deno-zip/README.md index 45a205ca..d63a9af1 100644 --- a/examples/deno-zip/README.md +++ b/examples/deno-zip/README.md @@ -19,7 +19,7 @@ We use `java11` runtime to get SnapStart support with one caveat: no runtime hoo Architectures: - x86_64 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 MemorySize: 512 Environment: Variables: diff --git a/examples/deno-zip/template.yaml b/examples/deno-zip/template.yaml index c260d63b..8a14c01f 100644 --- a/examples/deno-zip/template.yaml +++ b/examples/deno-zip/template.yaml @@ -24,7 +24,7 @@ Resources: Architectures: - x86_64 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 MemorySize: 512 Environment: # More info about Env Vars: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object Variables: diff --git a/examples/expressjs-zip/README.md b/examples/expressjs-zip/README.md index 76bb6aeb..abd1d027 100644 --- a/examples/expressjs-zip/README.md +++ b/examples/expressjs-zip/README.md @@ -7,8 +7,8 @@ This example shows how to use Lambda Adapter to run an express.js application on We add Lambda Adapter layer to the function and configure wrapper script. 1. attach Lambda Adapter layer to your function. This layer contains the Lambda Adapter binary and a wrapper script. - 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26` - 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26` + 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27` + 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27` 2. configure Lambda environment variable `AWS_LAMBDA_EXEC_WRAPPER` to `/opt/bootstrap`. This is a wrapper script included in the layer. 3. set function handler to a startup command: `run.sh`. The wrapper script will execute this command to boot up your application. diff --git a/examples/expressjs-zip/template.yaml b/examples/expressjs-zip/template.yaml index 907dd012..7883aae5 100644 --- a/examples/expressjs-zip/template.yaml +++ b/examples/expressjs-zip/template.yaml @@ -25,7 +25,7 @@ Resources: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap RUST_LOG: info Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: RootPath: Type: Api diff --git a/examples/expressjs/README.md b/examples/expressjs/README.md index 7465db6b..c15f5be4 100644 --- a/examples/expressjs/README.md +++ b/examples/expressjs/README.md @@ -10,7 +10,7 @@ The top level folder is a typical AWS SAM project. The `app` directory is an exp ```dockerfile FROM public.ecr.aws/docker/library/node:16.13.2-stretch-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter EXPOSE 8080 WORKDIR "/var/task" ADD src/package.json /var/task/package.json @@ -23,7 +23,7 @@ CMD ["node", "index.js"] Line 2 copies lambda adapter binary into /opt/extensions. This is the only change to run the express.js application on Lambda. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` ## Pre-requisites diff --git a/examples/expressjs/app/Dockerfile b/examples/expressjs/app/Dockerfile index 203f9cf2..d975a484 100644 --- a/examples/expressjs/app/Dockerfile +++ b/examples/expressjs/app/Dockerfile @@ -1,5 +1,5 @@ FROM public.ecr.aws/docker/library/node:16.13.2-stretch-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter EXPOSE 8080 WORKDIR "/var/task" ADD src/package.json /var/task/package.json diff --git a/examples/fastapi-backend-only-response-streaming/README.md b/examples/fastapi-backend-only-response-streaming/README.md index 575aa077..2987ccad 100644 --- a/examples/fastapi-backend-only-response-streaming/README.md +++ b/examples/fastapi-backend-only-response-streaming/README.md @@ -26,7 +26,7 @@ The setup allows any frontend to consume the streaming service via GET requests ```dockerfile FROM public.ecr.aws/docker/library/python:3.12.0-slim-bullseye -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /app ADD . . @@ -38,7 +38,7 @@ CMD ["python", "main.py"] Notice that we only need to add the second line to install Lambda Web Adapter. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/ +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/ ``` In the SAM template, we use an environment variable `AWS_LWA_INVOKE_MODE: RESPONSE_STREAM` to configure Lambda Web Adapter in response streaming mode. And adding a function url with `InvokeMode: RESPONSE_STREAM`. diff --git a/examples/fastapi-backend-only-response-streaming/app/Dockerfile b/examples/fastapi-backend-only-response-streaming/app/Dockerfile index b3689252..d3766c29 100644 --- a/examples/fastapi-backend-only-response-streaming/app/Dockerfile +++ b/examples/fastapi-backend-only-response-streaming/app/Dockerfile @@ -1,5 +1,5 @@ FROM public.ecr.aws/docker/library/python:3.12.0-slim-bullseye -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /app ADD . . diff --git a/examples/fastapi-background-tasks/README.md b/examples/fastapi-background-tasks/README.md index 019b75a6..4dd95454 100644 --- a/examples/fastapi-background-tasks/README.md +++ b/examples/fastapi-background-tasks/README.md @@ -10,7 +10,7 @@ The top level folder is a typical AWS SAM project. The `app` directory is a Fast ```dockerfile FROM public.ecr.aws/docker/library/python:3.12-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 WORKDIR /var/task COPY requirements.txt ./ @@ -22,7 +22,7 @@ CMD exec uvicorn --port=$PORT main:app Line 2 copies lambda web adapter binary into /opt/extensions. This is the change to run the FastAPI application on Lambda. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` ## Pre-requisites diff --git a/examples/fastapi-background-tasks/app/Dockerfile b/examples/fastapi-background-tasks/app/Dockerfile index 6a8c44f0..14c46fbf 100644 --- a/examples/fastapi-background-tasks/app/Dockerfile +++ b/examples/fastapi-background-tasks/app/Dockerfile @@ -1,5 +1,5 @@ FROM public.ecr.aws/docker/library/python:3.12-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 WORKDIR /var/task COPY requirements.txt ./ diff --git a/examples/fastapi-response-streaming-lmi/README.md b/examples/fastapi-response-streaming-lmi/README.md index 1d221e76..c88d4a1c 100644 --- a/examples/fastapi-response-streaming-lmi/README.md +++ b/examples/fastapi-response-streaming-lmi/README.md @@ -47,7 +47,7 @@ FastAPIFunction: AWS_LWA_INVOKE_MODE: response_stream PORT: 8000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 CapacityProviderConfig: Arn: !GetAtt LMICapacityProvider.Arn PerExecutionEnvironmentMaxConcurrency: 64 diff --git a/examples/fastapi-response-streaming-lmi/template.yaml b/examples/fastapi-response-streaming-lmi/template.yaml index c52196f1..d8b9dd8a 100644 --- a/examples/fastapi-response-streaming-lmi/template.yaml +++ b/examples/fastapi-response-streaming-lmi/template.yaml @@ -40,7 +40,7 @@ Resources: AWS_LWA_INVOKE_MODE: response_stream PORT: 8000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 CapacityProviderConfig: Arn: !GetAtt LMICapacityProvider.Arn PerExecutionEnvironmentMaxConcurrency: 64 diff --git a/examples/fastapi-response-streaming-zip/README.md b/examples/fastapi-response-streaming-zip/README.md index 9e807a4b..cdb8af14 100644 --- a/examples/fastapi-response-streaming-zip/README.md +++ b/examples/fastapi-response-streaming-zip/README.md @@ -7,8 +7,8 @@ This example shows how to use Lambda Web Adapter to run a FastAPI application wi We add Lambda Web Adapter layer to the function and configure wrapper script. 1. attach Lambda Adapter layer to your function. This layer contains the Lambda Adapter binary and a wrapper script. - 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26` - 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26` + 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27` + 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27` 2. configure Lambda environment variable `AWS_LAMBDA_EXEC_WRAPPER` to `/opt/bootstrap`. This is a wrapper script included in the layer. 3. set function handler to a startup command: `run.sh`. The wrapper script will execute this command to boot up your application. @@ -30,7 +30,7 @@ This is the resource for Lambda function. The function urls's invoke mode is con AWS_LWA_INVOKE_MODE: response_stream PORT: 8000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 FunctionUrlConfig: AuthType: NONE InvokeMode: RESPONSE_STREAM diff --git a/examples/fastapi-response-streaming-zip/template.yaml b/examples/fastapi-response-streaming-zip/template.yaml index 9f392e7d..cba9ebb7 100644 --- a/examples/fastapi-response-streaming-zip/template.yaml +++ b/examples/fastapi-response-streaming-zip/template.yaml @@ -22,7 +22,7 @@ Resources: AWS_LWA_INVOKE_MODE: response_stream PORT: 8000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 FunctionUrlConfig: AuthType: NONE InvokeMode: RESPONSE_STREAM diff --git a/examples/fastapi-response-streaming/README.md b/examples/fastapi-response-streaming/README.md index c36c0001..e10dcad6 100644 --- a/examples/fastapi-response-streaming/README.md +++ b/examples/fastapi-response-streaming/README.md @@ -14,7 +14,7 @@ This function is packaged as a Docker image. Here is the content of the Dockerfi ```dockerfile FROM public.ecr.aws/docker/library/python:3.12.0-slim-bullseye -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /app ADD . . @@ -26,7 +26,7 @@ CMD ["python", "main.py"] Notice that we only need to add the second line to install Lambda Web Adapter. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/ +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/ ``` In the SAM template, we use an environment variable `AWS_LWA_INVOKE_MODE: RESPONSE_STREAM` to configure Lambda Web Adapter in response streaming mode. And adding a function url with `InvokeMode: RESPONSE_STREAM`. diff --git a/examples/fastapi-response-streaming/app/Dockerfile b/examples/fastapi-response-streaming/app/Dockerfile index b3689252..d3766c29 100644 --- a/examples/fastapi-response-streaming/app/Dockerfile +++ b/examples/fastapi-response-streaming/app/Dockerfile @@ -1,5 +1,5 @@ FROM public.ecr.aws/docker/library/python:3.12.0-slim-bullseye -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /app ADD . . diff --git a/examples/fastapi-zip/README.md b/examples/fastapi-zip/README.md index 7e0d2ae5..76189c64 100644 --- a/examples/fastapi-zip/README.md +++ b/examples/fastapi-zip/README.md @@ -7,8 +7,8 @@ This example shows how to use Lambda Web Adapter to run a FastAPI application on We add Lambda Web Adapter layer to the function and configure wrapper script. 1. attach Lambda Adapter layer to your function. This layer contains the Lambda Adapter binary and a wrapper script. - 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26` - 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26` + 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27` + 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27` 2. configure Lambda environment variable `AWS_LAMBDA_EXEC_WRAPPER` to `/opt/bootstrap`. This is a wrapper script included in the layer. 3. set function handler to a startup command: `run.sh`. The wrapper script will execute this command to boot up your application. diff --git a/examples/fastapi-zip/template.yaml b/examples/fastapi-zip/template.yaml index 649fad82..deb394e3 100644 --- a/examples/fastapi-zip/template.yaml +++ b/examples/fastapi-zip/template.yaml @@ -21,7 +21,7 @@ Resources: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap PORT: 8000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: ApiEvent: Type: HttpApi diff --git a/examples/fastapi/README.md b/examples/fastapi/README.md index 79e480ed..aa307cc1 100644 --- a/examples/fastapi/README.md +++ b/examples/fastapi/README.md @@ -10,7 +10,7 @@ The top level folder is a typical AWS SAM project. The `app` directory is a Fast ```dockerfile FROM public.ecr.aws/docker/library/python:3.8.12-slim-buster -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 WORKDIR /var/task COPY requirements.txt ./ @@ -22,7 +22,7 @@ CMD exec uvicorn --port=$PORT main:app Line 2 copies lambda web adapter binary into /opt/extensions. This is the change to run the FastAPI application on Lambda. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` ## Pre-requisites diff --git a/examples/fastapi/app/Dockerfile b/examples/fastapi/app/Dockerfile index 6a8c44f0..14c46fbf 100644 --- a/examples/fastapi/app/Dockerfile +++ b/examples/fastapi/app/Dockerfile @@ -1,5 +1,5 @@ FROM public.ecr.aws/docker/library/python:3.12-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 WORKDIR /var/task COPY requirements.txt ./ diff --git a/examples/fasthtml-response-streaming-zip/README.md b/examples/fasthtml-response-streaming-zip/README.md index cbf15793..48258efc 100644 --- a/examples/fasthtml-response-streaming-zip/README.md +++ b/examples/fasthtml-response-streaming-zip/README.md @@ -7,8 +7,8 @@ This example shows how to use Lambda Web Adapter to run a [FastHTML](https://fas We add Lambda Web Adapter layer to the function and configure wrapper script. 1. attach Lambda Adapter layer to your function. This layer contains the Lambda Adapter binary and a wrapper script. - 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26` - 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26` + 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27` + 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27` 2. configure Lambda environment variable `AWS_LAMBDA_EXEC_WRAPPER` to `/opt/bootstrap`. This is a wrapper script included in the layer. 3. set function handler to a startup command: `run.sh`. The wrapper script will execute this command to boot up your application. @@ -30,7 +30,7 @@ This is the resource for Lambda function. The function urls's invoke mode is con AWS_LWA_INVOKE_MODE: response_stream PORT: 8000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 FunctionUrlConfig: AuthType: NONE InvokeMode: RESPONSE_STREAM diff --git a/examples/fasthtml-response-streaming-zip/template.yaml b/examples/fasthtml-response-streaming-zip/template.yaml index 1103fe97..aa3bec6c 100644 --- a/examples/fasthtml-response-streaming-zip/template.yaml +++ b/examples/fasthtml-response-streaming-zip/template.yaml @@ -22,7 +22,7 @@ Resources: AWS_LWA_INVOKE_MODE: response_stream PORT: 8000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 FunctionUrlConfig: AuthType: NONE InvokeMode: RESPONSE_STREAM diff --git a/examples/fasthtml-response-streaming/README.md b/examples/fasthtml-response-streaming/README.md index ca04b794..81ec94b4 100644 --- a/examples/fasthtml-response-streaming/README.md +++ b/examples/fasthtml-response-streaming/README.md @@ -14,7 +14,7 @@ This function is packaged as a Docker image. Here is the content of the Dockerfi ```dockerfile FROM public.ecr.aws/docker/library/python:3.12.0-slim-bullseye -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /app ADD . . @@ -26,7 +26,7 @@ CMD ["python", "main.py"] Notice that we only need to add the second line to install Lambda Web Adapter. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/ +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/ ``` In the SAM template, we use an environment variable `AWS_LWA_INVOKE_MODE: RESPONSE_STREAM` to configure Lambda Web Adapter in response streaming mode. And adding a function url with `InvokeMode: RESPONSE_STREAM`. diff --git a/examples/fasthtml-response-streaming/app/Dockerfile b/examples/fasthtml-response-streaming/app/Dockerfile index b3689252..d3766c29 100644 --- a/examples/fasthtml-response-streaming/app/Dockerfile +++ b/examples/fasthtml-response-streaming/app/Dockerfile @@ -1,5 +1,5 @@ FROM public.ecr.aws/docker/library/python:3.12.0-slim-bullseye -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /app ADD . . diff --git a/examples/fasthtml-zip/README.md b/examples/fasthtml-zip/README.md index 3ec4cca9..e5b3784a 100644 --- a/examples/fasthtml-zip/README.md +++ b/examples/fasthtml-zip/README.md @@ -7,8 +7,8 @@ This example shows how to use Lambda Web Adapter to run a FastHTML application o We add Lambda Web Adapter layer to the function and configure wrapper script. 1. attach Lambda Adapter layer to your function. This layer contains the Lambda Adapter binary and a wrapper script. - 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26` - 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26` + 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27` + 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27` 2. configure Lambda environment variable `AWS_LAMBDA_EXEC_WRAPPER` to `/opt/bootstrap`. This is a wrapper script included in the layer. 3. set function handler to a startup command: `run.sh`. The wrapper script will execute this command to boot up your application. diff --git a/examples/fasthtml-zip/template.yaml b/examples/fasthtml-zip/template.yaml index 0d04c100..e47b8643 100644 --- a/examples/fasthtml-zip/template.yaml +++ b/examples/fasthtml-zip/template.yaml @@ -21,7 +21,7 @@ Resources: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap PORT: 8000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: ApiEvent: Type: HttpApi diff --git a/examples/fasthtml/README.md b/examples/fasthtml/README.md index a97b1159..ed9c91c4 100644 --- a/examples/fasthtml/README.md +++ b/examples/fasthtml/README.md @@ -10,7 +10,7 @@ The top level folder is a typical AWS SAM project. The `app` directory is a Fast ```dockerfile FROM public.ecr.aws/docker/library/python:3.8.12-slim-buster -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 WORKDIR /var/task COPY requirements.txt ./ @@ -22,7 +22,7 @@ CMD exec uvicorn --port=$PORT main:app Line 2 copies lambda web adapter binary into /opt/extensions. This is the change to run the FastHTML application on Lambda. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` ## Pre-requisites diff --git a/examples/fasthtml/app/Dockerfile b/examples/fasthtml/app/Dockerfile index 39277273..11460212 100644 --- a/examples/fasthtml/app/Dockerfile +++ b/examples/fasthtml/app/Dockerfile @@ -1,5 +1,5 @@ FROM public.ecr.aws/docker/library/python:3.12-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 WORKDIR /var/task COPY requirements.txt ./ diff --git a/examples/fastmcp-zip/README.md b/examples/fastmcp-zip/README.md index 39e4a7a0..d884324c 100644 --- a/examples/fastmcp-zip/README.md +++ b/examples/fastmcp-zip/README.md @@ -7,8 +7,8 @@ This example shows how to use Lambda Web Adapter to run a FastMCP server on mana We add Lambda Web Adapter layer to the function and configure wrapper script. 1. attach Lambda Adapter layer to your function. This layer contains the Lambda Adapter binary and a wrapper script. - 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26` - 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26` + 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27` + 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27` 2. configure Lambda environment variable `AWS_LAMBDA_EXEC_WRAPPER` to `/opt/bootstrap`. This is a wrapper script included in the layer. 3. set function handler to a startup command: `run.sh`. The wrapper script will execute this command to boot up your application. 4. configure `AWS_LWA_READINESS_CHECK_PATH` to `/healthz` so the adapter waits for the MCP server to be ready before forwarding requests. diff --git a/examples/fastmcp-zip/template.yaml b/examples/fastmcp-zip/template.yaml index ce367af5..90f99ee9 100644 --- a/examples/fastmcp-zip/template.yaml +++ b/examples/fastmcp-zip/template.yaml @@ -33,7 +33,7 @@ Resources: AWS_LWA_READINESS_CHECK_PATH: /healthz AWS_LWA_READINESS_CHECK_HEALTHY_STATUS: 100-499 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27 Events: ApiEvent: Type: HttpApi diff --git a/examples/fastmcp/README.md b/examples/fastmcp/README.md index c79e4a2f..04a79bf3 100644 --- a/examples/fastmcp/README.md +++ b/examples/fastmcp/README.md @@ -15,7 +15,7 @@ COPY requirements.txt ./ RUN pip install --no-cache-dir --target=/var/task/deps -r requirements.txt FROM --platform=linux/amd64 public.ecr.aws/docker/library/python:3.14-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 PYTHONPATH=/var/task/deps ENV AWS_LWA_READINESS_CHECK_PATH=/healthz ENV AWS_LWA_READINESS_CHECK_HEALTHY_STATUS=100-499 @@ -28,7 +28,7 @@ CMD exec python -m uvicorn --port=$PORT app:app Line 7 copies lambda web adapter binary into /opt/extensions. This is the change to run the FastMCP application on Lambda. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` ## Pre-requisites diff --git a/examples/fastmcp/my_mcp_server/Dockerfile b/examples/fastmcp/my_mcp_server/Dockerfile index be81c6b0..45063f31 100644 --- a/examples/fastmcp/my_mcp_server/Dockerfile +++ b/examples/fastmcp/my_mcp_server/Dockerfile @@ -4,7 +4,7 @@ COPY requirements.txt ./ RUN pip install --no-cache-dir --target=/var/task/deps -r requirements.txt FROM --platform=linux/amd64 public.ecr.aws/docker/library/python:3.14-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 PYTHONPATH=/var/task/deps ENV AWS_LWA_READINESS_CHECK_PATH=/healthz ENV AWS_LWA_READINESS_CHECK_HEALTHY_STATUS=100-499 diff --git a/examples/flask-zip/README.md b/examples/flask-zip/README.md index 0cae3408..109fc6c3 100644 --- a/examples/flask-zip/README.md +++ b/examples/flask-zip/README.md @@ -7,8 +7,8 @@ This example shows how to use Lambda Adapter to run an Flask application on mana We add Lambda Adapter layer to the function and configure wrapper script. 1. attach Lambda Adapter layer to your function. This layer contains the Lambda Adapter binary and a wrapper script. - 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26` - 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26` + 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27` + 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27` 2. configure Lambda environment variable `AWS_LAMBDA_EXEC_WRAPPER` to `/opt/bootstrap`. This is a wrapper script included in the layer. 3. set function handler to a startup command: `run.sh`. The wrapper script will execute this command to boot up your application. diff --git a/examples/flask-zip/template.yaml b/examples/flask-zip/template.yaml index 07d0c5ab..8f75722f 100644 --- a/examples/flask-zip/template.yaml +++ b/examples/flask-zip/template.yaml @@ -21,7 +21,7 @@ Resources: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap PORT: 8000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: ApiEvent: Type: HttpApi diff --git a/examples/flask/README.md b/examples/flask/README.md index e67aacb7..46bbb74c 100644 --- a/examples/flask/README.md +++ b/examples/flask/README.md @@ -10,7 +10,7 @@ The top level folder is a typical AWS SAM project. The `app` directory is a flas ```dockerfile FROM public.ecr.aws/docker/library/python:3.8.12-slim-buster -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /var/task COPY app.py requirements.txt ./ RUN python3.8 -m pip install -r requirements.txt @@ -20,7 +20,7 @@ CMD ["gunicorn", "-b=:8080", "-w=1", "app:app"] Line 2 copies lambda adapter binary into /opt/extensions. This is the only change to run the Flask application on Lambda. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` ## Pre-requisites diff --git a/examples/flask/app/Dockerfile b/examples/flask/app/Dockerfile index ebbed6bc..2969959e 100644 --- a/examples/flask/app/Dockerfile +++ b/examples/flask/app/Dockerfile @@ -1,5 +1,5 @@ FROM public.ecr.aws/docker/library/python:3.12.1-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /var/task COPY app.py requirements.txt ./ RUN python -m pip install -r requirements.txt diff --git a/examples/gin-zip/template.yaml b/examples/gin-zip/template.yaml index 575c2b66..dc7d41a2 100644 --- a/examples/gin-zip/template.yaml +++ b/examples/gin-zip/template.yaml @@ -22,7 +22,7 @@ Resources: PORT: 8000 GIN_MODE: release Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: APIEvent: Type: HttpApi diff --git a/examples/gin/app/Dockerfile b/examples/gin/app/Dockerfile index 1cac7055..2a9abe35 100644 --- a/examples/gin/app/Dockerfile +++ b/examples/gin/app/Dockerfile @@ -8,7 +8,7 @@ RUN go mod download RUN GOOS=linux CGO_ENABLED=0 go build -o bootstrap . FROM alpine:3.9 RUN apk add ca-certificates -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter COPY --from=build_base /tmp/gin/bootstrap /app/bootstrap ENV PORT=8000 GIN_MODE=release diff --git a/examples/go-http-zip/template.yml b/examples/go-http-zip/template.yml index 6dceceb9..36b0a1c6 100644 --- a/examples/go-http-zip/template.yml +++ b/examples/go-http-zip/template.yml @@ -17,7 +17,7 @@ Resources: Variables: PORT: 3000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: APIEvent: Type: HttpApi diff --git a/examples/javalin-zip/README.md b/examples/javalin-zip/README.md index 611b9ddc..fccef568 100644 --- a/examples/javalin-zip/README.md +++ b/examples/javalin-zip/README.md @@ -44,7 +44,7 @@ In the configuration we have to specify the AWS Lambda adapter as a layer and co REMOVE_BASE_PATH: /v1 AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27 ``` ### Remove the base path diff --git a/examples/javalin-zip/template.yaml b/examples/javalin-zip/template.yaml index dea82453..2871f224 100644 --- a/examples/javalin-zip/template.yaml +++ b/examples/javalin-zip/template.yaml @@ -38,7 +38,7 @@ Resources: AWS_LWA_READINESS_CHECK_PORT: 8081 AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27 # - !Sub arn:aws:lambda:${AWS::Region}:753240598076:layer:LambdaAdapterLayerX86:20 Events: Root: diff --git a/examples/nextjs-response-streaming/Dockerfile b/examples/nextjs-response-streaming/Dockerfile index 02e6158b..ddb8f4ce 100644 --- a/examples/nextjs-response-streaming/Dockerfile +++ b/examples/nextjs-response-streaming/Dockerfile @@ -5,7 +5,7 @@ COPY . . RUN npm ci && npm run build FROM public.ecr.aws/docker/library/node:20.9.0-slim as runner -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=3000 NODE_ENV=production diff --git a/examples/nextjs-zip/template.yaml b/examples/nextjs-zip/template.yaml index b434bd87..c6ae6e3f 100644 --- a/examples/nextjs-zip/template.yaml +++ b/examples/nextjs-zip/template.yaml @@ -26,7 +26,7 @@ Resources: RUST_LOG: info PORT: 8000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: RootEvent: Type: HttpApi diff --git a/examples/nextjs/app/Dockerfile b/examples/nextjs/app/Dockerfile index 137e80cf..f0dd0d28 100644 --- a/examples/nextjs/app/Dockerfile +++ b/examples/nextjs/app/Dockerfile @@ -4,7 +4,7 @@ COPY . . RUN npm ci && npm run build FROM public.ecr.aws/docker/library/node:20.9.0-slim as runner -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=3000 NODE_ENV=production HOSTNAME=0.0.0.0 ENV AWS_LWA_ENABLE_COMPRESSION=true WORKDIR /app diff --git a/examples/nginx-zip/template.yaml b/examples/nginx-zip/template.yaml index 9477c10f..f0a38b8d 100644 --- a/examples/nginx-zip/template.yaml +++ b/examples/nginx-zip/template.yaml @@ -24,7 +24,7 @@ Resources: RUST_LOG: debug PORT: 8080 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:Nginx123X86:12 Events: Root: diff --git a/examples/nginx/Dockerfile b/examples/nginx/Dockerfile index 6b058fb5..b491b053 100644 --- a/examples/nginx/Dockerfile +++ b/examples/nginx/Dockerfile @@ -1,6 +1,6 @@ FROM public.ecr.aws/awsguru/nginx:1.23.2023.3.11.1 -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter # config files ADD nginx/conf/nginx.conf /opt/nginx/conf/nginx.conf diff --git a/examples/nginx/README.md b/examples/nginx/README.md index 2fb608af..fddb02ac 100644 --- a/examples/nginx/README.md +++ b/examples/nginx/README.md @@ -14,7 +14,7 @@ a [Dockerfile](Dockerfile). ```dockerfile FROM public.ecr.aws/awsguru/nginx:1.23.2023.3.11.1 -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter # config files ADD nginx/conf/nginx.conf /opt/nginx/conf/nginx.conf @@ -28,7 +28,7 @@ EXPOSE 8080 Line 3 copies Lambda adapter binary into /opt/extensions. This is the main change to run the Nginx server on Lambda. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` ## Pre-requisites diff --git a/examples/php-zip/template.yaml b/examples/php-zip/template.yaml index efd4f080..aaecd670 100644 --- a/examples/php-zip/template.yaml +++ b/examples/php-zip/template.yaml @@ -33,7 +33,7 @@ Resources: RUST_LOG: debug PORT: 8080 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:Php82FpmNginxX86:13 Events: Root: diff --git a/examples/php/Dockerfile b/examples/php/Dockerfile index ba69df25..63d07b22 100644 --- a/examples/php/Dockerfile +++ b/examples/php/Dockerfile @@ -7,7 +7,7 @@ WORKDIR /var/task/app RUN composer install --prefer-dist --optimize-autoloader --no-dev --no-interaction FROM public.ecr.aws/awsguru/php:82.2023.3.11.1 -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter COPY --from=builder /var/task /var/task # config files diff --git a/examples/php/README.md b/examples/php/README.md index b2527bfb..4d14f813 100644 --- a/examples/php/README.md +++ b/examples/php/README.md @@ -21,7 +21,7 @@ WORKDIR /var/task/app RUN composer install --prefer-dist --optimize-autoloader --no-dev --no-interaction FROM public.ecr.aws/awsguru/php:82.2023.3.11.1 -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter COPY --from=builder /var/task /var/task # config files diff --git a/examples/remix-zip/README.md b/examples/remix-zip/README.md index 5121ae24..a6be97b1 100644 --- a/examples/remix-zip/README.md +++ b/examples/remix-zip/README.md @@ -13,8 +13,8 @@ npx create-remix@latest --template remix-run/remix/templates/express We add Lambda Adapter layer to the function and configure wrapper script. 1. attach Lambda Adapter layer to your function. This layer contains the Lambda Adapter binary and a wrapper script. - 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26` - 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26` + 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27` + 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27` 2. configure Lambda environment variable `AWS_LAMBDA_EXEC_WRAPPER` to `/opt/bootstrap`. This is a wrapper script included in the layer. 3. set function handler to a startup command: `run.sh`. The wrapper script will execute this command to boot up your application. diff --git a/examples/remix-zip/template.yaml b/examples/remix-zip/template.yaml index 049650e9..eb10fccc 100644 --- a/examples/remix-zip/template.yaml +++ b/examples/remix-zip/template.yaml @@ -26,7 +26,7 @@ Resources: RUST_LOG: info PORT: 3000 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: HttpEvents: Type: HttpApi diff --git a/examples/remix/Dockerfile b/examples/remix/Dockerfile index 647f308b..2d75d714 100644 --- a/examples/remix/Dockerfile +++ b/examples/remix/Dockerfile @@ -4,7 +4,7 @@ ADD . . RUN cd remix-app && npm install && npm run build && npm prune --omit=dev FROM public.ecr.aws/docker/library/node:20-bookworm-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR "/var/task" COPY --from=builder /var/task/remix-app/build /var/task/build COPY --from=builder /var/task/remix-app/node_modules /var/task/node_modules diff --git a/examples/remix/README.md b/examples/remix/README.md index 776b7984..0dbec5b8 100644 --- a/examples/remix/README.md +++ b/examples/remix/README.md @@ -21,7 +21,7 @@ ADD . . RUN cd remix-app && npm install && npm run build && npm prune --omit=dev FROM public.ecr.aws/docker/library/node:20-bookworm-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR "/var/task" COPY --from=builder /var/task/remix-app/build /var/task/build COPY --from=builder /var/task/remix-app/node_modules /var/task/node_modules diff --git a/examples/rust-actix-web-zip/template.yaml b/examples/rust-actix-web-zip/template.yaml index e4872ebb..c2f0cd1e 100644 --- a/examples/rust-actix-web-zip/template.yaml +++ b/examples/rust-actix-web-zip/template.yaml @@ -22,7 +22,7 @@ Resources: Architectures: - arm64 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27 Events: HttpEvents: Type: HttpApi # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api diff --git a/examples/rust-axum-zip/template.yaml b/examples/rust-axum-zip/template.yaml index c4ee7ad7..799289e2 100644 --- a/examples/rust-axum-zip/template.yaml +++ b/examples/rust-axum-zip/template.yaml @@ -20,7 +20,7 @@ Resources: Architectures: - arm64 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27 Events: Root: Type: HttpApi # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api diff --git a/examples/sinatra/README.md b/examples/sinatra/README.md index 607677eb..28e95a46 100644 --- a/examples/sinatra/README.md +++ b/examples/sinatra/README.md @@ -9,7 +9,7 @@ The top level folder is a typical AWS SAM project. The `app` directory is a Sina ```dockerfile FROM public.ecr.aws/docker/library/ruby:3.3 -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /var/task COPY Gemfile Gemfile.lock ./ RUN bundle install diff --git a/examples/sinatra/app/Dockerfile b/examples/sinatra/app/Dockerfile index bede1e05..3e5abd26 100644 --- a/examples/sinatra/app/Dockerfile +++ b/examples/sinatra/app/Dockerfile @@ -1,5 +1,5 @@ FROM public.ecr.aws/docker/library/ruby:3.3 -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter WORKDIR /var/task COPY ./src ./ RUN bundle install diff --git a/examples/sls/nestjs/Dockerfile b/examples/sls/nestjs/Dockerfile index 0735a23a..22a9b888 100644 --- a/examples/sls/nestjs/Dockerfile +++ b/examples/sls/nestjs/Dockerfile @@ -7,7 +7,7 @@ COPY . . RUN pnpm install && pnpm run build FROM public.ecr.aws/docker/library/node:18.19-slim as runner -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8080 NODE_ENV=production ENV AWS_LWA_ENABLE_COMPRESSION=true diff --git a/examples/springboot-response-streaming-zip/README.md b/examples/springboot-response-streaming-zip/README.md index 6a1853fb..04372d24 100644 --- a/examples/springboot-response-streaming-zip/README.md +++ b/examples/springboot-response-streaming-zip/README.md @@ -31,7 +31,7 @@ In the configuration we have to specify the AWS Lambda adapter as a layer and co AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap AWS_LWA_INVOKE_MODE: response_stream Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 ``` In this template, we enable SnapStart for this function. SnapStart drastically reduces cold start time for Java functions using Firecracker MicroVM snapshotting technology. Read more about SnapStart [here](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). diff --git a/examples/springboot-response-streaming-zip/template.yaml b/examples/springboot-response-streaming-zip/template.yaml index 85e4d6a1..c4b82946 100644 --- a/examples/springboot-response-streaming-zip/template.yaml +++ b/examples/springboot-response-streaming-zip/template.yaml @@ -28,7 +28,7 @@ Resources: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap AWS_LWA_INVOKE_MODE: response_stream Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 FunctionUrlConfig: AuthType: NONE InvokeMode: RESPONSE_STREAM diff --git a/examples/springboot-zip/README.md b/examples/springboot-zip/README.md index 840f9a70..067ea99d 100644 --- a/examples/springboot-zip/README.md +++ b/examples/springboot-zip/README.md @@ -31,7 +31,7 @@ In the configuration we have to specify the AWS Lambda adapter as a layer and co REMOVE_BASE_PATH: /v1 AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 ``` In this template, we enable SnapStart for this function. SnapStart drastically reduces cold start time for Java functions using Firecracker MicroVM snapshotting technology. Read more about SnapStart [here](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). diff --git a/examples/springboot-zip/template.yaml b/examples/springboot-zip/template.yaml index 30eb969d..7f7c321f 100644 --- a/examples/springboot-zip/template.yaml +++ b/examples/springboot-zip/template.yaml @@ -28,7 +28,7 @@ Resources: REMOVE_BASE_PATH: /v1 AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 Events: Root: Type: HttpApi diff --git a/examples/springboot/README.md b/examples/springboot/README.md index fbb01389..dbf2a4dc 100644 --- a/examples/springboot/README.md +++ b/examples/springboot/README.md @@ -16,7 +16,7 @@ COPY pom.xml ./ RUN mvn -q clean package FROM public.ecr.aws/docker/library/amazoncorretto:8u322-al2 -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 WORKDIR /opt COPY --from=build-image /task/target/petstore-0.0.1-SNAPSHOT.jar /opt @@ -26,7 +26,7 @@ CMD ["java", "-jar", "petstore-0.0.1-SNAPSHOT.jar", "--server.port=${PORT}"] Line 7 copies lambda adapter binary to /opt/extensions. This is the only change to run the Spring Boot application on Lambda. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` ## Remove the base path diff --git a/examples/springboot/app/Dockerfile b/examples/springboot/app/Dockerfile index 5969cb91..9ba5923a 100644 --- a/examples/springboot/app/Dockerfile +++ b/examples/springboot/app/Dockerfile @@ -5,7 +5,7 @@ COPY pom.xml ./ RUN mvn -q clean package FROM public.ecr.aws/docker/library/amazoncorretto:8u322-al2 -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 WORKDIR /opt COPY --from=build-image /task/target/petstore-0.0.1-SNAPSHOT.jar /opt diff --git a/examples/sqs-expressjs/README.md b/examples/sqs-expressjs/README.md index a3ee4c64..6269b4fc 100644 --- a/examples/sqs-expressjs/README.md +++ b/examples/sqs-expressjs/README.md @@ -10,7 +10,7 @@ The top level folder is a typical AWS SAM project. The `app` directory is an exp ```dockerfile FROM public.ecr.aws/docker/library/node:20-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 AWS_LWA_READINESS_CHECK_PROTOCOL=tcp WORKDIR "/var/task" ADD src/package.json /var/task/package.json @@ -23,7 +23,7 @@ CMD ["node", "index.js"] Line 2 copies lambda adapter binary into /opt/extensions. This is the only change to run the express.js application on Lambda. ```dockerfile -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ``` ## Pre-requisites diff --git a/examples/sqs-expressjs/app/Dockerfile b/examples/sqs-expressjs/app/Dockerfile index 9f414f20..43476131 100644 --- a/examples/sqs-expressjs/app/Dockerfile +++ b/examples/sqs-expressjs/app/Dockerfile @@ -1,5 +1,5 @@ FROM public.ecr.aws/docker/library/node:20-slim -COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0-rc1 /lambda-adapter /opt/extensions/lambda-adapter +COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:1.0.0 /lambda-adapter /opt/extensions/lambda-adapter ENV PORT=8000 AWS_LWA_READINESS_CHECK_PROTOCOL=tcp WORKDIR "/var/task" ADD src/package.json /var/task/package.json diff --git a/examples/sveltekit-ssr-zip/README.md b/examples/sveltekit-ssr-zip/README.md index 1c0c4cf1..ae52012b 100644 --- a/examples/sveltekit-ssr-zip/README.md +++ b/examples/sveltekit-ssr-zip/README.md @@ -7,8 +7,8 @@ This example shows how to use Lambda Web Adapter to run a [server side rendered Add the Lambda Web Adapter layer to the function and configure the wrapper script. 1. attach Lambda Adapter layer to your function. This layer contains the Lambda Adapter binary and a wrapper script. - 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26` - 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:26` + 1. x86_64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27` + 2. arm64: `arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerArm64:27` 2. configure Lambda environment variable `AWS_LAMBDA_EXEC_WRAPPER` to `/opt/bootstrap`. This is a wrapper script included in the layer. 3. set function handler to a startup command: `run.sh`. The wrapper script will execute this command to boot up your application. diff --git a/examples/sveltekit-ssr-zip/template.yaml b/examples/sveltekit-ssr-zip/template.yaml index 810bf8ba..b0ba00c9 100644 --- a/examples/sveltekit-ssr-zip/template.yaml +++ b/examples/sveltekit-ssr-zip/template.yaml @@ -25,7 +25,7 @@ Resources: AWS_LAMBDA_EXEC_WRAPPER: /opt/bootstrap PORT: 8080 Layers: - - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:26 + - !Sub arn:aws:lambda:${AWS::Region}:753240598075:layer:LambdaAdapterLayerX86:27 FunctionUrlConfig: AuthType: NONE Metadata: