カスタムユーザーアプリケーションでのLambda関数の使用

AWSラムダ関数を使用して、ユーザーアプリケーションによって生成されたイベントを使用して次の2つの方法で処理できます-

  • AWSコンソールの使用
  • AWSCLIの使用

AWSコンソールの使用

AWSコンソールから、イベントとAWSLambdaを操作します。この目的のために、AWSコンソールに移動してラムダ関数を作成します。

次に、AWSLambdaのコードを追加しましょう-

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);
};

上記のコードでは、イベントを使用して名前とアドレスを出力していることに注意してください。

イベントの詳細は、次のように作成されたテストイベントを使用して提供されます-

次に、イベントを保存してテストします。

対応するログ出力は次のとおりです-

AWSCLIの使用

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 Lambdaで他のAWSサービスをテストする場合は、AWSコンソールとAWSCLIのテストイベントを使用してテストできます。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);};

AWSCLIを使用して同じものを呼び出しましょう。イベントをファイルに保存し、次のコマンドを使用してペイロードに使用します-

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