AWS 入門

建立基本 Web 應用程式

部署 Web 應用程式,以 API 和資料庫新增互動性

單元 2 - 建置無伺服器功能

在本單元中,您將使用 AWS Lambda 建置無伺服器功能。

簡介

在本單元中,您將用 Python、JavaScript 或 Java 撰寫一小段程式碼,於之後的單元用來為網頁新增互動性。您會使用 AWS Lambda 服務這項運算服務,可讓我們建立無伺服器功能。(「無伺服器功能」可免除開發人員管理軟體和硬體的需要。而是將應用程式細分為個別功能,能個別叫用和擴展。)

這些無伺服器功能是根據您在程式碼中所定義的特定事件所觸發。這也是非常經濟的服務,因為只依您處理的事件數目收費,閒置時間不計。最好的一點是,您不必擔心得管理任何伺服器!

您將學到的內容

  • 使用 AWS 主控台 (以 Python、JavaScript 或 Java) 從頭建立 Lambda 函式
  • 在 AWS 主控台中建立 (JSON) 事件以測試您的函式

主要概念

運算服務提供運算處理能力的服務。

無伺服器功能運算服務在隨需之下會執行的程式碼片段。

Lambda 觸發會使 Lambda (無伺服器) 函式執行的事件類型。可以是另一項 AWS 服務或是外部輸入。

 完成時間

5 分鐘

 使用的服務

實作

  • 建立並設定 Lambda 函式
    • Python
    • JavaScript
    • Java
    • Python
      1. 在新的瀏覽器標籤中,登入 AWS Lambda 主控台
      2. 確定您記下建立函式所在的區域。您可在頁面頂部看到此資訊,就在帳戶名稱旁邊。
      3. 按一下橘色的「建立函式」按鈕。
      4. 在「函式名稱」之下,輸入 HelloWorldFunction
      5. 執行階段下拉清單,選取 Python 3.8
      Full Stack tutorial CreateFunction Python

      6.按一下橘色的「建立函式」按鈕。

      7.您應該可以看見螢幕頂部有個綠色方塊,內有以下訊息「已成功建立函式」。

      8.將「函式程式碼」之下的程式碼取代為以下內容:

      # import the JSON utility package since we will be working with a JSON object
      import json
      # define the handler function that the Lambda service will use an entry point
      def lambda_handler(event, context):
      # extract values from the event object we got from the Lambda service
          name = event['firstName'] +' '+ event['lastName']
      # return a properly formatted JSON object
          return {
          'statusCode': 200,
          'body': json.dumps('Hello from Lambda, ' + name)
          }

      9.按一下螢幕頂部橘色的「儲存」按鈕。

      10.我們來測試新函式。在螢幕頂部,按一下「選擇測試事件」

      11.從那個下拉式功能表,按一下「設定測試事件」

      12.在「事件名稱」之下,輸入 HelloWorldTestEvent

      13.將以下 JSON 物件複製後貼上,取代預設項目:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      14.在頁面底部,按一下橘色的「建立」按鈕。

    • JavaScript
      1. 在新的瀏覽器標籤中,登入 AWS Lambda 主控台
      2. 確定您記下建立函式所在的區域。您可在頁面頂部看到此資訊,就在帳戶名稱旁邊。
      3. 按一下橘色的「建立函式」按鈕。
      4. 在「函式名稱」之下,輸入 HelloWorldFunction
      5. 執行階段下拉清單,選取 Node.js 12.x
      Full Stack tutorial CreateFunction JavaScript

      6.按一下橘色的「建立函式」按鈕。

      7.您應該可以看見螢幕頂部有個綠色方塊,內有以下訊息「已成功建立函式」。

      8.將「函式程式碼」之下的程式碼取代為以下內容:

      // Define handler function, the entry point to our code for the Lambda service
      // We receive the object that triggers the function as a parameter
      exports.handler = async (event) => {
          // Extract values from event and format as strings
          let name = JSON.stringify(`Hello from Lambda, ${event.firstName} ${event.lastName}`);
          // Create a JSON object with our response and store it in a constant
          const response = {
              statusCode: 200,
              body: name
          };
          // Return the response constant
          return response;
      };

      9.按一下螢幕頂部橘色的「儲存」按鈕。

      10.我們來測試新函式。在螢幕頂部,按一下「選擇測試事件」

      11.從那個下拉式功能表,按一下「設定測試事件」

      12.在「事件名稱」之下,輸入 HelloWorldTestEvent

      13.將以下 JSON 物件複製後貼上,取代預設項目:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      14.在頁面底部,按一下橘色的「建立」按鈕。

    • Java
      1. 在新的瀏覽器標籤中,登入 AWS Lambda 主控台
      2. 確定您記下建立函式所在的區域。您可在頁面頂部看到此資訊,就在帳戶名稱旁邊。
      3. 按一下橘色的「建立函式」按鈕。
      4. 在「函式名稱」之下,輸入 HelloWorldFunction
      5. 執行階段下拉清單,選取 Java 11
      Full Stack tutorial CreateFunction Java

      6.按一下橘色的「建立函式」按鈕。

      7.您應該可以看見螢幕頂部有個綠色方塊,內有以下訊息「已成功建立函式」。

      8.您現在已經以名為 “Hello” 的處理常式類別建立 Lambda 函式。因為 Java 是一種編譯語言,您無法在 Lambda 主控台中檢視或編輯原始程式碼,但能夠修改其組態、加以呼叫,和設定觸發。

      9.若要更新此函式的程式碼,您需要建立部署套件,可以是內含函式程式碼的 JAR 檔案或 ZIP 存檔。針對本教學的目的,我們已在此提供內含更新後函式程式碼的 JAR 檔案備用。

      10.移至「函式程式碼」,上傳該 JAR 檔。

      Full Stack tutorial UploadJar

      11.將 "Handler" 上傳com.example.app.LambdaRequestHandler::handleRequest

      Full Stack tutorial UpdateHandler

      12.按一下螢幕頂部橘色的「儲存」按鈕。

      13.我們來測試新函式。在螢幕頂部,按一下「選擇測試事件」

      14.從那個下拉式功能表,按一下「設定測試事件」

      15.在「事件名稱」之下,輸入 HelloWorldTestEvent

      16.將以下 JSON 物件複製後貼上,取代預設項目:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      17.在頁面底部,按一下橘色的「建立」按鈕。

  • 測試 Lambda 函式
    1. 按一下頁面頂部灰色的「測試」按鈕。
    2. 頁面頂部應該會顯示淺綠色方塊,內有以下文字:「執行結果:成功」。 您可按一下「詳細資訊」,查看函式傳回的事件。
    3. 做得很好! 您現在有了能運作的 Lambda 函式。

應用程式架構

現在我們已完成這個單元,我們的架構會像這樣:

Full Stack tutorial Module Two app arch

您會注意到我們加入了 AWS Lambda 服務,但尚未連線到 S3 或我們的使用者。我們會在下一個單元建置那個部分。

這個單元對您是否有幫助?

感謝您
請告訴我們您喜歡的部分。
抱歉,讓您失望
是有內容過時、令人困擾,或不準確嗎? 請提供意見回饋,協助我們改進此教學課程。

連結無伺服器功能至網站