Skip to content

Commit d3d23ad

Browse files
committed
steps to create the layer zip yourself
1 parent 55b28ae commit d3d23ad

File tree

3 files changed

+23
-9
lines changed

3 files changed

+23
-9
lines changed

README.md

+17-3
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,15 @@ Function exampleWithLayer = new Function(this, "ExampleWithLayer", FunctionProps
3434
.build());
3535
```
3636

37-
## Java 17
37+
## Layer Details
38+
39+
### Java 17
3840

3941
A custom JRE is created to reduce final file size. Lambda has a 250MB unzipped file size limit.
4042

4143
[Dockerfile](Dockerfile) describes how the JRE is built.
4244

43-
## JVM Settings
45+
### JVM Settings
4446

4547
The following JVM settings are added by default.
4648

@@ -52,7 +54,7 @@ The following JVM settings are added by default.
5254

5355
Further suggestions welcomed
5456

55-
## Java Class Path
57+
### Java Class Path
5658

5759
```
5860
aws-lambda-java-runtime-interface-client-1.1.0.jar
@@ -62,3 +64,15 @@ $LAMBDA_TASK_ROOT
6264
$LAMBDA_TASK_ROOT/*
6365
$LAMBDA_TASK_ROOT/lib/*
6466
```
67+
68+
## Build the layer zip yourself
69+
70+
### Requirements
71+
72+
- Docker
73+
74+
### Steps
75+
76+
- Run `build-jre.sh` to build the minimal Java 17 runtime
77+
- Run `make-layer.sh` to package the runtime, dependencies and bootstrap as a zip
78+

build-jre.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
docker build --progress=plain -t graalvm-al2-slim .
2-
docker run -v $(pwd)/layer:/tmp -it graalvm-al2-slim sh -c "cp /opt/jre-17-slim.zip /tmp"
1+
docker build --progress=plain -t jre17-al2-slim .
2+
docker run -v $(pwd)/layer:/tmp -it jre17-al2-slim sh -c "cp /opt/jre-17-slim.zip /tmp"

make-layer.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
# -4 IPv4 only
44
# -L follow redirect if the server responds with a redirect
55

6-
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-runtime-interface-client/1.1.0/aws-lambda-java-runtime-interface-client-1.1.0.jar -o aws-lambda-java-runtime-interface-client-1.1.0.jar
7-
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-core/1.2.1/aws-lambda-java-core-1.2.1.jar -o aws-lambda-java-core-1.2.1.jar
8-
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-serialization/1.0.0/aws-lambda-java-serialization-1.0.0.jar -o aws-lambda-java-serialization-1.0.0.jar
6+
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-runtime-interface-client/1.1.0/aws-lambda-java-runtime-interface-client-1.1.0.jar -o layer/aws-lambda-java-runtime-interface-client-1.1.0.jar
7+
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-core/1.2.1/aws-lambda-java-core-1.2.1.jar -o layer/aws-lambda-java-core-1.2.1.jar
8+
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-serialization/1.0.0/aws-lambda-java-serialization-1.0.0.jar -o layer/aws-lambda-java-serialization-1.0.0.jar
99

10-
chmod 755 bootstrap && zip -r java17layer.zip jre17-slim bootstrap aws-lambda-java-runtime-interface-client-1.1.0.jar aws-lambda-java-core-1.2.1.jar aws-lambda-java-serialization-1.0.0.jar
10+
chmod 755 bootstrap && zip -r java17layer.zip jre17-slim bootstrap layer/aws-lambda-java-runtime-interface-client-1.1.0.jar layer/aws-lambda-java-core-1.2.1.jar layer/aws-lambda-java-serialization-1.0.0.jar

0 commit comments

Comments
 (0)