在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

程序員必看系列—FaaS的簡單實踐

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-25 18:42 ? 次閱讀

FaaS或者說serverless是一種云計算模型,其主要特點是用戶根本不需要租用任何虛擬機,從啟動虛擬機,執行代碼,返回結果和停止虛擬機這些由云提供商處理的整個過程。這比其他云計算實現更具成本效益。它還使開發人員能夠更加專注于開發業務邏輯,因為應用程序的某些部分由云提供程序處理。

要啟動執行代碼的整個過程,必須觸發它。觸發器可以是一個特定的事件,也可以是對API 管理系統的請求,然后將該代碼作為API 端點公開。

最流行的serverless服務之一是 AWS Lambda,它可以與AWS API 網關集成,創建一個serverless的RESTAPI。

REST API配置

API的配置將由AWS API 網關處理。這包括創建路由、處理輸入和輸出格式、身份驗證等等,而實際代碼將由Lambda 管理。

當開啟 API 網關儀表板時,為您的網站創建一個新的API。然后,單擊操作創建資源在API 中創建一個新的URL 路徑。每個資源都可以支持一個或多個方法(GET,POST,put/ patch,DELETE) ,這些方法通過Actions > Create Method來添加。

例如,我們可以創建一個名為“post”的資源,它的路徑是“/posts”,它有兩種方法:

GET —fetch all posts 把所有的帖子都拿來

POST —create a new post 創建一個新的帖子

在這一點上,屏幕應該是這樣的:

還需要處理顯示一個單一的帖子,更新一個帖子和刪除一個帖子。這些操作在REST API 中會有一個不同的路徑,這意味著需要創建一個新的資源。由于這個資源的路徑是“/posts / { post id }”,因此它將作為一個子資源創建。要做到這一點,首先單擊“posts”資源,然后去操作創建資源。這個資源將在路徑(post的 ID)中有一個參數,可以通過將參數名包裝為“/posts / { post ID }”的括號來實現。創建資源后,將GET、 PUT 和DELETE 方法添加到其中。

API 現在看起來是這樣的:

每個方法將執行相應的AWS Lambda 函數。先創建這些函數,然后將它們映射到適當的API 方法。

創建 Lambda 函數

點擊AWS Lambda,點擊“Create a Lambdafunction”。下一個屏幕允許選擇編程語言(Node.js或 Python)和預定義的模板之一。選擇microservice-http-endpoint,然后在下面的頁面中選擇API 名稱。也可以選擇空白函數,并且不用任何預先編寫的代碼來編寫它。

最后,在可以插入代碼的頁面??梢灾苯釉陧撁嫔蠈戇@個函數,或者將它作為壓縮存檔上傳(如果它包含自定義庫,則需要)。當我們使用預定義模板時,函數是自動生成的,看起來是這樣的:

from __future__ importprint_function

import boto3

import json

print(‘Loading function’)

def respond(err,res=None):

return {

‘statusCode’: ‘400’ if err else ‘200’,

‘body’: err.message if err elsejson.dumps(res),

‘headers’: {

‘Content-Type’:‘application/json’,

},

def lambda_handler(event,context):

‘‘‘Demonstrates a simple HTTP endpointusing API Gateway. You have full

access to the request and response payload,including headers and

status code.

To scan a DynamoDB table, make a GETrequest with the TableName as a

query string parameter. To put, update, ordelete an item, make a POST,

PUT, or DELETE request respectively,passing in the payload to the

DynamoDB API as a JSON body.

’’’

#print(“Received event:”+json.dumps(event, indent=2))

operations = {

‘DELETE’: lambda dynamo, x:dynamo.delete_item(**x),

‘GET’: lambda dynamo, x:dynamo.scan(**x),

‘POST’: lambda dynamo, x:dynamo.put_item(**x),

‘PUT’: lambda dynamo, x:dynamo.update_item(**x),

operation = event[‘httpMethod’]

if operation in operations:

payload = event[‘queryStringParameters’]if operation == ‘GET’ else json.loads(event[‘body’])

dynamo =boto3.resource(‘dynamodb’).Table(payload[‘TableName’])

return respond(None,operations[operation](dynamo, payload))

else:

returnrespond(ValueError(‘Unsupported method “{}”’.format(operation)))

雖然大多數情況下不需要很多代碼(許多人會使用關系數據庫而不是NoSQL DynamoDB 數據庫) ,但它為如何訪問HTTP 請求參數和如何輸出響應設置了一個很好的例子。

在創建Lambda 函數時需要注意的另一件事是handler字段。它告訴Lambda 要執行哪個函數,以及函數所在的文件。例如,如果main.py 文件中有一個名為“myfunction”的函數,那么處理程序的值將是“main.myfunction”。在創建函數之后,它們可以映射到相應的API 端點。

要使API 調用 Lambda 函數,請單擊一個API 方法,然后進入集成請求。在該頁上,將集成類型設置為Lambda 函數,并輸入您的亞馬遜區域和所需函數的名稱。對于所有的API 方法都這樣做。

在部署之前,可以測試API。每個API 方法都有一個測試按鈕,它將執行它并顯示輸出。

一旦一切準備就緒,去action Deploy API 部署你的REST API。第一次,需要創造一個新的階段(例如,它可以被稱為prod 或生產),就像一個部署環境??梢杂卸鄠€階段,不同的階段有不同的基礎url 和配置??梢栽谄聊蛔髠鹊腗ywebsite API Stages 下找到各個階段。點擊該階段的名稱以獲取API 的公共 URL,以及其他配置選項,如緩存和節流。

這里展示了一個基本的例子,一個serverless的REST API,使用AWS API 網關和Lambda 構建。它展示了如何在不需要開發常見的API 管理特性的情況下輕松地創建REST API,比如認證、路由、緩存和速率限制等。

更進一步, 物聯網的快速采用受到正在通過技術創新改變其業務的公司的支持; 制造商正在提供低成本和高端的設備和物聯網平臺,使設備集成和管理成為可能。物聯網應該轉向靈活、可靠和高成本效益的平臺,而在基礎設施、軟件、知識和員工方面投入最少。

IoT的無服務架構

如何從零開始構建一個物聯網解決方案,它的基礎設施和維護成本為零,只需要很少的營運成本。為了實現這個概念,可以使用AWS的云功能。 例如,創建實時報告遙測數據的設備模擬器,并通過 API 實時訪問這些信息。

AWS IoT 平臺是一個強大的物聯網框架。 它支持 MQTT 協議,MQTT 協議是應用最廣泛的通信協議之一。 選擇支持持久化和處理數據的服務也是基于其定價和維護成本。

AWS中所使用的組件列表如下:

AWS IoT : 用于數據收集和設備管理,

DynamoDB: 文檔存儲以持久化數據讀數,

AWS Lambda : 無服務器數據處理,

S3:用作靜態網站托管的塊存儲,

Gateway API :REST 訪問數據

總體數據流是以下方式工作的:

設備向 AWS IoT 發送小量數據(每5秒) ,

物聯網將數據存儲到 DynamoDB 表中*

Lambda函數每分鐘和每小時被觸發去做數據分析并將結果存儲回 DynamoDB,

API Gateway 通過 REST API 將 DynamoDB 的數據公開

靜態 HTML 網站托管在 S3上,并使用 RESTAPI 來顯示實時數據圖表和分析

第二點乍看起來可能有點傻,因為可能會認為 DynamoDB 不是存儲原始時間序列數據的最佳選擇。 然而,這里是為了演示的目的??梢钥紤]使用 Firehose 作為從物聯網到 S3/reshift 和 EMR 集群的傳輸流來進行數據處理,但對于這個簡單實踐而言,這里只是一個臨時的做法。

架構設置了以下關鍵參數:

免費,如果沒有設備報告任何數據。 另外,通過亞馬遜的免費版,可以免費獲得少量的資源

由于每個選定組件的性質,高度可擴展且可以從AWS中獲取

啟動只需的最基本知識,只需要定義規則和用一種非常流行的語言編寫邏輯: JavaScript,Python 或者 Java

IoT無服務架構的成本分析

假設后端操作每分鐘只需要處理幾個請求,這意味著大部分時間您的 CPU 處于空閑狀態。 假設不想為空閑時間買單。 因此,這里提出了無服務器架構。

假設有10000個設備每15分鐘報告一小部分數據,這就導致每月平均730個小時,每月約有2920萬個請求。AWS物聯網每100萬個請求花費5美元,DynamoDB 每秒花費0.0065美元,每秒需要花費50次。

通過 AWS IoT,每月將付出146美元左右的,14美元用于在 DynamoDB 中運行的最小存儲容量,總共有160美元,相當于每臺設備每月0.02美元或者每次0.000005美元。 盡管這沒有考慮到 lambda、存儲器和 API 網關的使用,但它們實際上只是這些數字的一小部分,因此可以省略。

這是令人印象深刻的。物聯網解決方案與數以千計的設備連接,這將花費不到200美元每月。 然而,讓我們想象一下,如果一個企業的設備每秒鐘都在報告關鍵數據(而不是每隔15分鐘) ,而且有成千上萬的數據。 還愿意為FaaS付多少錢呢?

如果一萬臺設備每秒發送一條消息,月付款將超過1.36萬美元。如果是10萬臺設備, 每月每臺設備的費用增加到13.61美元,還是挺貴的。

無服務架構IoT方案的優缺點

所有這些數字意味著優化的請求率將會立即和幾乎線性地導致月度費用減少。這就帶來了必須考慮的第二個重要結論,即所有權的總成本。 有一個虛擬的門檻值,超過這個閾值,無關緊要的方法就會變得非常昂貴,而且可能不會有效。

例如,傳統的體系結構實現成本可能不是很大程度上取決于設備的數量或每秒請求的數量,而是取決于額外的運營費用,使用開源解決方案也可以降低成本。

毫無疑問,無服務架構有許多優點:

它將資本支出轉化為經營支出,并通常降低經營成本;

不必考慮內部系統管理流程;

它減少了開發和部署成本和時間框架(更快的上市時間) ;

它具有可擴展性和容錯性

要考慮的第一個因素是為項目的需求, 如果不關心云鎖定,而且是一家創業公司,需要快速驗證想法,或者有一個很短的時間去營銷,或者解決方案不需要頻繁地將數據從設備傳輸到云,因此可以將每臺設備的成本保持在相對較低的水平。

另一方面,如果正在構建一個與云無關的、高度可定制的解決方案,并且使用實時數據進行操作,可以考慮使用自定義或開源物聯網解決方案。

審核編輯:符乾江


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 云服務
    +關注

    關注

    0

    文章

    835

    瀏覽量

    38984
  • AWS
    AWS
    +關注

    關注

    0

    文章

    433

    瀏覽量

    24453
  • serverless
    +關注

    關注

    0

    文章

    65

    瀏覽量

    4518
收藏 人收藏

    評論

    相關推薦

    阿里云升級通義靈碼AI程序員,全面上線

    近日,阿里云宣布其備受矚目的通義靈碼AI程序員已正式全面上線,為開發者帶來更為強大和便捷的編程輔助工具。 此次上線的通義靈碼AI程序員,在功能上實現了全面升級?,F在,它支持VS Code
    的頭像 發表于 01-09 11:16 ?277次閱讀

    TMS320C6000程序員指南

    電子發燒友網站提供《TMS320C6000程序員指南.pdf》資料免費下載
    發表于 12-24 17:19 ?0次下載
    TMS320C6000<b class='flag-5'>程序員</b>指南

    TMS320C55x DSP CPU程序員參考補充

    電子發燒友網站提供《TMS320C55x DSP CPU程序員參考補充.pdf》資料免費下載
    發表于 12-21 11:36 ?0次下載
    TMS320C55x DSP CPU<b class='flag-5'>程序員</b>參考補充

    UCD3138A64/UCD3138128程序員手冊

    電子發燒友網站提供《UCD3138A64/UCD3138128程序員手冊.pdf》資料免費下載
    發表于 12-09 14:42 ?0次下載
    UCD3138A64/UCD3138128<b class='flag-5'>程序員</b>手冊

    機械革命發布CODE AI程序員

    近日,英特爾新質生產力技術生態大會在成都舉行,機械革命作為重要參展商帶來了多款明星產品引爆全場!其中更是在AI PC軟件生態產品發布分論壇上,Intel、智譜、機械革命三方聯合發布了專為程序員設計的CODE AI程序員本,成為本次大會的一大亮點。
    的頭像 發表于 11-30 10:34 ?492次閱讀

    Linux驅動程序程序員指南

    電子發燒友網站提供《Linux驅動程序程序員指南.pdf》資料免費下載
    發表于 11-22 15:53 ?0次下載
    Linux驅動<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南

    AI編程工具會不會搶程序員飯碗

    AI編程工具可輔助編程,減少手動編碼,提升效率,對程序員有積極影響也有挑戰。程序員需深化技能、拓寬知識應對。長遠看,AI與人類程序員將共生共榮。
    的頭像 發表于 11-08 10:17 ?209次閱讀

    第五屆長沙·中國1024程序員節開幕

    據官方媒體報道,10月24日;? 第五屆長沙·中國1024程序員節在湖南湘江新區開幕;本次中國1024程序員節以“智能應用新生態”為主題。設置有岳麓對話、技術英雄會、主題峰會及賽事、展覽等活動,一場
    的頭像 發表于 10-25 15:42 ?228次閱讀

    程序員節視頻創意大賽,用串口屏贏取千元大獎

    10月24日,程序員專屬的節日里,我們盛大開啟“程序員節視頻創意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節視頻創意大賽,用串口屏贏取千元大獎

    程序員節視頻創意盛宴,邀您共襄盛舉!

    10月24日,程序員專屬的節日里,我們盛大開啟“程序員節視頻創意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發表于 07-04 09:00 ?67次閱讀
    <b class='flag-5'>程序員</b>節視頻創意盛宴,邀您共襄盛舉!

    適者生存,程序員最終會流向哪……

    程序員沒有永遠的護城河?。【湍壳暗幕ヂ摼W大環境來看,it行業已經是……
    的頭像 發表于 03-11 17:11 ?429次閱讀
    適者生存,<b class='flag-5'>程序員</b>最終會流向哪……

    薪資高、青春飯,是不是程序員=青樓?

    花期太短。技術迭代快,年齡大容易失業。 就這幾年的互聯網環境而言,不管是前端、Java、Android開發等等行業。已經感受到程序員不是太卷就是工作難找,薪資過低。以前高工現在拿著中低程序員薪資
    發表于 03-06 21:32

    PSoC? kit59開發KIT_A2G_TC387_MOTORCTR中是否存在程序員支持對PSoC? 1系列MCU進行編程?

    PSoC? kit59 開發KIT_A2G_TC387_MOTORCTR中是否存在程序員支持對PSoC? 1 系列 MCU(如 cy8c29466、cy8c27xxx、cy8c21xxx)進行編程?
    發表于 03-05 06:47

    瑞薩Flash程序員V3 發布說明

    電子發燒友網站提供《瑞薩Flash程序員V3 發布說明.pdf》資料免費下載
    發表于 02-19 09:37 ?1次下載
    瑞薩Flash<b class='flag-5'>程序員</b>V3 發布說明

    2024程序員的未來方向如何走?還看今朝

    這幾年的IT行業想必大家已經感受到了,Android、Java、前端等等程序員都經歷了大廠……
    的頭像 發表于 02-02 09:45 ?857次閱讀
    2024<b class='flag-5'>程序員</b>的未來方向如何走?還看今朝
    主站蜘蛛池模板: 国产福利vr专区精品 | 成熟妇女毛耸耸性视频 | 一区二区三区视频网站 | 四虎最新网址在线观看 | 久久精品亚洲一区二区三区浴池 | 亚洲 欧美 日韩 丝袜 另类 | 久久精品亚瑟全部免费观看 | 亚洲日本视频 | 啪视频免费 | 俄罗斯毛片基地 | 久久99热精品 | 精品成人网 | 午夜看片影院在线观看 | 噜噜噜色网 | 黄色avav | 亚洲国产成人最新精品资源 | 美女露出尿口让男人桶爽网站 | 中国农村一级片 | 免费污视频在线 | 久久久久久久影院 | 色网站免费在线观看 | 天天搞天天色 | www.欧美成 | 大学生一级特黄的免费大片视频 | 1024手机最新手机在线 | 91色多多| 在线观看一区二区三区视频 | 亚洲男人的天堂久久香蕉网 | 香蕉成人999视频 | 伊人精品网 | 六月综合激情 | 天天看天天干天天操 | 欧洲精品不卡1卡2卡三卡 | 色综合天天网 | 日本aaaaa毛片动漫 | 激情五月播播 | 99热色| 欧美性天堂 | 在线免费观看一级片 | 亚洲看片| 婷婷性 |