사용자 지정 사용자 애플리케이션과 함께 Lambda 함수 사용

AWS lambda 함수를 사용하여 다음 두 가지 방법으로 사용자 애플리케이션에서 생성 된 이벤트를 사용하여 처리 할 수 ​​있습니다.

  • AWS 콘솔 사용
  • AWS CLI 사용

AWS 콘솔 사용

AWS 콘솔에서 이벤트 및 AWS Lambda를 사용합니다. 이를 위해 AWS 콘솔로 이동하여 lambda 함수를 생성합니다.

다음으로 AWS Lambda에 대한 코드를 추가하겠습니다.

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Hello => "+ event.name);
   console.log("Address =>"+ event.addr);
   callback(null, 'Hello '+event.name +" and address is "+ event.addr);
};

위 코드에서는 이벤트를 사용하여 이름과 주소를 인쇄하고 있습니다.

이벤트에 대한 세부 정보는 다음과 같이 생성 된 테스트 이벤트를 사용하여 제공됩니다.

이제 이벤트를 저장하고 테스트하십시오.

해당 로그 출력은 다음과 같습니다.

AWS CLI 사용

다음과 같이 AWS CLI를 사용하여 위의 함수를 호출 할 수 있습니다.

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\input.txt C:\clioutput\outputfile.txt

이벤트 세부 정보는 페이로드에 제공되고 출력은 다음 위치에 저장됩니다. C:\clioutput\outputfile.txt. 다음과 같이-

input.txt

{"name":"Roy Singh", "addr":"Mumbai"}

AWS CLI를 사용하여 Lambda를 호출하면 다음과 같은 출력을 볼 수 있습니다.

마찬가지로 다른 AWS 서비스에 대해 AWS Lambda를 테스트하려는 경우 AWS 콘솔 및 AWS CLI에서 테스트 이벤트를 사용하여 수행 할 수 있습니다. SNS 서비스 샘플 이벤트는 아래와 같습니다.

{
   "Records": [{
      "EventVersion": "1.0",
      "EventSubscriptionArn": "arnid",
      "EventSource": "aws:sns",
      "Sns": {
         "SignatureVersion": "1",
         "Timestamp": "1970-01-01T00:00:00.000Z",
         "Signature": "EXAMPLE",
         "SigningCertUrl": "EXAMPLE",
         "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
         "Message": "Hello from SNS!",
         "MessageAttributes": {
            "Test": {
               "Type": "String",
               "Value": "TestString"
            },
            "TestBinary": {
               "Type": "Binary",
               "Value": "TestBinary"
            }
         },
         "Type": "Notification",
         "UnsubscribeUrl": "EXAMPLE",
         "TopicArn": "topicarn",
         "Subject": "TestInvoke"
      }
   }]
}

위에 표시된 샘플 이벤트를 추가하고 다음과 같이 테스트 해 보겠습니다.

AWS Lambda에서 코드는 아래 주어진 예와 같이 SNS 메시지를 인쇄합니다.

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log(event.Records[0].Sns.Message);
   callback(null, event.Records[0].Sns.Message);};

AWS CLI를 사용하여 동일하게 호출하겠습니다. 이벤트를 파일에 저장하고 표시된 명령을 사용하여 페이로드에 사용하겠습니다.

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\sns.txt C:\clioutput\snsoutput.txt