Aws-lambda-using-lambda-function-with-custom-user-applications

提供:Dev Guides
移動先:案内検索

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

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

  • AWSコンソールを使用する
  • AWS CLIを使用する

AWSコンソールを使用する

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

ラムダカスタム

次に、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);};

Snsメッセージ

AWS CLIを使用して同じものを呼び出しましょう。 イベントをファイルに保存し、示されているコマンドを使用してペイロードに使用します-

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

ペイロードコマンド