五分钟快速搭建Serverless免费邮件服务
1. 引言
本文將帶你快速基于 Azure Function 和 SendGrid 構建一個免費的Serverless(無服務器)的郵件發送服務,讓你感受下Serverless的強大之處。
該服務可以每月免費發送2,5000封,這是完全白嫖啊,感興趣的,趕緊動起你的小手爪,噼里啪啦搞起來呀。
2. 創建 SendGrid 賬號
你要有一個Azure賬號,沒有的話,花幾分鐘自行注冊一個就好。(我的賬號注冊在香港區域)咱們先來創建一個SendGrid Accounts,如下圖所示。點擊SendGrid Accounts后,再點擊創建SendGrid account。
填寫完畢后,點擊Review+Create,稍等片刻,提示部署成功,那么恭喜你,可以接著往下玩耍了。如果部署失敗,可能會因為SendGrid屏蔽了某些區域的賬號創建,就只能重新注冊個Azure賬號玩耍了。
緊接著,前往剛剛創建的SendGrid Account,點擊Manage會跳轉至SendGrid管理面板。打開后,會要求你進去郵件驗證,自行前往郵箱驗證即可。
點擊API Keys,然后點擊Create API Key,填寫API Key Name,選擇 Full Access,點擊Create&View,記下生成的API Key,后面需要用到。
3. 創建第一個函數應用
回到Azure控制臺,然后搜索函數應用。打開后點擊添加,按以下圖示進行創建。其中務必選擇以代碼發布,承載的操作系統選擇Windows。
創建成功后,轉到資源,如下圖所示:
依次點擊函數,添加,選擇HTTP trigger模板,填寫函數名稱,然后指定身份驗證級別。
點擊創建,創建成功后,跳轉到函數頁面,點擊獲取函數URL,粘貼URL到瀏覽器就可以訪問到你創建的第一個函數應用。
點擊代碼+測試,就可以看到模板代碼,如下圖所示:
從截圖來看,這個和C#的語法并無太大差別,官方稱為C#腳本。緊接著替換 run.csx為以下代碼并點擊保存:
//run.csx #r "Newtonsoft.Json" #r "SendGrid" using System.Net; using Microsoft.Azure.WebJobs.Host; using SendGrid.Helpers.Mail; using Microsoft.Extensions.Primitives; using Newtonsoft.Json; public static SendGridMessage Run(Email req, ILogger log) {var reqStr = JsonConvert.SerializeObject(req);log.LogInformation(reqStr);var message = new SendGridMessage();message.AddTo(req.To);message.AddContent("text/html", req.Body);message.SetFrom(new EmailAddress(req.From));message.SetSubject(req.Subject);return message; } public class Email {public string To { get; set; }public string From { get; set; }public string Subject { get; set; }public string Body { get; set; } }然后修改 function.json中的配置如下,并保存。
{"bindings": [{"authLevel": "function","name": "req","type": "httpTrigger","direction": "in","methods": ["get","post"]},{"type": "sendGrid","name": "$return","direction": "out","apiKey": "SendGridAPIKeyAsAppSetting"}] }注意觀察配置項中需要指定 apiKey,就是我們上面創建SendGrid Account 中對應的ApiKey。回到上面創建的Azure Function 應用服務,然后按下圖添加上面發郵件函數需要的配置項,如下所示。
添加完畢后,再回到函數中就可以測試運行了,如下圖所示:
查收郵件,你將收到來自Azure Function & SendGrid 的免費問候。
當然,也可以通過Postman自行驗證:
4.最后
通過以上的連環操作,相信你不僅成功薅了一把微軟的羊毛,而且順帶對Serverless也有了一定的認知。如果對Azure Function感興趣的,不妨參考[官方文檔:https://docs.microsoft.com/en-us/azure/azure-functions/]研究一番,相信你會發掘不少玩法,順便再薅它幾把羊毛,哈哈哈!
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的五分钟快速搭建Serverless免费邮件服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hangfire定时触发作业,好像很简单
- 下一篇: IdentityServer4 4.x版