Java로 첫 번째 AWS Lambda 작성
12296 단어 lamdbaserverlessawsjava
핸들러를 구현하기 위해 Maven, Eclipse 및 AWS SDK for Java를 사용할 것입니다. 다음은 버전입니다.
시작하려면 Eclipse에서 비어 있는 새 Maven 프로젝트를 만듭니다. 파일-> 새로 만들기-> Maven 프로젝트로 이동합니다. 새 프로젝트 대화 상자에서. "간단한 프로젝트 만들기"를 선택하고 다음을 누릅니다. 다음 화면에서. 프로젝트에 대한 적절한 정보를 추가하고 완료를 누르십시오. 예를 들어:
이제 프로젝트가 생성되었습니다. pom.xml을 열고 다음 코드를 추가합니다.
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.rajanpanchal</groupId>
<artifactId>lambda-java-demo</artifactId>
<version>1</version>
<name>Lambda-Java-Demo</name>
<description>HelloWorld Lambda handler in java</description>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<aws.java.sdk.version>2.14.11</aws.java.sdk.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom</artifactId>
<version>${aws.java.sdk.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
AWS SDK 버전 및 Java 버전과 같은 일부 속성을
<properties>
태그에 설정하고 있습니다. 원하는 버전으로 AWS SDK 종속성과 Lambda 코어 종속성을 추가하고 있습니다. JSON과 Java 객체 간 또는 그 반대로 변환하기 위해 Google JSON 종속성이 추가되었습니다.플러그인에서 우리는 코드를 컴파일하기 위한 maven 컴파일러 플러그인과
maven-shade-plugin
라는 또 다른 중요한 플러그인을 정의합니다. 이 플러그인은 fat jar a.k.a Uber jar를 생성하는 데 도움이 됩니다. 이 jar에는 람다 함수를 성공적으로 실행하는 데 필요한 모든 종속성이 포함됩니다.이제 핸들러를 생성해 보겠습니다.
package net.rajanpanchal.handlers;
import java.util.Map;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.LambdaLogger;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class HelloWorldHandler implements RequestHandler<Map<String,String>, String>{
Gson gson = new GsonBuilder().setPrettyPrinting().create();
@Override
public String handleRequest(Map<String,String> event, Context context)
{
LambdaLogger logger = context.getLogger();
String response = new String("200 OK");
// log execution details
logger.log("ENVIRONMENT VARIABLES: " + gson.toJson(System.getenv()));
logger.log("CONTEXT: " + gson.toJson(context));
// process event
logger.log("EVENT: " + gson.toJson(event));
logger.log("EVENT TYPE: " + event.getClass().toString());
return response;
}
}
다음은
RequestHandler
의 Map
를 수락하고 String
응답을 출력하는 String
를 구현하는 것입니다. 처리기는 많은 작업을 수행하지 않습니다. context
및 event
에서 일부 항목을 기록하고 응답으로 200 OK
문자열을 보냅니다.프로젝트를 마우스 오른쪽 버튼으로 클릭한 후 '다음 계정으로 실행'으로 이동하여 'Maven 빌드'를 클릭합니다. 구성 창이 열립니다. '목표'에
package
를 입력하고 '실행'을 누르십시오. 빌드가 성공하고 target
폴더에 fat jar가 생성됩니다.이제 AWS 콘솔로 이동하여 Java 8을 런타임으로 사용하여 새 Lambda 함수를 생성하고 함수 코드 섹션에서 이 jar 파일을 업로드합니다. 기본 설정에서 핸들러 텍스트 상자에 package.class::methodName을 지정해야 합니다. 이 Lambda를 테스트하려면 테스트 이벤트를 생성하고 테스트를 실행하십시오.
출력은 다음과 유사할 수 있습니다.
START RequestId: c40b4095-27f5-4153-ac37-fd2c103f4476 Version: $LATEST
ENVIRONMENT VARIABLES: {
"PATH": "/usr/local/bin:/usr/bin/:/bin:/opt/bin",
"_AWS_XRAY_DAEMON_ADDRESS": "169.254.79.2",
"LAMBDA_TASK_ROOT": "/var/task",
"AWS_LAMBDA_FUNCTION_MEMORY_SIZE": "128",
"TZ": ":UTC",
"AWS_SECRET_ACCESS_KEY": "<keyid>",
"AWS_EXECUTION_ENV": "AWS_Lambda_java8",
"AWS_DEFAULT_REGION": "us-east-1",
"AWS_LAMBDA_LOG_GROUP_NAME": "/aws/lambda/helloworldjava",
"_HANDLER": "net.rajanpanchal.handlers.HelloWorldHandler::handleRequest",
"LANG": "en_US.UTF-8",
"LAMBDA_RUNTIME_DIR": "/var/runtime",
"AWS_SESSION_TOKEN": "<session token>",
"LD_LIBRARY_PATH": "/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib",
"_X_AMZN_TRACE_ID": "Root\u003d1-5f545c5d-22c8a803badd636859a0f387;Parent\u003d23df427f78bc46e4;Sampled\u003d0",
"AWS_SECRET_KEY": "<secret key>",
"AWS_REGION": "us-east-1",
"AWS_LAMBDA_LOG_STREAM_NAME": "2020/09/06/[$LATEST]57c598b33b164acf8e8151660249e50e",
"AWS_XRAY_DAEMON_ADDRESS": "169.254.79.2:2000",
"_AWS_XRAY_DAEMON_PORT": "2000",
"AWS_XRAY_CONTEXT_MISSING": "LOG_ERROR",
"AWS_LAMBDA_FUNCTION_VERSION": "$LATEST",
"AWS_ACCESS_KEY": "<access key>",
"AWS_LAMBDA_FUNCTION_NAME": "helloworldjava"
}CONTEXT: {
"memoryLimit": 128,
"awsRequestId": "c40b4095-27f5-4153-ac37-fd2c103f4476",
"logGroupName": "/aws/lambda/helloworldjava",
"logStreamName": "2020/09/06/[$LATEST]57c598b33b164acf8e8151660249e50e",
"functionName": "helloworldjava",
"functionVersion": "$LATEST",
"invokedFunctionArn": "arn:aws:lambda:us-east-1:<AccountId>:function:helloworldjava",
"cognitoIdentity": {
"identityId": "",
"poolId": ""
},
"logger": {}
}EVENT: {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}EVENT TYPE: class java.util.LinkedHashMapEND RequestId: c40b4095-27f5-4153-ac37-fd2c103f4476
REPORT RequestId: c40b4095-27f5-4153-ac37-fd2c103f4476 Duration: 516.04 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 79 MB Init Duration: 393.54 ms
여기서 우리는 Java에서 첫 번째 Lambda 핸들러를 완성합니다. 다음 포스트에서는 AWS SDK를 사용하여 API를 구현하는 방법에 대해 알아보겠습니다.
Reference
이 문제에 관하여(Java로 첫 번째 AWS Lambda 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rajanpanchal/write-your-first-aws-lambda-in-java-1j2k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)