Sunday, November 11, 2018

Serverless Computing With AWS Lambda- Part 3

අද article එකෙන් මම කතා කරන්න හදන්නේ Lambda function එකක් හදන්නෙ කොහොමද කියලා...

අද හදන application එකෙන් user inputs ලෙස ID (a String) අරගෙන Widget object එකක් response එකක් විදියට return කරනවා..

පහතින් දැක්වෙන්නේ Widget සදහා වූ source code එකයි.
Widget.java
package com.javaworld.awslambda.widget.model;
public class Widget {
    private String id;
    private String name;
    public Widget() {
    }
    public Widget(String id, String name) {
        this.id = id;
        this.name = name;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
WidgetRequest සදහා වූ source code එක පහතින් දැක්වේ.

WidgetRequest.java
package com.javaworld.awslambda.widget.model;
public class WidgetRequest {
    private String id;
    public WidgetRequest() {
    }
    public WidgetRequest(String id) {
        this.id = id;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
}
ඊලගට අපි lambda request handler එක හදමු. GetWidgetHandler class සදහා වූ source code එක පහතින් දැක්වේ.

GetWidgetHandler.java
package com.javaworld.awslambda.widget.handlers;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.javaworld.geekcap.awslambda.widget.model.Widget;
import com.javaworld.geekcap.awslambda.widget.model.WidgetRequest;
public class GetWidgetHandler implements RequestHandler<WidgetRequest, Widget> {
    @Override
    public Widget handleRequest(WidgetRequest widgetRequest, Context context) {
        return new Widget(widgetRequest.getId(), "My Widget " + widgetRequest.getId());
    }
}
GetWidgetHandler class එකෙන් RequestHandler interface එක implement කරලා තියෙනෙවා. එම interface එකෙන් WidgetRequest එක accept කරනවා වගේම return කරන්නේ Widget එකක්.
පහතින් දැක්වෙන්නේ Maven POM file එකේ අන්තර්ගතයයි.. ඉන් JAR file එක හදනවා. එම JAR file එකේ අපේ Lambda function එක අන්තර්ගත වෙනවා.
<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>
    <groupId>com.javaworld.geekcap</groupId>
    <artifactId>aws-lambda-java</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>aws-lambda-java</name>
    <url>http://maven.apache.org</url>
    <properties>
<java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-lambda-java-core</artifactId>
            <version>1.1.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
<groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <createDependencyReducedPom>false</createDependencyReducedPom>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
මෙම POM file එකේ aws-lambda-java-core dependency එක අන්තර්ගත වෙනවා.  මේක build කරන්න පහත command එක execute කරන්න ඕන වෙනවා.
mvn clean install
මෙම command එක execute කල විට aws-lambda-java-1.0-SNAPSHOT.jar කියල file එකක් ඔයාලගේ target directory එකේ හැදෙනවා. අපි මේ හැදුන file එක තමා AWS Lambda වලට upload කරන්නේ.

හොදයි එහෙනම් මේ හදපු lambda function එක  AWS console එකේ confirm කරන්නේ කියලා අපි ඊලග article එකේදි බලමු.


---ඉෂාරා---


0 comments:

Post a Comment