AWSコンソールを使用した作成とデプロイ

Lambda関数を作成し、AWSコンソールで同じものをテストできます。この章では、これについて詳しく説明します。この目的のために、ここに示されている手順に従い、与えられているそれぞれのスクリーンショットを観察する必要があります-

ステップ1

AWSコンソールにログインします https://aws.amazon.com/console/。これで、AWSサービスが表示されている画面にリダイレクトされます。

ステップ2

今、をクリックします Lambda上で強調したサービス。これにより、以下に示すように関数を作成するようにリダイレクトされます-

ステップ3

次に、をクリックします Create function関数の詳細を入力します。次に、以下のような画面が表示されます-

ステップ4

選択した言語を選択して、コードを記述できます。選択したオプションがインライン編集コードの場合、コードはエディターで記述する必要があります。利用可能な他のオプションは次のとおりです-

ステップ5

完了したら、以下に示すように、右上隅にボタンが表示されている変更を保存する必要があります-

ステップ6

次に、をクリックします Testボタン。これにより、以下に示すように、Lambda関数の実行のすべての詳細が得られます-

ステップ7

のコード index.js 次のとおりです-

exports.handler = (event, context, callback) => {
   // TODO implement
   callback(null, 'Lambda test');
};

これは Callback functionその結果、エラーまたは成功する可能性があります。成功すると、Lambda testメッセージ; エラーの場合、nullを渡します。

ステップ8

ザ・ Role Lambda関数の詳細は設定の一部であり、以下のように表示されます-

ステップ9

これで、必要に応じてロールを更新し、Lambda関数を保存できます。次に、ラムダ関数のメモリとタイムアウトの詳細が次のように表示されます-

ステップ10

次に、Lambda関数にトリガーを追加して、イベントが発生したときに実行されるようにする必要があります。トリガーの詳細は、以下に示すようにAWSLambda関数画面の開始時に表示されます-

これから、Lambda関数をトリガーするトリガーを選択できます。トリガーを選択するときは、トリガーの構成の詳細を追加する必要があります。

たとえば、S3のトリガーの場合、追加される構成の詳細は次のとおりです。

ステップ11

次に、トリガーをオンにするバケットを選択します。イベントタイプには次の詳細があります-

ステップ12

トリガーについては、プレフィックスタイプのファイルまたはファイルパターンについても言及できます。Lambdaがトリガーである必要があります。詳細は以下の通りです−

ステップ13

次に、トリガーに必要な詳細を入力して、をクリックします Add ボタン。トリガーを追加するためにLambda関数を保存します。関数を保存すると詳細がデプロイされ、以降、ファイルがS3バケットに追加されるたびに、Lambdaがトリガーされます。

AWSLambdaに追加されたS3トリガーを示す次のスクリーンショットを確認してください-

ステップ14

それでは、S3サンプルイベントを使用してLambda関数をテストしてみましょう。同じためのコードはここに示されています-

Amazon S3Putサンプルイベント

{
   "Records": [{
      "eventVersion": "2.0",
      "eventTime": "1970-01-01T00:00:00.000Z",
      "requestParameters": {
         "ExampleIPAddress": "127.0.0.1"
      },
      "s3": {
         "configurationId": "testConfigRule",
         "object": {
            "eTag": "0123456789abcdef0123456789abcdef",
            "sequencer": "0A1B2C3D4E5F678901",
            "key": "HappyFace.jpg",
            "size": 1024
         },
         "bucket": { 
            "arn": bucketarn,
            "name": "Examplebucket",
            "ownerIdentity": {
               "principalId": "Example"
            }
         },
         "s3SchemaVersion": "1.0"
      },
      "responseElements": { 
         "x-amz-id-2": "Example123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
         "x-amz-request-id": "Example123456789"
      },
      "awsRegion": "us-east-1",
      "eventName": "ObjectCreated:Put",
      "userIdentity": {
         "principalId": "Example"
      },
      "eventSource": "aws:s3"
   }]
}

S3 putイベントからアップロードされたファイルの詳細を取得するには、次のコマンドを使用する必要があります-

event.Records[0].s3.object.key     //will display the name of the file

バケット名を取得するには、次のコマンドを使用する必要があります-

event.Records[0].s3.bucket.name    //will give the name of the bucket.

EventNameを取得するには、次のコマンドを使用する必要があります-

event.Records[0].eventName        // will display the event name

ステップ15

それでは、AWS Lambdaコードを更新して、以下に示すようにS3の詳細を出力しましょう-

exports.lambdahandler = (event, context, callback) => {
   callback(null, "Bucket name: "+event.Records[0].s3.bucket.name+"  
   File name:"+event.Records[0].s3.object.key );
};

ステップ16

変更を保存します。クリックTest S3サンプルイベントを入力します-

ステップ17

今クリック Test そして、あなたは示されているように出力を見ることができます-

ステップ18

S3 AWSサービスを使用してS3でトリガーをテストするには、S3バケットにファイルをアップロードします。 test bucket trigger。Lambdaで使用されるロールを更新して、権限のS3およびSESポリシー(メールの送信)を取得します。これにより、AWS Lambdaコードが更新され、トリガーが機能していることを確認するためにメールが送信されます-

更新されたAWSLambdaコードは次のとおりです-

var aws = require('aws-sdk');
var ses = new aws.SES({
   region: 'us-east-1'
});
exports.lambdahandler = function(event, context, callback) {
   var eParams = {
      Destination: {
         ToAddresses: ["[email protected]"]
      },
      Message: {
         Body: {
            Text: {
               Data: "Bucket name: "+event.Records[0].s3.bucket.name+"  File name:"+event.Records[0].s3.object.key
            }
         },
         Subject: {
            Data: "S3 and AWS Lambda"
         }
      },
      Example: "[email protected]"
   };
   console.log('===SENDING EMAIL===');
   var email = ses.sendEmail(eParams, function(err, data) {
      if (err) console.log(err);
         else {
            console.log("===EMAIL SENT===");
            console.log("EMAIL CODE END");
            console.log('EMAIL: ', email);
            context.succeed(event);
            callback(null, "email is send");
         }
   });
};

対応するスクリーンショットは次のとおりです-

ステップ19

次に、ファイルをアップロードして、AWSLambdaコードで提供されているメールIDを確認します-