Skip to content
This repository has been archived by the owner on Jan 5, 2022. It is now read-only.

Commit

Permalink
Enhanced Lambda function macro.
Browse files Browse the repository at this point in the history
  • Loading branch information
rafalwrzeszcz committed Oct 10, 2019
1 parent ec128fc commit d67e61b
Show file tree
Hide file tree
Showing 31 changed files with 1,664 additions and 14 deletions.
2 changes: 1 addition & 1 deletion lambda-cform/lambda-cform-account/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
<dependency>
<groupId>pl.wrzasq.commons</groupId>
<artifactId>commons-aws</artifactId>
<version>1.0.21</version>
<version>1.0.24</version>
</dependency>
</dependencies>
</project>
2 changes: 1 addition & 1 deletion lambda-cform/lambda-cform-logretention/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
<dependency>
<groupId>pl.wrzasq.commons</groupId>
<artifactId>commons-aws</artifactId>
<version>1.0.21</version>
<version>1.0.24</version>
</dependency>
</dependencies>
</project>
2 changes: 1 addition & 1 deletion lambda-cform/lambda-cform-organization-unit/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
<dependency>
<groupId>pl.wrzasq.commons</groupId>
<artifactId>commons-aws</artifactId>
<version>1.0.21</version>
<version>1.0.24</version>
</dependency>
</dependencies>
</project>
2 changes: 1 addition & 1 deletion lambda-cform/lambda-cform-organization/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
<dependency>
<groupId>pl.wrzasq.commons</groupId>
<artifactId>commons-aws</artifactId>
<version>1.0.21</version>
<version>1.0.24</version>
</dependency>
</dependencies>
</project>
2 changes: 1 addition & 1 deletion lambda-cform/lambda-cform-passwordpolicy/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
<dependency>
<groupId>pl.wrzasq.commons</groupId>
<artifactId>commons-aws</artifactId>
<version>1.0.21</version>
<version>1.0.24</version>
</dependency>
</dependencies>
</project>
2 changes: 1 addition & 1 deletion lambda-cform/lambda-cform-stackset-instance/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
<dependency>
<groupId>pl.wrzasq.commons</groupId>
<artifactId>commons-aws</artifactId>
<version>1.0.21</version>
<version>1.0.24</version>
</dependency>
</dependencies>
</project>
2 changes: 1 addition & 1 deletion lambda-cform/lambda-cform-stackset/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
<dependency>
<groupId>pl.wrzasq.commons</groupId>
<artifactId>commons-aws</artifactId>
<version>1.0.21</version>
<version>1.0.24</version>
</dependency>
</dependencies>
</project>
6 changes: 3 additions & 3 deletions lambda-edgedeploy/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -99,13 +99,13 @@
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.9</version>
<version>2.10.0</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9.3</version>
<version>2.10.0</version>
</dependency>

<dependency>
Expand Down Expand Up @@ -135,7 +135,7 @@
<dependency>
<groupId>pl.wrzasq.commons</groupId>
<artifactId>commons-aws</artifactId>
<version>1.0.21</version>
<version>1.0.24</version>
</dependency>
</dependencies>
</project>
4 changes: 2 additions & 2 deletions lambda-json/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9.3</version>
<version>2.10.0</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.9.9</version>
<version>2.10.0</version>
</dependency>
</dependencies>
</project>
110 changes: 110 additions & 0 deletions lambda-macro/lambda-macro-lambda-function/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
# This file is part of the pl.wrzasq.lambda.
#
# @license http://mit-license.org/ The MIT license
# @copyright 2019 © by Rafał Wrzeszcz - Wrzasq.pl.
-->
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd
">
<modelVersion>4.0.0</modelVersion>

<!-- core project settings -->
<artifactId>lambda-macro-lambda-function</artifactId>
<packaging>jar</packaging>
<parent>
<groupId>pl.wrzasq.lambda</groupId>
<artifactId>lambda-macro</artifactId>
<version>1.0.36-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>

<!-- project meta info -->
<name>WrzasqPl CloudFormation Lambda function macro</name>
<url>https://rafalwrzeszcz-wrzasqpl.github.io/pl.wrzasq.lambda/lambda-macro/lambda-macro-lambda-function/</url>
<description>Macro for generating enhanced Lambda function setup.</description>
<inceptionYear>2019</inceptionYear>

<!-- plugins configuration -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<usedDependencies>
<usedDependency>com.amazonaws:aws-xray-recorder-sdk-aws-sdk</usedDependency>
<usedDependency>com.amazonaws:aws-xray-recorder-sdk-aws-sdk-instrumentor</usedDependency>
<usedDependency>io.symphonia:lambda-logging</usedDependency>
</usedDependencies>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
</plugin>
</plugins>
</build>

<!-- project dependencies -->
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>lambda-json</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.2.0</version>
</dependency>

<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-xray-recorder-sdk-aws-sdk</artifactId>
<version>2.2.1</version>
</dependency>

<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-xray-recorder-sdk-aws-sdk-instrumentor</artifactId>
<version>2.2.1</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.10.0</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.0</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.0</version>
</dependency>

<dependency>
<groupId>io.symphonia</groupId>
<artifactId>lambda-logging</artifactId>
<version>1.0.3</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.26</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
^/\*$
^ \* This file is part of the pl\.wrzasq\.lambda\.$
^ \*$
^ \* @license http://mit-license\.org/ The MIT license$
^ \* @copyright \d{4}[0-9, -]* © by Rafał Wrzeszcz - Wrzasq\.pl\.$
^ \*/$

^package pl\.wrzasq\.lambda\.macro\.lambda\.function(\..+)?;$
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
* This file is part of the pl.wrzasq.lambda.
*
* @license http://mit-license.org/ The MIT license
* @copyright 2019 © by Rafał Wrzeszcz - Wrzasq.pl.
*/

package pl.wrzasq.lambda.macro.lambda.function;

import java.util.Map;
import java.util.function.Function;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import pl.wrzasq.lambda.macro.lambda.function.model.CloudFormationMacroRequest;
import pl.wrzasq.lambda.macro.lambda.function.model.CloudFormationMacroResponse;
import pl.wrzasq.lambda.macro.lambda.function.template.ProcessedTemplate;

/**
* CloudFormation macro handler.
*
* <p>Recommended memory: 256MB.</p>
*/
public class Handler implements RequestHandler<CloudFormationMacroRequest, CloudFormationMacroResponse> {
/**
* CloudFormation template provider.
*/
private Function<Map<String, Object>, ProcessedTemplate> templateFactory;

/**
* Default constructor.
*/
public Handler() {
this.templateFactory = ProcessedTemplate::new;
}

/**
* {@inheritDoc}
*/
@Override
public CloudFormationMacroResponse handleRequest(CloudFormationMacroRequest event, Context context) {
return new CloudFormationMacroResponse(
event.getRequestId(),
CloudFormationMacroResponse.STATUS_SUCCESS,
this.templateFactory.apply(event.getFragment()).getTemplate()
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* This file is part of the pl.wrzasq.lambda.
*
* @license http://mit-license.org/ The MIT license
* @copyright 2019 © by Rafał Wrzeszcz - Wrzasq.pl.
*/

package pl.wrzasq.lambda.macro.lambda.function.model;

import java.util.Map;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
* CloudFormation event request structure.
*/
@AllArgsConstructor
@Data
public class CloudFormationMacroRequest {
/**
* Request ID.
*/
private String requestId;

/**
* Template fragment.
*/
private Map<String, Object> fragment;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* This file is part of the pl.wrzasq.lambda.
*
* @license http://mit-license.org/ The MIT license
* @copyright 2019 © by Rafał Wrzeszcz - Wrzasq.pl.
*/

package pl.wrzasq.lambda.macro.lambda.function.model;

import java.util.Map;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
* CloudFormation event response structure.
*/
@AllArgsConstructor
@Data
public class CloudFormationMacroResponse {
/**
* OK status.
*/
public static final String STATUS_SUCCESS = "SUCCESS";

/**
* Request ID.
*/
private String requestId;

/**
* Operation status.
*/
private String status;

/**
* Template fragment.
*/
private Map<String, Object> fragment;
}
Loading

0 comments on commit d67e61b

Please sign in to comment.