目錄
您的第一個無服務器服務
CORS配置
CORS LAMBDA調整
調用功能
建造一個實用的lambda
實施代碼
可選:捆綁
結論
首頁 web前端 css教學 使用AWS Lambda功能構建您的第一個無服務器服務

使用AWS Lambda功能構建您的第一個無服務器服務

Apr 05, 2025 am 10:10 AM

使用AWS Lambda功能構建您的第一個無服務器服務

許多開發人員對AWS lambda功能有一些熟悉。雖然相對易於設置,但是瀏覽龐大的AWS生態系統可能具有挑戰性。龐大的組件數量使得很難掌握大圖,並將Lambda的功能順利地集成到標準的Web應用程序中。

無服務器框架大大簡化了此過程。它簡化了創建,部署以及(最重要的是)Lambda函數在Web應用程序中的集成。儘管它的功能遠遠超出了這一點,但本文側重於這些核心方面。這本簡介有望激發您探索Serverless更廣泛功能的興趣。如果您是Lambda的新手,請首先考慮查看此AWS入門指南。

快速啟動指南為初始安裝和設置提供了最佳說明。之後,即使您需要創建AWS帳戶,您也應該在5-10分鐘內進行操作。

您的第一個無服務器服務

在研究文件上載和S3存儲桶等高級功能之前,讓我們創建一個基本的lambda函數,將其連接到HTTP端點,然後從現有的Web應用程序調用它。該功能不會執行任何復雜的任務,但有效地證明了無服務器框架的易用性。

首先創建您的服務。在您的Web應用程序中(使用create-react-app是啟動新的應用程序),為您的服務創建目錄(例如, lambda文件夾)。在您的終端中導航到此目錄並運行:

 SLS創建-t aws-nodejs -path hello hello-world
登入後複製

這創建了一個hello-world目錄。讓我們檢查一下其內容。

handler.js包含一個返回消息的異步函數。您可以使用sls deploy立即部署此Lambda功能,從而使其引用。但是,讓我們首先通過網絡訪問它。

手動AWS配置將涉及設置AWS API網關端點和舞台,然後將其配置為代理您的lambda。無服務器以最小的配置處理所有這些。

仍在hello-world目錄中,打開serverless.yaml

配置文件包括用於通用設置的樣板。刪除HTTP條目,並指定一個更具描述性的路徑:

功能:
  你好:
    處理程序:Handler.Hello
    事件:
      -http:
        路徑:msg
        方法:獲取
登入後複製

就是這樣。無服務器管理基本的複雜性。

CORS配置

要使用Fetch API調用前端JavaScript的功能,CORS配置是必要的。本節概述了該過程。

添加cors: true

功能:
  你好:
    處理程序:Handler.Hello
    事件:
      -http:
        路徑:msg
        方法:獲取
        CORS:是的
登入後複製

這將在API端點上配置COR,從而啟用交叉原始通信。

CORS LAMBDA調整

雖然HTTP端點是啟用了CORS的,但Lambda功能必須返回適當的標題。讓我們通過修改handler.js來自動化這一點:

 const corsresponse = obj =>({{
  狀態代碼:200,
  標題:{
    “ Access-Control-Allow-Origin”:“*”,
    “訪問控制 - 允許頭”:“*”,
    “ Access-Control-Allow-Methods”:“*”
  },,
  身體:json.stringify(obj)
});

module.exports.hello = async event => {
  返回corsresponse(“你好,世界!”);
};
登入後複製

現在,通過此函數來處理lambda函數的響應。

hello-world目錄sls deploy以部署Lambda函數。

sls info命令提供了該函數的URL,無需手動將其定位在AWS控制台中。 URL將類似於:

 <code>https://6xpmc3g0ch.execute-api.us-east-1.amazonaws.com/dev/msg</code>
登入後複製

調用功能

現在,讓我們使用fetch從Web應用程序中調用函數:

 fetch(“ https://6xpmc3g0ch.execute-api.us-east-1.amazonaws.com/dev/msg”)
  。
  然後(resp => {
    console.log(resp);
  });
登入後複製

該消息應顯示在瀏覽器的開發人員控制台中。

讓我們重複此過程,創建一個更實用的功能:一個調整圖像並將其上傳到S3存儲桶的lambda。用戶無需觸發S3上傳,而是直接上傳到Lambda,從而消除了對客戶端AWS SDK資源的需求。

建造一個實用的lambda

讓我們創建一個新服務(例如, cover-art ):

 SLS創建-t aws-nodejs-Path Cover-Art
登入後複製

添加HTTP端點路徑(文件上傳的後方法​​)並啟用CORS:

事件:
  -http:
    路徑:上傳
    方法:發帖
    CORS:是的
登入後複製

通過在serverless.yaml中刪除和修改iamRoleStatements部分,授予lambda訪問您的S3存儲桶(S):

 iamRolestatement:
   - 效果:“允許”
    行動:
       - “ S3:*”
    資源:[“ arn:aws:s3 ::: your-bucket-name/*”]
登入後複製

配置API網關以接受multipart/form-data

提供者:
  名稱:aws
  運行時:nodejs12.x
  Apigateway:
    二進制型:
       - “多部分/form-data”
登入後複製

將功能重命名為serverless.yamlhandler.js upload

實施代碼

安裝所需的軟件包:

 npm我jimp uuid lambda-multipart-parser
登入後複製

handler.js中實現S3上傳助手函數和主要上傳功能(完整的代碼太廣泛而不是在此處包含,但在原始提示中可用)。

在客戶端上使用諸如react-dropzone之類的庫來處理文件上傳(原始提示中提供的示例代碼)。

可選:捆綁

捆綁代碼會降低部署規模並提高性能。安裝serverless-webpack

 npm i無服務器 -  webpack -save-dev
登入後複製

將其添加到serverless.yaml

插件:
   - 無服務器-Webpack
登入後複製

創建webpack.config.js (原始提示符中提供的配置)。重新部署以利用WebPack。

結論

無服務器框架大大簡化了AWS lambda功能的開發和部署。本引言為進一步探索其功能奠定了基礎。原始提示中提到的資源為深度理​​解提供了寶貴的學習機會。

以上是使用AWS Lambda功能構建您的第一個無服務器服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1276
29
C# 教程
1256
24
靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom 每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom Apr 17, 2025 am 10:55 AM

在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move

帶有HTML對話框元素的一些動手 帶有HTML對話框元素的一些動手 Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

紙張形式 紙張形式 Apr 16, 2025 am 11:24 AM

購買或建造是技術的經典辯論。自己構建東西可能會感覺更便宜,因為您的信用卡賬單上沒有訂單項,但是

'訂閱播客”鏈接應在哪裡? '訂閱播客”鏈接應在哪裡? Apr 16, 2025 pm 12:04 PM

有一段時間,iTunes是播客中的大狗,因此,如果您將“訂閱播客”鏈接到喜歡:

託管您自己的非JavaScript分析的選項 託管您自己的非JavaScript分析的選項 Apr 15, 2025 am 11:09 AM

有很多分析平台可幫助您跟踪網站上的訪問者和使用數據。也許最著名的是Google Analytics(廣泛使用)

See all articles