기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
ActiveMQ 자습서
다음 자습서에서는 ActiveMQ 브로커를 만들고 연결하는 방법을 보여줍니다. ActiveMQ Java 예제 코드를 사용하려면 Java Standard Edition Development Kit
주제
3단계: (선택 사항) AWS Lambda 함수에 연결
AWS Lambda 는 Amazon MQ 브로커의 메시지에 연결하고 사용할 수 있습니다. 브로커를 Lambda에 연결할 때는 대기열에서 메시지를 읽고 함수를 동기식으로 호출하는 이벤트 소스 매핑을 생성합니다. 생성하는 이벤트 소스 매핑은 메시지를 브로커에서 배치로 읽고 JSON 객체 형식의 Lambda 페이로드로 변환합니다.
브로커를 Lambda 함수에 연결하려면
-
Lambda 함수 실행 역할에 다음 IAM 역할 권한을 추가합니다.
참고
필요한 IAM 권한이 없으면 함수가 Amazon MQ 리소스의 레코드를 성공적으로 읽을 수 없습니다.
-
(선택 사항) 퍼블릭 액세스 가능성이 없는 브로커를 생성한 경우 다음 중 하나를 수행하여 Lambda가 브로커에 연결하도록 허용해야 합니다.
-
퍼블릭 서브넷당 하나의 NAT 게이트웨이를 구성합니다. 자세한 내용은 AWS Lambda 개발자 안내서에서 VPC 연결 함수의 인터넷 및 서비스 액세스를 참조하세요.
-
VPC 엔드포인트를 사용하여 Amazon Virtual Private Cloud(Amazon VPC)와 Lambda 간의 연결을 생성합니다. Amazon VPC는 AWS Security Token Service (AWS STS) 및 Secrets Manager 엔드포인트에도 연결해야 합니다. 자세한 내용은 AWS Lambda 개발자 안내서에서 Lambda에 대한 인터페이스 VPC 엔드포인트 구성을 참조하세요.
-
-
AWS Management Console을 사용하여 Lambda 함수에 대해 브로커를 이벤트 소스로 구성합니다.
create-event-source-mapping
AWS Command Line Interface 명령을 사용할 수도 있습니다. -
브로커에서 소비한 메시지를 Lambda 함수가 처리하는 코드를 작성합니다. 이벤트 소스 매핑에서 검색되는 Lambda 페이로드는 브로커의 엔진 유형에 따라 다릅니다. 다음은 ActiveMQ용 Amazon MQ 대기열의 Lambda 페이로드 예제입니다.
참고
이 예제에서
testQueue
는 대기열의 이름입니다.{ "eventSource": "aws:amq", "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", "messages": { [ { "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.goskope.com-37557-1234520418293-4:1:1:1:1", "messageType": "jms/text-message", "data": "QUJDOkFBQUE=", "connectionId": "myJMSCoID", "redelivered": false, "destination": { "physicalname": "testQueue" }, "timestamp": 1598827811958, "brokerInTime": 1598827811958, "brokerOutTime": 1598827811959 }, { "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.goskope.com-37557-1234520418293-4:1:1:1:1", "messageType":"jms/bytes-message", "data": "3DTOOW7crj51prgVLQaGQ82S48k=", "connectionId": "myJMSCoID1", "persistent": false, "destination": { "physicalname": "testQueue" }, "timestamp": 1598827811958, "brokerInTime": 1598827811958, "brokerOutTime": 1598827811959 } ] } }
Amazon MQ를 Lambda에 연결하는 방법, Amazon MQ 이벤트 소스에 대해 Lambda가 지원하는 옵션 및 이벤트 소스 매핑 오류에 대한 자세한 내용은 AWS Lambda 개발자 안내서에서 Amazon MQ에서 Lambda 사용을 참조하세요.