From 3c8226c5e6a9c9aafc8abec24480e58e18a60056 Mon Sep 17 00:00:00 2001 From: Mark Sailes Date: Fri, 3 Jun 2022 14:41:42 +0100 Subject: [PATCH 1/3] Refresh of the README.md --- README.md | 209 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 122 insertions(+), 87 deletions(-) diff --git a/README.md b/README.md index 04cecb27..2ec4e321 100644 --- a/README.md +++ b/README.md @@ -2,129 +2,164 @@ Interface definitions for Java code running on the AWS Lambda platform. For issues and questions, you can start with our [FAQ](https://aws.amazon.com/lambda/faqs/) - and the [AWS forums](https://forums.aws.amazon.com/forum.jspa?forumID=186) +and the AWS questions and answer site [re:Post](https://repost.aws/tags/TA5uNafDy2TpGNjidWLMSxDw/aws-lambda) -To get started writing AWS Lambda functions in Java, check out the [official documentation](http://docs.aws.amazon.com/lambda/latest/dg/java-gs.html). +To get started writing AWS Lambda functions in Java, check out the official [developer guide](https://docs.aws.amazon.com/lambda/latest/dg/lambda-java.html). -# Disclaimer of use +For information on how to optimize your functions the re:Invent talk [Optimize your Java application on AWS Lambda](https://www.youtube.com/watch?v=sVJOJUD0fhQ) is available on YouTube. -Each of the supplied packages should be used without modification. Removing -dependencies, adding conflicting dependencies, or selectively including classes -from the packages can result in unexpected behavior. +## Core Java AWS Lambda interfaces - aws-lambda-java-core -# Release Notes +This package defines the Lambda [Context](http://docs.aws.amazon.com/lambda/latest/dg/java-context-object.html) object +as well as [interfaces](http://docs.aws.amazon.com/lambda/latest/dg/java-handler-using-predefined-interfaces.html) that Lambda accepts. -Check out the per-module release notes: -- [aws-lambda-java-core](aws-lambda-java-core/RELEASE.CHANGELOG.md) -- [aws-lambda-java-events](aws-lambda-java-events/RELEASE.CHANGELOG.md) -- [aws-lambda-java-events-sdk-transformer](aws-lambda-java-events-sdk-transformer/RELEASE.CHANGELOG.md) -- [aws-lambda-java-log4j2](aws-lambda-java-log4j2/RELEASE.CHANGELOG.md) -- [aws-lambda-java-runtime-interface-client](aws-lambda-java-runtime-interface-client/RELEASE.CHANGELOG.md) -- [aws-lambda-java-serialization](aws-lambda-java-serialization/RELEASE.CHANGELOG.md) -- [aws-lambda-java-test](aws-lambda-java-tests/RELEASE.CHANGELOG.md) +- [Release Notes](aws-lambda-java-core/RELEASE.CHANGELOG.md) -# Where to get packages -___ +Example request handler + +```java +public class Handler implements RequestHandler, String>{ + @Override + public String handleRequest(Map event, Context context) { + + } +} +``` -[Maven](https://maven.apache.org) +Example request stream handler + +```java +public class HandlerStream implements RequestStreamHandler { + @Override + public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException { + + } +} +``` ```xml - com.amazonaws - aws-lambda-java-core - 1.2.1 - - - com.amazonaws - aws-lambda-java-events - 3.11.0 - - - com.amazonaws - aws-lambda-java-events-sdk-transformer - 3.1.0 - - - com.amazonaws - aws-lambda-java-log4j2 - 1.5.1 - - - com.amazonaws - aws-lambda-java-runtime-interface-client - 2.1.1 - - - com.amazonaws - aws-lambda-java-tests - 1.1.1 - test + com.amazonaws + aws-lambda-java-core + 1.2.1 ``` -[Gradle](https://gradle.org) +## aws-lambda-java-events -```groovy -'com.amazonaws:aws-lambda-java-core:1.2.1' -'com.amazonaws:aws-lambda-java-events:3.11.0' -'com.amazonaws:aws-lambda-java-events-sdk-transformer:3.1.0' -'com.amazonaws:aws-lambda-java-log4j2:1.5.1' -'com.amazonaws:aws-lambda-java-runtime-interface-client:2.1.1' -'com.amazonaws:aws-lambda-java-tests:1.1.1' -``` +This package defines [event sources](http://docs.aws.amazon.com/lambda/latest/dg/intro-invocation-modes.html) that AWS Lambda natively accepts. +See the [documentation](aws-lambda-java-events/README.md) for a list of currently supported event sources. +Using this library you can have Java objects which represent event sources. -[Leiningen](http://leiningen.org) +For example an SQS event: -```clojure -[com.amazonaws/aws-lambda-java-core "1.2.1"] -[com.amazonaws/aws-lambda-java-events "3.11.0"] -[com.amazonaws/aws-lambda-java-events-sdk-transformer "3.1.0"] -[com.amazonaws/aws-lambda-java-log4j2 "1.5.1"] -[com.amazonaws/aws-lambda-java-runtime-interface-client "2.1.1"] -[com.amazonaws/aws-lambda-java-tests "1.1.1"] +```java +import com.amazonaws.services.lambda.runtime.events.SQSEvent; + +public class SqsHandler implements RequestHandler { + + @Override + public String handleRequest(SQSEvent event, Context context) { + + } +} ``` -[sbt](http://www.scala-sbt.org) +- [Release Notes](aws-lambda-java-events/RELEASE.CHANGELOG.md) -```scala -"com.amazonaws" % "aws-lambda-java-core" % "1.2.1" -"com.amazonaws" % "aws-lambda-java-events" % "3.11.0" -"com.amazonaws" % "aws-lambda-java-events-sdk-transformer" % "3.1.0" -"com.amazonaws" % "aws-lambda-java-log4j2" % "1.5.1" -"com.amazonaws" % "aws-lambda-java-runtime-interface-client" % "2.1.1" -"com.amazonaws" % "aws-lambda-java-tests" % "1.1.1" +```xml + + com.amazonaws + aws-lambda-java-events + 3.11.0 + ``` -# Using aws-lambda-java-core +## Java AWS Lambda JUnit Support - aws-lambda-java-tests -This package defines the Lambda [Context](http://docs.aws.amazon.com/lambda/latest/dg/java-context-object.html) object - as well as [interfaces](http://docs.aws.amazon.com/lambda/latest/dg/java-handler-using-predefined-interfaces.html) that Lambda accepts. +This package provides utils to ease Lambda Java testing. Used with `aws-lambda-java-serialization` and `aws-lambda-java-events` to inject events in your JUnit tests. + +- [Release Notes](aws-lambda-java-tests/RELEASE.CHANGELOG.md) -# Using aws-lambda-java-events +```java +@ParameterizedTest +@Event(value = "sqs/sqs_event.json", type = SQSEvent.class) +public void testInjectSQSEvent(SQSEvent event) { + ... +} +``` -This package defines [event sources](http://docs.aws.amazon.com/lambda/latest/dg/intro-invocation-modes.html) that AWS Lambda natively accepts. -See the [documentation](aws-lambda-java-events/README.md) for more information. +```xml + + com.amazonaws + aws-lambda-java-tests + 1.1.1 + test + +``` -# Using aws-lambda-java-events-sdk-transformer +## aws-lambda-java-events-sdk-transformer This package provides helper classes/methods to use alongside `aws-lambda-java-events` in order to transform - Lambda input event model objects into SDK-compatible output model objects. +Lambda input event model objects into SDK-compatible output model objects. See the [documentation](aws-lambda-java-events-sdk-transformer/README.md) for more information. -# Using aws-lambda-java-log4j2 +- [Release Notes](aws-lambda-java-events-sdk-transformer/RELEASE.CHANGELOG.md) -This package defines the Lambda adapter to use with log4j version 2. +```xml + + com.amazonaws + aws-lambda-java-events-sdk-transformer + 3.1.0 + +``` + +## Java AWS Lambda Log4J2 support - aws-lambda-java-log4j2 + +This package defines the Lambda adapter to use with Log4J version 2. See the [README](aws-lambda-java-log4j2/README.md) or the [official documentation](http://docs.aws.amazon.com/lambda/latest/dg/java-logging.html#java-wt-logging-using-log4j) for information on how to use the adapter. -# Using aws-lambda-java-runtime-interface-client +- [Release Notes](aws-lambda-java-log4j2/RELEASE.CHANGELOG.md) + +```xml + + com.amazonaws + aws-lambda-java-log4j2 + 1.5.1 + +``` + +## Java implementation of the Runtime Interface Client API - aws-lambda-java-runtime-interface-client This package defines the Lambda Java Runtime Interface Client package, a Lambda Runtime component that starts the runtime and interacts with the Runtime API - i.e., it calls the API for invocation events, starts the function code, calls the API to return the response. The purpose of this package is to allow developers to deploy their applications in Lambda under the form of Container Images. See the [README](aws-lambda-java-runtime-interface-client/README.md) for information on how to use the library. -# Using aws-lambda-java-serialization +- [Release Notes](aws-lambda-java-runtime-interface-client/RELEASE.CHANGELOG.md) -This package defines the Lambda serialization logic using in the aws-lambda-java-runtime-client library. It has no current standalone usage. +```xml + + com.amazonaws + aws-lambda-java-runtime-interface-client + 2.1.1 + +``` -# Using aws-lambda-java-tests +## Java AWS Lambda provided serialization support - aws-lambda-java-serialization -This package provides utils to ease Lambda Java testing. Used with `aws-lambda-java-serialization` and `aws-lambda-java-events` to inject events in your JUnit tests. +This package defines the Lambda serialization logic using in the `aws-lambda-java-runtime-client` library. It has no current standalone usage. + +- [Release Notes](aws-lambda-java-serialization/RELEASE.CHANGELOG.md) + +```xml + + com.amazonaws + aws-lambda-java-serialization + 1.0.0 + +``` + +## Disclaimer of use + +Each of the supplied packages should be used without modification. Removing +dependencies, adding conflicting dependencies, or selectively including classes +from the packages can result in unexpected behavior. \ No newline at end of file From f11791152b37706063ac7579485d87fc31bbb743 Mon Sep 17 00:00:00 2001 From: Mark Sailes Date: Fri, 3 Jun 2022 14:47:47 +0100 Subject: [PATCH 2/3] Refresh of the README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2ec4e321..68f7a873 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # AWS Lambda Java Support Libraries -Interface definitions for Java code running on the AWS Lambda platform. +Key libraries for running Java on the AWS Lambda platform. For issues and questions, you can start with our [FAQ](https://aws.amazon.com/lambda/faqs/) and the AWS questions and answer site [re:Post](https://repost.aws/tags/TA5uNafDy2TpGNjidWLMSxDw/aws-lambda) To get started writing AWS Lambda functions in Java, check out the official [developer guide](https://docs.aws.amazon.com/lambda/latest/dg/lambda-java.html). -For information on how to optimize your functions the re:Invent talk [Optimize your Java application on AWS Lambda](https://www.youtube.com/watch?v=sVJOJUD0fhQ) is available on YouTube. +For information on how to optimize your functions watch the re:Invent talk [Optimize your Java application on AWS Lambda](https://www.youtube.com/watch?v=sVJOJUD0fhQ). ## Core Java AWS Lambda interfaces - aws-lambda-java-core @@ -18,9 +18,9 @@ as well as [interfaces](http://docs.aws.amazon.com/lambda/latest/dg/java-handler Example request handler ```java -public class Handler implements RequestHandler, String>{ +public class Handler implements RequestHandler, String>{ @Override - public String handleRequest(Map event, Context context) { + public String handleRequest(Map event, Context context) { } } @@ -45,7 +45,7 @@ public class HandlerStream implements RequestStreamHandler { ``` -## aws-lambda-java-events +## Java object representations of AWS Lambda event sources - aws-lambda-java-events This package defines [event sources](http://docs.aws.amazon.com/lambda/latest/dg/intro-invocation-modes.html) that AWS Lambda natively accepts. See the [documentation](aws-lambda-java-events/README.md) for a list of currently supported event sources. @@ -77,7 +77,7 @@ public class SqsHandler implements RequestHandler { ## Java AWS Lambda JUnit Support - aws-lambda-java-tests -This package provides utils to ease Lambda Java testing. Used with `aws-lambda-java-serialization` and `aws-lambda-java-events` to inject events in your JUnit tests. +This package provides utils to ease Lambda Java testing. It uses the same AWS Lambda serialisation logic and `aws-lambda-java-events` to inject events in your JUnit tests. - [Release Notes](aws-lambda-java-tests/RELEASE.CHANGELOG.md) From 862c096420daf92e844512d8917dc11b3730fdc9 Mon Sep 17 00:00:00 2001 From: Mark Sailes Date: Fri, 3 Jun 2022 14:49:24 +0100 Subject: [PATCH 3/3] Refresh of the README.md --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 68f7a873..d4ae39eb 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ Key libraries for running Java on the AWS Lambda platform. For issues and questions, you can start with our [FAQ](https://aws.amazon.com/lambda/faqs/) and the AWS questions and answer site [re:Post](https://repost.aws/tags/TA5uNafDy2TpGNjidWLMSxDw/aws-lambda) -To get started writing AWS Lambda functions in Java, check out the official [developer guide](https://docs.aws.amazon.com/lambda/latest/dg/lambda-java.html). +To get started writing Lambda functions in Java, check out the official [developer guide](https://docs.aws.amazon.com/lambda/latest/dg/lambda-java.html). For information on how to optimize your functions watch the re:Invent talk [Optimize your Java application on AWS Lambda](https://www.youtube.com/watch?v=sVJOJUD0fhQ). -## Core Java AWS Lambda interfaces - aws-lambda-java-core +## Core Java Lambda interfaces - aws-lambda-java-core This package defines the Lambda [Context](http://docs.aws.amazon.com/lambda/latest/dg/java-context-object.html) object as well as [interfaces](http://docs.aws.amazon.com/lambda/latest/dg/java-handler-using-predefined-interfaces.html) that Lambda accepts. @@ -45,9 +45,9 @@ public class HandlerStream implements RequestStreamHandler { ``` -## Java object representations of AWS Lambda event sources - aws-lambda-java-events +## Java objects of Lambda event sources - aws-lambda-java-events -This package defines [event sources](http://docs.aws.amazon.com/lambda/latest/dg/intro-invocation-modes.html) that AWS Lambda natively accepts. +This package defines [event sources](http://docs.aws.amazon.com/lambda/latest/dg/intro-invocation-modes.html) that Lambda natively accepts. See the [documentation](aws-lambda-java-events/README.md) for a list of currently supported event sources. Using this library you can have Java objects which represent event sources. @@ -75,9 +75,9 @@ public class SqsHandler implements RequestHandler { ``` -## Java AWS Lambda JUnit Support - aws-lambda-java-tests +## Java Lambda JUnit Support - aws-lambda-java-tests -This package provides utils to ease Lambda Java testing. It uses the same AWS Lambda serialisation logic and `aws-lambda-java-events` to inject events in your JUnit tests. +This package provides utils to ease Lambda Java testing. It uses the same Lambda serialisation logic and `aws-lambda-java-events` to inject events in your JUnit tests. - [Release Notes](aws-lambda-java-tests/RELEASE.CHANGELOG.md) @@ -114,7 +114,7 @@ See the [documentation](aws-lambda-java-events-sdk-transformer/README.md) for mo ``` -## Java AWS Lambda Log4J2 support - aws-lambda-java-log4j2 +## Java Lambda Log4J2 support - aws-lambda-java-log4j2 This package defines the Lambda adapter to use with Log4J version 2. See the [README](aws-lambda-java-log4j2/README.md) or the [official documentation](http://docs.aws.amazon.com/lambda/latest/dg/java-logging.html#java-wt-logging-using-log4j) for information on how to use the adapter. @@ -144,7 +144,7 @@ The purpose of this package is to allow developers to deploy their applications ``` -## Java AWS Lambda provided serialization support - aws-lambda-java-serialization +## Java Lambda provided serialization support - aws-lambda-java-serialization This package defines the Lambda serialization logic using in the `aws-lambda-java-runtime-client` library. It has no current standalone usage.