서버리스 FaaS 및 AWS 람다 시작하기 는 간단한 Java 함수를 사용하여 JSON 문서를 다음과 같이 저장하는 방법을 보여줍니다. 카우치베이스 AWS Lambda를 사용합니다. 이 블로그는 이를 바탕으로 어떻게 하면 AWS IoT 버튼 를 람다 함수의 트리거로 사용할 수 있습니다. 이 블로그의 마지막 부분에서 배우게 될 것입니다:
- AWS IoT Button 구성 방법
- IoT 버튼을 람다 기능의 트리거로 사용
- IoT 테스트 버튼
전체적인 흐름은 다음과 같습니다:
AWS Iot 버튼을 클릭하면 HelloCouchbaseLambda 람다 함수가 호출됩니다. 이 함수는 카우치베이스 자바 SDK 를 사용하여 Couchbase에서 JSON 문서를 생성합니다.
이 블로그는 다음을 따라잡고 있습니다. 카우치베이스 및 라즈베리파이 IoT 장치로 iBeacon 데이터 수집하기 닉과 카우치케이스 의 여름 프로젝트를 소개합니다. 이 시리즈의 마지막 블로그가 게시될 예정입니다. 여기서는 여러 개의 AWS IoT 버튼을 재미있게 사용하는 방법을 보여드릴 것입니다.
시작해보자!
IoT 버튼 구성
IoT 버튼을 구성하는 가장 빠른 방법은 iOS 또는 Android용 모바일 앱을 사용하는 것입니다.
자세한 내용 모바일 앱을 사용하여 IoT Button 구성하기. 다음은 모바일 앱을 사용하여 버튼을 구성한 몇 가지 스냅샷입니다.
앱을 불러온 다음 +를 클릭하여 새 버튼 구성을 시작합니다:
버튼의 일련번호를 입력합니다:
버튼을 등록합니다:
Wi-Fi 네트워크로 버튼을 구성합니다:
모든 인증서 등을 업로드합니다:
이렇게 하면 버튼이 구성되고 사용할 준비가 완료됩니다. 이 블로그에서는 템플릿 람다 함수가 버튼 클릭에 연결되는 부분을 생략했습니다. 모바일 앱을 사용할 수 없는 경우 버튼은 다음과 같습니다. 수동으로 구성.
IoT 버튼을 람다 기능의 트리거로 사용
그리고 aws 람다 생성-이벤트-소스 매핑
CLI를 사용하면 Lambda 함수에 대한 이벤트 소스를 생성할 수 있습니다. AWS CLI 버전 기준 1.11.21
를 사용하면 Amazon Kinesis 스트림 또는 Amazon DynamoDB 스트림만 사용할 수 있습니다. 하지만 이 블로그에서는 IoT 버튼을 트리거로 사용하겠습니다. 그리고 이것은 다음을 사용하여 구성해야 합니다. AWS 람다 콘솔. IoT 버튼은 일부 지역에서만 지원됩니다. 예를 들어 us-west-1
지역이지만 us-west-2
지역에서 작동합니다. 지원되지 않는 지역 목록은 다음 목록에서 회색으로 표시되어 있습니다:
람다 함수는 여러 이벤트에 의해 트리거될 수 있습니다. 람다 함수는 이러한 이벤트 중 하나라도 발생하면 호출됩니다. 기본적으로 람다 함수와 연결된 트리거는 없습니다. 우리의 HelloCouchbaseLambda
함수에서 확인할 수 있습니다. us-west-2.console.aws.amazon.com/lambda/home?region=us-west-2#/functions/HelloCouchbaseLambda?tab=triggers.
를 클릭합니다. 트리거 추가
를 클릭하여 새 트리거를 추가합니다:
빈 사각형을 선택하여 새 트리거를 생성하고 AWS IoT
:
이전에 등록한 버튼의 경우 다음에서 일련 번호를 가져옵니다. us-west-2.console.aws.amazon.com/iotv2/home?region=us-west-2#/thinghub:
AWS IoT 트리거에서 버튼의 일련 번호를 지정합니다:
제출을 클릭하여 트리거를 생성합니다:
이렇게 하면 트리거가 추가되었음을 확인할 수 있습니다.
IoT 버튼 테스트
버튼을 테스트하기 전에 Couchbase 인스턴스에 로그인하여 버킷에 있는 JSON 문서의 수를 확인해 보겠습니다:
이는 다음에서 확인할 수 있습니다. http://:8091/index.html#sec=buckets
. 예상대로 버킷에 문서가 없습니다. 버튼을 한 번 누르고 페이지를 새로 고칩니다. 이제 버킷에 문서 하나가 저장된 것을 볼 수 있습니다. 이는 Couchbase 웹 콘솔에서 확인됩니다:
를 클릭합니다. 문서
를 클릭하여 전체 문서 목록을 확인하세요:
문서 ID를 클릭하면 문서에 대한 자세한 내용을 볼 수 있습니다:
이 JSON 문서에는 타임스탬프만 저장됩니다. 이제 다음을 업데이트해 보겠습니다. HelloCouchbaseLambda
코드를 추가하여 문서에 요청 ID도 포함할 수 있습니다. 이는 Java 클래스에 다음 코드 줄을 추가하면 됩니다:
1 |
버튼문서.setRequestId(컨텍스트.getAwsRequestId()); |
다음 명령을 사용하여 새 배포 패키지를 빌드하고 업로드할 수 있습니다:
1 2 3 4 5 6 |
mvn clean 패키지; aws 람다 업데이트-함수-코드 --함수-이름 HelloCouchbaseLambda --zip-파일 fileb:///사용자/아룽업타/작업 공간/서버리스/aws/헬로카우치베이스/헬로카우치베이스/target/헬로카우치베이스-1.0-SNAPSHOT.jar --지역 우리-west-2 --게시 |
이제 버튼을 클릭하면 문서 수가 업데이트됩니다. 하지만 업데이트된 문서에는 그림과 같이 추가 속성이 채워집니다:
AWS IoT 버튼을 어떻게 Lambda 및 Couchbase와 함께 사용할 예정이신가요? 다음 주소로 알려주세요. 카우치베이스 포럼.
안녕하세요... 질문이 하나 있는데 알고 싶습니다... AWS 로그인없이 IoT를 등록 할 수 있습니까? 액세스 권한없이 IoT를 등록하고 커머에게주고 싶습니다. 그래서 그들이 가지고 있다면 그냥 사용할 수 있습니다. 람다 기능에 트리거를 추가하는 대신... 어떤 제안이 있습니까?