iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 5
7
Everything on Azure

30天手把手帶你趣學Azure☁️-初學者也能動手實作🙌🏻系列 第 5

[DAY05] (實作)Serverless打造工程師交友小工具-Azure Functions⚡(上篇)

千呼萬喚始出來,大家期待已久的Hands On章節終於來了!
親手體驗一下Functions的建置吧!

大家還記得我們是要Azure Functions打造一個工程師交友小工具

[工程師交友小工具]

我們要實作的功能如下:

能從交友網站獲得資料,且自動篩選自己可能有興趣的對象。篩選完後自動將對象的資料存到資料庫並寄信給我。

準備來進行打造我們的Azure Functions⚡

1. 登入Azure Portal

點選入口網站連結,前往Azure Portal(https://azure.microsoft.com/zh-tw/)

輸入Azure帳號密碼

進到Portal Dashboard頁面

2. 找到Functions

點選所有服務,輸入[Function App],選擇函數應用程式

3. 建立Functions

在函數應用程式頁籤上,點選[建立]

設定函數應用程式建立相關資訊

  1. 應用程式名稱(請自行取名)
  2. 選定訂用帳戶
  3. 新建資源群組
  4. 選定OS(在此我選擇Windows)
  5. 選擇主控方案(在此我選擇使用情況方案)
  6. 選擇位置(在此建議東亞,位在香港)
  7. 新建儲存體
  8. 建立

設定函數應用程式建立相關資訊

補充:何謂主控方案?

使用情況方案(Consumption Plan):
  1. 只需付費您執行程式碼時間的費用(每秒收費)
  2. 提供一個月執行1,000,000次免付費服務
  3. 及一個月執行400,000 GBs累計memory免付費服務
  4. 就是所謂的Serverless了!
應用程式方案(App Service Plan):
  1. 類似Azure Apps Service
  2. 提供你預約的伺服器
  3. 可預測的每月成本

4. 查看自己建立好的Functions

點選函數應用程式,可察看自己已建立成功的函數應用程式
若尚未看到,可能還沒建置完成,可以點選通知icon查看正在建立中的相關資訊

點選函式,準備開始搭建我們的Functions囉!

備註: 我們假設我們有一隻小爬蟲可以獲得交友網站新進會員的資料

為了更專注本系列Functions(Serverless)的開發,在這邊我們跳過打造爬蟲的步驟,直接進入正題(已獲取新進會員資料的情況下,Trigger一隻篩選新進會員資料的小工具)

已獲取新進會員資料的情況下,Trigger新進會員資料篩選

新建函式

1. 點選函式Icon,點選新增函式

2. 從範本中選擇HTTP Trigger

在這裡我們將使用HTTP Trigger,讓我透過HTTP的requests去叫用這個functions(函式)。

3. 建立新函式

** 何謂授權等級?

用來決定誰可以呼叫這個Functions(函式)
function(函式)等級:需要函式專屬的 API 金鑰。
anonymous(匿名)等級:不需要 API 金鑰。任何有URL的人都能存取。
admin等級:需要管理員金鑰

4. 建立完成後,會有範例程式碼預建在裡面可以參考

點選執行,可看到測試的結果

官方範例的程式碼: run.csx 檔案

using System.Net;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    log.Info("C# HTTP trigger function processed a request.");

    // 解析Query參數
    string name = req.GetQueryNameValuePairs()
        .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
        .Value;

    if (name == null)
    {
        // 取得request body
        dynamic data = await req.Content.ReadAsAsync<object>();
        name = data?.name;
    }

    return name == null
        ? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
        : req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
}

5. 呼叫此函式的Endpoint可以在此查看

6. 使用Advanced REST client呼叫看看

目前我們已經完成範例程式的建置及執行,在下一個章節我們將配合實作規劃(自動篩選小工具),修改程式碼。

在比較早的章節,我們將直接在Portal上進行程式的開發,方便大家快速上手及實驗,但實際上Portal並不是開發Functions最好的地方(因為比較難除錯),它適用於實驗及雛形,在實作Functions的後篇,我們除了會繼續開發小工具的Functions,也會介紹開發的其他工具

直接前往查看實作篇: (實作)Azure Functions⚡(下篇)


參考及圖片來源


上一篇
[DAY04] Azure Functions⚡介紹及Serverless入門輕鬆學
下一篇
[DAY06] (實作)Serverless打造工程師交友小工具-Azure Functions⚡(下篇)
系列文
30天手把手帶你趣學Azure☁️-初學者也能動手實作🙌🏻30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言