步驟 2:更新 Lambda 函數 - AWS CodeDeploy

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 2:更新 Lambda 函數

在本主題中,您會更新 myDateTimeFunction.js 檔案。在下一個步驟中,您將使用此檔案部署更新的函數。這會透過 CodeDeploy 將生產流量從目前版本的 Lambda 函數轉移到更新版本來觸發部署。

若要更新您的 Lambda 函數
  1. 打開 myDateTimeFunction.js.

  2. 移除兩個註解標記 (「/*」和「*/」),以及 switch 區塊中名為 timecase 開頭和結尾的說明文字。

    取消註解的程式碼可讓您將新的參數 time 傳遞至函數。如果您將 time 傳遞給更新的函數,它會傳回目前的 hourminutesecond

  3. 儲存 myDateTimeFunction.js。它看起來應該如下所示:

    'use strict'; exports.handler = function(event, context, callback) { if (event.body) { event = JSON.parse(event.body); } var sc; // Status code var result = ""; // Response payload switch(event.option) { case "date": switch(event.period) { case "yesterday": result = setDateResult("yesterday"); sc = 200; break; case "today": result = setDateResult(); sc = 200; break; case "tomorrow": result = setDateResult("tomorrow"); sc = 200; break; default: result = { "error": "Must specify 'yesterday', 'today', or 'tomorrow'." }; sc = 400; break; } break; case "time": var d = new Date(); var h = d.getHours(); var mi = d.getMinutes(); var s = d.getSeconds(); result = { "hour": h, "minute": mi, "second": s }; sc = 200; break; default: result = { "error": "Must specify 'date' or 'time'." }; sc = 400; break; } const response = { statusCode: sc, headers: { "Content-type": "application/json" }, body: JSON.stringify( result ) }; callback(null, response); function setDateResult(option) { var d = new Date(); // Today var mo; // Month var da; // Day var y; // Year switch(option) { case "yesterday": d.setDate(d.getDate() - 1); break; case "tomorrow": d.setDate(d.getDate() + 1); default: break; } mo = d.getMonth() + 1; // Months are zero offset (0-11) da = d.getDate(); y = d.getFullYear(); result = { "month": mo, "day": da, "year": y }; return result; } };