新聞資訊
租用幫助
AWS 控制臺創(chuàng)建和部署Lambda 函數(shù)
2023-12-05 08:31:33
摘要:我們可以創(chuàng)建 Lambda 函數(shù)并在 AWS 控制臺中對其進(jìn)行測試。本章對此進(jìn)行了詳細(xì)討論。為此,您必須按照此處給出的步驟操作并觀察給出的相應(yīng)屏幕截圖-

我們可以創(chuàng)建 Lambda 函數(shù)并在 AWS 控制臺中對其進(jìn)行測試。本章對此進(jìn)行了詳細(xì)討論。為此,您必須按照此處給出的步驟操作并觀察給出的相應(yīng)屏幕截圖-

免綁卡注冊AWS云賬戶http://hkonecloud.755800.com/

步驟 1

登錄 AWS 控制臺 https://aws.amazon.com/console/?,F(xiàn)在,您將被重定向到顯示 AWS 服務(wù)的屏幕。

步驟 2

現(xiàn)在,點(diǎn)擊上面突出顯示的 Lambda 服務(wù)。這將重定向到創(chuàng)建函數(shù),如下所示-

步驟 3

現(xiàn)在,單擊 創(chuàng)建函數(shù)并輸入函數(shù)的詳細(xì)信息。然后您可以看到如下所示的屏幕-

步驟 4

您可以通過選擇您選擇的語言來編寫代碼。如果選擇的選項(xiàng)是內(nèi)聯(lián)編輯代碼,則必須在編輯器中編寫代碼。其他可用選項(xiàng)如下-

步驟 5

完成后,您需要保存右上角給出的按鈕的更改,如下所示-

步驟 6

現(xiàn)在,點(diǎn)擊 測試按鈕。這給出了 Lambda 函數(shù)執(zhí)行的所有細(xì)節(jié),如下所示-

步驟 7

index.js 的代碼如下-



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



這將調(diào)用 回調(diào)函數(shù),結(jié)果可能是錯(cuò)誤或成功。成功后,您將看到 Lambda 測試 消息;如果出錯(cuò),它將傳遞null。

步驟 8

Lambda 函數(shù)的 Role 詳細(xì)信息是配置的一部分,如下所示-

步驟 9

現(xiàn)在,您可以根據(jù)需要更新角色并保存 Lambda 函數(shù)。然后,lambda 函數(shù)的內(nèi)存和超時(shí)詳細(xì)信息如下所示-

步驟 10

現(xiàn)在,我們需要為 Lambda 函數(shù)添加觸發(fā)器,以便它在事件發(fā)生時(shí)執(zhí)行。觸發(fā)器詳細(xì)信息顯示在 AWS Lambda 函數(shù)屏幕的開頭,如下所示-

從中,您可以選擇希望觸發(fā) Lambda 函數(shù)的觸發(fā)器。選擇觸發(fā)器時(shí),必須添加觸發(fā)器的配置詳細(xì)信息。

例如,對于 S3 上的觸發(fā)器,要添加的配置詳細(xì)信息如下-

第 11 步

現(xiàn)在,選擇您想要觸發(fā)的存儲桶。事件類型具有以下詳細(xì)信息-

第 12 步

對于觸發(fā)器,您還可以提及前綴類型文件或文件模式,Lambda 必須是觸發(fā)器。詳情如圖所示-

第 13 步

現(xiàn)在,填寫觸發(fā)器所需的詳細(xì)信息,然后單擊 添加按鈕。保存要添加的觸發(fā)器的 Lambda 函數(shù)。保存該函數(shù)會部署詳細(xì)信息,從現(xiàn)在開始,任何時(shí)候文件都是添加到 S3 存儲桶后,Lambda 將被觸發(fā)。

觀察以下屏幕截圖,其中顯示了添加到 AWS Lambda 的 S3 觸發(fā)器-

第 14 步

現(xiàn)在,讓我們使用 S3 示例事件來測試 Lambda 函數(shù)。此處顯示了相同的代碼-

Amazon S3 Put 示例事件



{
   "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 事件上傳的文件的詳細(xì)信息-



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 步

現(xiàn)在,讓我們更新 AWS Lambda 代碼以打印 S3 詳細(xì)信息,如下所示-



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



第 16 步

保存更改。點(diǎn)擊 Test 并輸入 S3 示例事件-

第 17 步

現(xiàn)在點(diǎn)擊 測試,您可以看到如下所示的輸出-

第 18 步

要使用 S3 AWS 服務(wù)在 S3 上測試觸發(fā)器,請?jiān)?S3 存儲桶中上傳一個(gè)文件: 測試存儲桶觸發(fā)器。更新與 Lambda 一起使用的角色以獲取 S3 和 SES 策略(發(fā)送郵件)的權(quán)限。這將更新 AWS Lambda 代碼以發(fā)送郵件以查看觸發(fā)器工作-

更新后的 AWS Lambda 代碼如下所示-



var aws = require("aws-sdk");
var ses = new aws.SES({
   region: "us-east-1"
});
exports.lambdahandler = function(event, context, callback) {
   var eParams = {
      Destination: {
         ToAddresses: ["coxxxxxxx@gmail.com"]
      },
      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: "coxxxxxx@gmail.com"
   };
   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");
         }
   });
};



相應(yīng)的屏幕截圖如下所示-

第 19 步

現(xiàn)在,上傳文件并檢查 AWS Lambda 代碼中提供的郵件 ID-



海外服務(wù)器免費(fèi)測試http://running-capacitor.com/


USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請免費(fèi)產(chǎn)品試用服務(wù)
立即申請