{"id":22334450,"url":"https://github.com/adambien/aws-lambda-cdk-plain","last_synced_at":"2025-07-29T21:31:14.190Z","repository":{"id":65884357,"uuid":"411965716","full_name":"AdamBien/aws-lambda-cdk-plain","owner":"AdamBien","description":"Simplest Possible AWS Lambda Function with Cloud Development Kit (CDK) Boilerplate","archived":false,"fork":false,"pushed_at":"2024-05-08T12:45:02.000Z","size":46,"stargazers_count":20,"open_issues_count":0,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-05-08T13:42:52.482Z","etag":null,"topics":["aws","aws-lambda","corretto","devops","iac","infrastructure-as-code","java","lambda","lambda-functions","serverless"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AdamBien.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-30T07:28:13.000Z","updated_at":"2024-05-08T12:45:06.000Z","dependencies_parsed_at":"2024-04-14T07:36:11.617Z","dependency_job_id":null,"html_url":"https://github.com/AdamBien/aws-lambda-cdk-plain","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamBien%2Faws-lambda-cdk-plain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamBien%2Faws-lambda-cdk-plain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamBien%2Faws-lambda-cdk-plain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamBien%2Faws-lambda-cdk-plain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdamBien","download_url":"https://codeload.github.com/AdamBien/aws-lambda-cdk-plain/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228046870,"owners_count":17861109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-lambda","corretto","devops","iac","infrastructure-as-code","java","lambda","lambda-functions","serverless"],"created_at":"2024-12-04T05:07:55.200Z","updated_at":"2024-12-04T05:07:55.680Z","avatar_url":"https://github.com/AdamBien.png","language":"Java","readme":"# Simplest Possible AWS Lambda Function with Cloud Development Kit (CDK) Boilerplate\n\nA lean starting point for building, testing and deploying AWS Lambdas with Java.\n\n# TL;DR\n\nA simple Java AWS Lambda without any AWS dependencies:\n\n```java\n\npublic class Greetings{\n\n    public String onEvent(Map\u003cString, String\u003e input) {\n        System.out.println(\"received: \" + input);\n        return input\n        .entrySet()\n        .stream()\n        .map(e -\u003e e.getKey() + \"-\u003e\" + e.getValue())\n        .collect(Collectors.joining(\",\"));\n    }\n    \n}\n\n```\n\n...deployed with AWS Cloud Development Kit:\n\n\n```java\n\nimport software.amazon.awscdk.services.lambda.Code;\nimport software.amazon.awscdk.services.lambda.Function;\nimport software.amazon.awscdk.services.lambda.Runtime;\n\n//...\n\nFunction createUserListenerFunction(String functionName,String functionHandler, int memory, int timeout) {\n    return Function.Builder.create(this, id(functionName))\n            .runtime(Runtime.JAVA_11) //https://aws.amazon.com/corretto\n            .code(Code.fromAsset(\"../target/function.jar\"))\n            .handler(functionHandler)\n            .memorySize(memory)\n            .functionName(functionName)\n            .timeout(Duration.seconds(timeout))\n            .build();\n}\n\n```\n\n...provisioned with maven and cdk:\n\n```\nmvn clean package\ncd cdk \u0026\u0026 mvn clean package \u0026\u0026 cdk deploy\n```\n\n...and (blackbox) tested with [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide):\n\n```java\n\n@BeforeEach\npublic void initClient() {\n    var credentials = DefaultCredentialsProvider\n    .builder()\n    .profileName(\"airhacks.live\")\n    .build();\n\n    this.client = LambdaClient.builder()\n                   .credentialsProvider(credentials)\n                   .build();\n}\n\n@Test\npublic void invokeLambdaAsynchronously() {\n        String json = \"{\\\"user \\\":\\\"duke\\\"}\";\n        SdkBytes payload = SdkBytes.fromUtf8String(json);\n\n        InvokeRequest request = InvokeRequest.builder()\n                .functionName(\"airhacks_lambda_greetings_boundary_Greetings\")\n                .payload(payload)\n                .invocationType(InvocationType.REQUEST_RESPONSE)\n                .build();\n\n        var response = this.client.invoke(request);\n        var error = response.functionError();\n        assertNull(error);\n        var value = response.payload().asUtf8String();\n        System.out.println(\"Function executed. Response: \" + value);\n}    \n\n```\n\n## In Action\n\n[![Plain Java POJOs as AWS Lambdas](https://i.ytimg.com/vi/rHq514-1aHM/mqdefault.jpg)](https://www.youtube.com/embed/rHq514-1aHM?rel=0)\n\n## Java \"vs.\" JavaScript\n\nCold and \"warm\" starts of JavaScript and Java Lambdas:\n\n[![Java vs. JavaScript comparison](https://i.ytimg.com/vi/28Da0l0MFms/mqdefault.jpg)](https://www.youtube.com/embed/28Da0l0MFms?rel=0)\n\n## AWS Lambda on Java: How Good / Bad Is The Cold Start?\n\n[![Coldstart with Java](https://i.ytimg.com/vi/EXSZ5TFgUKU/mqdefault.jpg)](https://www.youtube.com/embed/EXSZ5TFgUKU?rel=0)\n\n## Lambda Configuration\n\n[![AWS Lambda Configuration with Java CDK](https://i.ytimg.com/vi/Z3Ir-AQEsKk/mqdefault.jpg)](https://www.youtube.com/embed/Z3Ir-AQEsKk?rel=0)\n\n## References\n\nThe deployment is borrowed from: [\"Slightly Streamlined AWS Cloud Development Kit (CDK) Boilerplate\"](https://github.com/AdamBien/aws-cdk-plain)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadambien%2Faws-lambda-cdk-plain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadambien%2Faws-lambda-cdk-plain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadambien%2Faws-lambda-cdk-plain/lists"}