天天看點

5 分鐘上手函數計算

開通函數計算服務

在使用函數計算前,您需要開通函數計算服務。

說明:本場景中提供的阿裡雲子賬号無函數計算服務操作權限,請使用您自己的阿裡雲賬号操作。您無需擔心扣費問題,因為函數計算服務有一定的免費額度,請參見

計費方式

1.使用您自己的阿裡雲賬号登入阿裡雲控制台,然後進入

函數計算産品詳情頁

2.單擊【免費開通】。

5 分鐘上手函數計算

3.閱讀《函數計算服務協定》勾選同意服務協定,最後單擊【立即開通】。

5 分鐘上手函數計算

4.單擊【管理控制台】進入函數計算控制台。

5 分鐘上手函數計算

說明:  開通函數計算後,你可以通過2種方式進行HelloWorld應用開發,使用函數計算控制台或使用Funcraft工具。

在控制台開發函數計算 HelloWorld 應用

1.在函數計算控制台首頁,單擊【建立函數】。

5 分鐘上手函數計算

2.選擇【HTTP函數】,然後單擊【下一步】。

5 分鐘上手函數計算

3.參考以下說明填寫函數和觸發器配置,然後單擊【完成】。

  • 所在服務:例如hello_world_service。
  • 綁定日志:填寫所在服務名稱後預設勾選綁定日志,日志服務會收取少量費用,您可以選擇取消勾選。
  • 函數名稱:例如hello_world。
  • 運作環境:選擇nodejs10。
  • 觸發器名稱:例如hello_world_trigger。
  • 認證方式:選擇anonymous。
  • 請求方式:選擇GET。
5 分鐘上手函數計算

4.在 代碼執行管理 頁面,将index.js檔案中的内容替換為如下所示:

var getRawBody = require('raw-body')
module.exports.handler = function (request, response, context) {
    getRawBody(request, function (err, data) {
        var respBody = new Buffer.from("你好,世界!");
        response.setStatusCode(200)
        response.setHeader('content-type', 'text/html')
        response.send(respBody)
    })
};           

替換後如下所示:

5 分鐘上手函數計算

5.單擊編輯器右上角【Save Invoke】儲存并運作示例代碼。

5 分鐘上手函數計算

可以看到函數運作成功,并傳回: 你好,世界!

使用 Funcraft 開發函數計算 HelloWorld 應用

Funcraft

是一個用于支援Serverless應用部署的工具,能幫助您便捷地管理函數計算、API 網關和日志服務等資源。它通過一個資源配置檔案(template.yml),協助您進行開發、建構和部署操作。

本步驟操作将在ECS伺服器上使用Funcraft工具開發函數計算HelloWorld應用。

1.按照以下步驟建立資源。

  • a.在 【體驗中心頁面】 左側,單擊 雲産品資源 下拉菜單,檢視本次實驗資源。
  • b.單擊 免費開通 建立所需資源。

說明:  資源建立過程需要1~3分鐘。完成實驗資源的建立後,您可以在 雲産品資源 清單檢視已建立的資源資訊,例如:IP位址、使用者名和密碼等。

2.參考以下步驟連接配接ECS伺服器。

a.打開終端工具。

  • Windows:打開指令視窗。
  • MAC:打開指令行終端Terminal。

Windows使用者請檢查系統中是否安裝有SSH工具。檢查方法:

在終端中輸入指令 ssh -V 。

ssh -V           

如果顯示 SSH 版本則表示已安裝,如下圖所示。

5 分鐘上手函數計算

如果未安裝,請下載下傳安裝

OpenSSH

工具。

b.在終端中輸入連接配接指令

ssh [username]@[ipaddress]

。您需要将其中的username和ipaddress替換為步驟一中建立的ECS伺服器的彈性公網IP。

例如:

ssh [email protected]           
5 分鐘上手函數計算

指令顯示結果如下:

5 分鐘上手函數計算

c.輸入

yes

d.同意繼續後将會提示輸入登入密碼。 密碼為已建立的雲服務的ECS的登入密碼。

5 分鐘上手函數計算

登入成功後會顯示如下資訊。

5 分鐘上手函數計算

3.在連接配接到ECS伺服器的終端中執行以下指令安裝NodeJS。

curl -sL https://rpm.nodesource.com/setup_10.x | bash - && yum install -y nodejs           

4.執行以下指令安裝Funcraft。

npm install request @alicloud/fun -g           

5.執行  fun config 指令進行本地配置。

fun config           

請參考以下資訊輸入您的阿裡雲賬号ID、AccessKeyID和AccessKey密鑰等資訊。

Aliyun Account ID:請在

賬号安全設定

頁面檢視您的賬号ID。

5 分鐘上手函數計算

Aliyun Access Key ID 和 Aliyun Access Key Secret:請在

安全資訊管理

頁面檢視您賬号的 AK ID 和 AK Secret。

如果您使用的是阿裡雲主賬号,請在安全資訊管理頁面的安全提示彈框中單擊繼續使用 AccessKey。

5 分鐘上手函數計算

如果您使用的是阿裡雲 RAM 子使用者,需要確定您的子使用者擁有函數計算管理權限

AliyunFCFullAccess 

,請參見

為RAM使用者授權

如下圖所示為您的 AccessKey ID 和 AccessKey Secret。如果您的賬号未使用過 AccessKey,請單擊右上角建立 AccessKey。

5 分鐘上手函數計算

Default region name:請選擇開通的函數計算服務所在地域。

5 分鐘上手函數計算

正确設定如下所示:

5 分鐘上手函數計算

6.執行以下指令建立工作空間。

mkdir demo && cd demo           

7.執行 fun init 指令建立一個HTTP函數觸發器。

fun init http-trigger-nodejs10           

指令執行結果如下所示:

5 分鐘上手函數計算

其中 index.js 檔案為生成的HelloWorld函數模闆,template.yml 檔案中包含了HelloWorld函數和HTTP觸發器的預設配置資訊。

8.參考以下步驟修改 index.js 檔案内容。

a.将 index.js 檔案内容清空。

cat /dev/null > index.js           

b.使用 vim 打開 index.js 檔案。

vim index.js           

c.按下 i 鍵進入 vim 的編輯模式,在檔案中新增以下内容。

var getRawBody = require('raw-body')
module.exports.handler = function (request, response, context) {
    getRawBody(request, function (err, data) {
        var respBody = new Buffer.from("你好,世界!");
        response.setStatusCode(200)
        response.setHeader('content-type', 'text/html')
        response.send(respBody)
    })
};           

d.按下 esc 鍵進入指令模式,輸入 :wq 儲存并退出 vim。

9.執行 fun deploy -y 指令部署應用到函數計算服務。

fun deploy -y           
5 分鐘上手函數計算

至此,我們完成了一個 HTTP 觸發器的函數部署。此時,我們可以打開 HTTP 觸發器的預設 URL,浏覽器會以檔案形式将函數響應内容下載下傳到本地,您可以參考步驟四使用控制台線上調試。或者您可以綁定一個自定義域名以避免該問題,請參見

綁定自定義域名

繼續閱讀