日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Serverless 落地实践

發(fā)布時(shí)間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Serverless 落地实践 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

.Net Core Serverless初體驗(yàn)

什么是Serverless

  Serverless 是一個(gè)當(dāng)今軟件世界中比較新的話題。它并沒(méi)有一個(gè)普遍公認(rèn)的權(quán)威定義,每個(gè)人每個(gè)企業(yè)對(duì)它的解釋可能都有不同,而 Serverless 正是在這種情況下不斷發(fā)發(fā)展的。但是就算如此,有一些 Serverless 的特征還是被廣泛認(rèn)可的:

  • 服務(wù)端的主機(jī)和進(jìn)程完全由供應(yīng)商管理

  • 可以根據(jù)負(fù)載進(jìn)行自動(dòng)伸縮

  • 按照精確的使用情況來(lái)計(jì)費(fèi),就像水和電一樣。(效用計(jì)算)

  引用掘金,原文地址:https://juejin.im/post/5c68fdbfe51d4539a569f259

Serverless演進(jìn)

?

  在這個(gè)發(fā)展歷程中有以下幾個(gè)漸進(jìn)的里程碑事件:

  • 通過(guò)虛擬化技術(shù)將大型物理機(jī)虛擬成單個(gè)的VM資源。

  • 將虛擬化集群搬到云計(jì)算平臺(tái)上,只做簡(jiǎn)單運(yùn)維。

  • 把每一個(gè)VM按照運(yùn)行空間最小化的原則切分成更細(xì)的Docker容器。

  • 基于Docker容器構(gòu)建不用管理任何運(yùn)行環(huán)境、僅需編寫核心代碼的Serverless架構(gòu)。

  引用阿里云,原文地址:https://help.aliyun.com/knowledge_detail/65565.html?spm=a2c4g.11186631.2.1.4f811bbeDYGmvp

阿里云Serverless -?函數(shù)計(jì)算

  函數(shù)計(jì)算是事件驅(qū)動(dòng)的全托管計(jì)算服務(wù)。使用函數(shù)計(jì)算,您無(wú)需采購(gòu)與管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫并上傳代碼。函數(shù)計(jì)算為您準(zhǔn)備好計(jì)算資源,彈性地可靠地運(yùn)行任務(wù),并提供日志查詢、性能監(jiān)控和報(bào)警等功能。

借助函數(shù)計(jì)算,您可以快速構(gòu)建任何類型的應(yīng)用和服務(wù),并且只需為任務(wù)實(shí)際消耗的資源付費(fèi)。

  引用阿里云,原文地址:https://help.aliyun.com/document_detail/52895.html?spm=a2c4g.11186623.6.541.23dc641aB3U3K0

編寫.Net Core代碼

  1. 新建一個(gè).net core控制臺(tái)程序,這里命名為AliyunServerless。

  

  2. 引用阿里云提供的函數(shù)計(jì)算組件Aliyun.Serverless.Core

Install-Package Aliyun.Serverless.Core

  

  3. 按照函數(shù)計(jì)算的要求編寫.Net Core的類與函數(shù),這里用兩個(gè)類與函數(shù)

  a. 打印執(zhí)行日志

/// <summary>/// 打印執(zhí)行日志/// </summary>public class LogHandler{public void Handle(Stream input, IFcContext context){ILogger logger = context.Logger;logger.LogInformation($"Handle request: {context.RequestId}");}}

  b.?打印服務(wù)器IP

/// <summary>/// 打印服務(wù)器IP/// </summary>public class IpHandler{public void Handle(Stream input, IFcContext context){ILogger logger = context.Logger;var ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());logger.LogInformation($"Handle request: {context.RequestId}");foreach (var ipAddress in ipHostInfo.AddressList){logger.LogInformation($"IP Address:{ipAddress}");}}}

  說(shuō)明:

  

?  詳情可參考原文地址:https://help.aliyun.com/document_detail/112379.html?spm=a2c4g.11174283.6.567.206852120XSx37

  4. 發(fā)布程序并打包成zip

dotnet publish -c Release

?  

配置阿里云函數(shù)計(jì)算

  1.?費(fèi)用說(shuō)明及免費(fèi)額度

  

  2. 選擇函數(shù)執(zhí)行的地區(qū)

  參考入口地址:https://fc.console.aliyun.com/fc/overview/cn-shenzhen

  

  3. 創(chuàng)建服務(wù)及函數(shù)

  a. 創(chuàng)建函數(shù)

  

  b. 選擇“事件函數(shù)”,然后“下一步”

  

  c. 配置函數(shù)信息

  

  其中:

  “所在服務(wù)”是分組,根據(jù)需要填寫即可。

  “函數(shù)名稱”是名稱,根據(jù)需要填寫即可。

  “運(yùn)行環(huán)境”選擇dotnetcore2.1。

  “函數(shù)入口”要按規(guī)定填寫,模板是{程序集}::{命名空間}.{類名}::{函數(shù)名},這里是:AliyunServerless::AliyunServerless.LogHandler::Handle

  “函數(shù)執(zhí)行內(nèi)存”,函數(shù)執(zhí)行需要的內(nèi)存。

  “超時(shí)時(shí)間”,函數(shù)執(zhí)行不能超過(guò)設(shè)置的時(shí)間。

  d. 執(zhí)行函數(shù)

  點(diǎn)擊“執(zhí)行”,可以看到執(zhí)行摘要(執(zhí)行時(shí)間、使用內(nèi)存、執(zhí)行狀態(tài)等)及執(zhí)行結(jié)果:

  

  e. 創(chuàng)建觸發(fā)器

  

  這里用的是“定時(shí)觸發(fā)器”,支持Cron表達(dá)式,調(diào)度最高頻率為1分鐘,暫不支持秒級(jí)調(diào)度;除了“定時(shí)觸發(fā)器”,還有以下的觸發(fā)器類型:

  

?  有興趣的朋友可以自行研究。

?  配完觸發(fā)器以后,函數(shù)就會(huì)被定時(shí)觸發(fā),由于這里是打印日志,需要配置日志才能看到,本文沒(méi)配置日志,就不演示觸發(fā)效果了。

擴(kuò)展測(cè)試

  按照創(chuàng)建函數(shù)的步驟,創(chuàng)建“打印服務(wù)器IP”函數(shù),執(zhí)行并進(jìn)行跟蹤,結(jié)果如下:

  1. 多次執(zhí)行(5次不同的RequestId),服務(wù)器IP沒(méi)變(都為21.0.3.3),說(shuō)明分配到同一臺(tái)服務(wù)器上

  

  

  

  

  

  2. 重新上傳程序包,服務(wù)器IP會(huì)變,但同一個(gè)軟件包服務(wù)器IP不變

  a. 第一次重新上傳:

  

  

  b. 第二次重新上傳:

  

  

  3. 我選擇的執(zhí)行地區(qū)是“華南1(深圳)”,但是服務(wù)器IP是美國(guó)IP;因?yàn)闊o(wú)服務(wù)器信息,該結(jié)論僅供參考

  

  

  

  4. 調(diào)用統(tǒng)計(jì)會(huì)非實(shí)時(shí)(正常現(xiàn)象),大部分業(yè)務(wù)月免費(fèi)額度應(yīng)該足夠使用

  

源碼地址

  https://github.com/ErikXu/AliyunServerless

總結(jié)

以上是生活随笔為你收集整理的Serverless 落地实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。