이 블로그 에서 코드 샘플을 통해 몇 가지 서버리스 개념을 설명했습니다:

이 특정 블로그 항목에서는 AWS Lambda를 사용하여 트위터 사용자의 트윗을 다음 위치에 저장하는 방법을 보여줍니다. 카우치베이스. 다음은 높은 수준의 구성 요소입니다:

lambda-twitter-couchbase

핵심 개념은 다음과 같습니다:

이 블로그의 전체 샘플 코드는 다음 링크에서 확인할 수 있습니다. github.com/arun-gupta/twitter-n1ql.

서버리스 애플리케이션 모델

서버리스 애플리케이션 모델또는 SAM은 서버리스 리소스를 표현하기 위한 간소화된 구문을 정의합니다. SAM은 다음을 확장합니다. AWS 클라우드포메이션 에
API 게이트웨이, AWS Lambda 및 Amazon DynamoDB에 대한 지원을 추가합니다. 자세한 내용은 AWS 서버리스 애플리케이션 모델과 카우치베이스를 사용한 마이크로서비스.
애플리케이션의 경우 SAM 템플릿은 다음에서 사용할 수 있습니다. github.com/arun-gupta/twitter-n1ql/blob/master/template-example.yml 를 클릭하고 아래와 같이 표시합니다:

여기서 무엇을 볼 수 있을까요?

  • 기능이 패키지화되어 S3 버킷으로 제공됩니다.
  • 핸들러 클래스는 org.sample.twittter.TwitterRequestHandler 에 있으며 github.com/arun-gupta/twitter-n1ql/blob/master/twitter-feed/src/main/java/org/sample/twitter/TwitterRequestHandler.java.
    그런 것 같습니다:

    기본적으로 이 클래스는 다음과 같은 트위터 핸들을 읽습니다. 도널드 트럼프. 이에 대한 자세한 내용은 다음 블로그에서 더 자세히 다룰 예정입니다.
  • COUCHBASE_HOST 그리고 카우치베이스_버킷_비밀번호 는 카우치베이스 데이터베이스가 실행되는 EC2 호스트와 버킷의 비밀번호를 제공하는 환경 변수입니다.
  • 기능은 다양한 이벤트에 의해 트리거될 수 있습니다. 저희의 경우 3시간마다 트리거됩니다. 여기에 사용된 표현식에 대한 자세한 내용은 Rate 또는 Cron을 사용한 스케줄 표현식.

트위터4J를 사용하여 트윗 가져오기

트윗은 다음을 사용하여 읽습니다. Twitter4J API를 사용합니다. 비공식 트위터 API로, 다음과 같은 Java 추상화를 제공합니다. 트위터 REST API. 다음은 간단한 예입니다:

트위터4J 문서 그리고 자바독스 는 매우 포괄적입니다. 트위터 API는 최근 200개의 트윗만 읽을 수 있습니다. 람다 함수는 3시간마다 호출됩니다.
트윗 빈도 리얼도널드트럼프 는 적어도 아직 3시간마다 200은 아닙니다. 위험한 수준에 도달하면 람다 기능을 더 자주 트리거하도록 속도를 조정할 수 있습니다.
각 트윗의 JSON 표현은 다음을 사용하여 Couchbase 서버에 저장됩니다. 카우치베이스 자바 SDK. AWS Lambda는 Node, Python 및 C#를 지원합니다. 그래서
를 사용할 수 있습니다. 카우치베이스 노드 SDK, 카우치베이스 파이썬 SDK 또는
카우치베이스 .NET SDK 를 사용하여 이러한 함수를 작성할 수도 있습니다. 트위터4J API를 사용하면 특정 트윗의 아이디부터 트윗을 가져올 수 있습니다. 이를 통해 다음을 수행할 수 있습니다.
중복 트윗이 가져오지 않도록 합니다. 이를 위해서는 모든 트윗을 특정 순서로 정렬한 다음 가장 최근 트윗의 아이디를 선택해야 합니다. 이 문제는 간단한 N1QL 쿼리:

구문은 매우 SQL과 유사합니다. 이에 대한 자세한 내용은 다음 블로그에서 확인할 수 있습니다.

카우치베이스에 트윗 저장하기

마지막 항목은 검색된 트윗을 카우치베이스에 저장하는 것입니다. 의 값 COUCHABSE_HOST 환경 변수를 사용하여 카우치베이스 인스턴스에 연결합니다. 환경 변수의 값은 카우치베이스_버킷_비밀번호 환경 변수
는 모든 JSON 문서가 저장된 보안 버킷에 연결하는 것입니다. 버킷을 비밀번호로 보호하고 소스 코드에 직접 지정하지 않는 것이 매우 중요합니다. 이에 대한 자세한 내용은 다음 블로그에서 확인할 수 있습니다. JSON 문서
는 Couchbase Java API를 사용하여 Couchbase에서 업서트(삽입 또는 업데이트)됩니다:

이 람다 함수는 현재 며칠 동안 실행되고 있으며 다음에서 258개의 트윗을 캡처했습니다. 리얼도널드트럼프.

그의 트윗에 대한 흥미로운 분석이 곧 공개될 예정입니다!

문의하세요:

이 블로그의 전체 샘플 코드는 다음 링크에서 확인할 수 있습니다. github.com/arun-gupta/twitter-n1ql.

작성자

게시자 Arun Gupta, 개발자 지원 부문 부사장, Couchbase

아룬 굽타는 Couchbase의 개발자 지원 담당 부사장입니다. 그는 Sun, Oracle, Red Hat에서 10년 이상 개발자 커뮤니티를 구축하고 이끌었습니다. 그는 콘텐츠, 마케팅 캠페인 및 프로그램의 전략, 계획 및 실행을 개발 및 실행하는 교차 기능 팀을 이끄는 데 있어 깊은 전문성을 보유하고 있습니다. 그 전에는 Sun에서 엔지니어링 팀을 이끌었으며 Java EE 팀의 창립 멤버입니다. Gupta는 기술에 관한 블로그 게시물을 2,000개 이상 작성했습니다. 40여 개국에서 수많은 주제에 대해 광범위한 강연 경험을 가지고 있으며, 3년 연속 JavaOne Rock Star로 선정되었습니다. 또한 미국에서 Devoxx4Kids 지부를 설립하여 어린이를 대상으로 한 기술 교육을 지속적으로 장려하고 있습니다. 기술에 관한 여러 권의 책을 저술했으며, 열렬한 마라토너이자 지구를 횡단하는 사람, Java 챔피언, JUG 리더, NetBeans 드림팀 멤버, Docker 캡틴이기도 한 그는 @arungupta에서 쉽게 만나볼 수 있습니다.

댓글 남기기