aws-lambdaaws-lambda 시작하기


비고

AWS Lambda는 클라우드에서 기능을 실행하기위한 서버없는 설정입니다. 기존 Amazon Web Services 기술을 활용하여 자체 격리 된 환경에서 필요한 경우에만 무한 확장 및 실행이 가능합니다. Lambda를 사용하면 코드를 업로드하고 다양한 트리거를 기반으로 실행되도록 구성한 다음 완료되면 자동으로 프로세스를 폐기 할 수 있습니다. 사용 당 지불 모델 (pay-per-use model)로 작동하며 비용 효과가 우수하고 확장이 쉽습니다.


AWS Lambda는 Node.js (JavaScript), Python, Java (Java 8 호환) 및 C # (.NET Core)로 작성된 코드를 지원합니다. 코드에는 기존 라이브러리도 포함될 수 있습니다.

트리거에는 다음이 포함될 수 있습니다.

HTTP 끝점

  • 모바일 앱
  • 기타 AWS 서비스 (Amazon API 게이트웨이와 함께 REST 구현 포함)

Lambda는 다음과 같은 실시간 서버리스 데이터 처리를 위해 설계되었습니다.

  • 업로드 파일 처리
    • 트랜스 코딩
    • 색인 생성
    • 확인
    • 크기 조정 및 필터링
  • 스트리밍 데이터 분석
  • 텔레 메 트리
  • 방법 기반 모바일 및 웹 백엔드로 실행
  • 다른 AWS 제품 확장 및 연결

설치 또는 설정

  1. AWS Console에 로그인하고 서비스 탭에서 람다를 클릭하십시오.

  2. 함수 아래에서 동일한 레이블이 붙은 버튼을 사용하여 람다 함수만들 수 있습니다. 여기에 이미지 설명을 입력하십시오.

  3. 청사진을 선택할 수있는 화면이 표시됩니다. 이것들은 람다 (Lambda)를 신속하게 시작하기위한 기존 람다 함수의 시작점 일뿐입니다. 여기에 이미지 설명을 입력하십시오.

  4. 다음 화면에서이 람다 기능을 "설정"하는 데 사용할 트리거를 구성 할 수 있습니다. 트리거를 선택하지 않고 (나중에 태스크에 따라 수동 설정을 통해), API 게이트웨이 (서버리스 REST 클라이언트를 생성하기 위해), Alexa Skills 또는 생성 할 기능을 수행 할 수있는 많은 다른 옵션 중에서 선택할 수 있습니다. 여기에 이미지 설명을 입력하십시오.

  5. 이름 , 설명 , 런타임 선택, 인라인 함수 편집, .zip 파일 업로드 또는 Amazon S3에서 파일 업로드를 선택하고 역할을 선택하여 다음 화면에서 구성을 마칩니다 (권한 기반 AWS 서비스 간의 상호 작용), 메모리 및 한계 설정, 실제 사용을위한 앱 준비. 여기에 이미지 설명을 입력하십시오. 여기에 이미지 설명을 입력하십시오.

  6. 마지막으로, 당신은 당신의 기능을 검토하고 그것을 만들 것입니다. Lambda는 Pay-Per-Use 모델을 사용하기 때문에 새로 작성된 기능을 사용하기 시작할 때까지 충전기가 필요하지 않습니다. 여기에 이미지 설명을 입력하십시오.

Java AWS-Lambda S3 트리거 됨

AWS-Lambda 함수는 특정 버킷 이벤트에 첨부 될 수 있습니다. 파일 / 폴더가 생성되거나 제거 될 때마다 이벤트가 람다 함수 실행을 트리거 할 수 있습니다.

업로드 된 파일의 이름을 출력하는 간단한 람다 함수

이것은 업로드 된 파일의 이름을 인쇄하는 하나의 클래스 람다 프로젝트입니다. maven을 위해서는 다음과 같은 의존성을 추가해야합니다.

    <dependencies>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-core</artifactId>
        <version>1.1.0</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-events</artifactId>
        <version>1.3.0</version>
        <type>jar</type>
    </dependency>
</dependencies>
 

이제 HelloWorld 클래스로 이동해 보겠습니다.

package com;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.S3Event;
import com.amazonaws.services.s3.event.S3EventNotification;

public class HelloWorld implements RequestHandler< S3Event, String> {
    @Override
    public String handleRequest(S3Event event, Context ctx) {
     S3EventNotification.S3EventNotificationRecord record=event.getRecords().get(0);
     System.out.println("Bucket Name is "+record.getS3().getBucket().getName());
     System.out.println("File Path is "+record.getS3().getObject().getKey());
     return null;
    }
}
 

다음 단계는 mvn을 사용하여 프로젝트를 빌드하는 것입니다.

프로젝트를 빌드 한 후 AWS-Lambda에 업로드해야합니다. 람다로 가서 "람다 함수 만들기"를 선택하십시오. Java가 일반적으로 없으므로 청사진을 선택하는 부분을 건너 뜁니다.

또한 다른 위치에서 구성하기 때문에 "트리거 구성"을 건너 뜁니다. 다음 페이지에서 첫 번째 람다 함수의 이름을 입력 한 다음 작은 설명을 입력하고 Java를 런타임으로 선택하십시오.

"코드 입력 유형"의 경우 ".ZIP 파일에서 업로드"를 선택한 다음 다음 위치에서 .zip 파일을 선택하여 업로드하십시오.

이 페이지의 까다로운 부분은 핸들러 필드입니다. 핸들러 필드에서 RequestHandler를 구현하는 클래스의 위치를 ​​지정해야합니다. 이 클래스는 람다의 진입 점이며 이것이 정확하게 지정되지 않으면 람다 함수가 작동하지 않습니다. 우리의 케이스 핸들러는 "com.HelloWorld"

람다에 S3 트리거 부착 :

여기에 S3 파일 업로드에 트리거를 연결합니다.

  • S3로 이동하여 양동이를 선택한 다음 '속성'을 선택합니다.
  • '속성'섹션에서 '이벤트'로 이동하십시오.
  • 일정 세부 정보를 추가하십시오. "이벤트"필드에서 람다 트리거 방법을 선택하십시오. "ObjectCreated (All)"을 선택합니다. 람다 함수와 버킷은 같은 amazon 영역에 있어야합니다.
  • "Send to"의 경우 Lambda Function을 선택하고 목록에서 람다 함수를 선택하십시오.

람다 출력 모니터링

이제 람다 트리거가있는 버킷에 파일을 업로드합니다. 람다 출력과 로그를 보려면 "CloudWatch"로 가서 "Logs"를 선택한 다음 람다 함수를 선택하십시오. "로그 스트림"아래에 많은 항목이 표시 될 수 있으며 최신 항목을 선택하여 열 수 있습니다. 거기에서 람다 실행의 결과를 볼 수 있어야합니다.