使用函數(shù)計算,您無需采購和管理服務器等基礎設施,只需編寫并上傳代碼或鏡像,就可以實現(xiàn)彈性可靠的應用。本文介紹如何在函數(shù)計算控制臺快速開發(fā)一個簡單的Serverless Hello World函數(shù)。
背景信息
通過函數(shù)計算控制臺快速創(chuàng)建函數(shù)的流程包括:開通函數(shù)計算服務、創(chuàng)建服務、創(chuàng)建函數(shù)和執(zhí)行函數(shù)。
服務(Service)是函數(shù)計算的基本資源單位。您可以在服務級別上授權、配置日志和創(chuàng)建函數(shù)等。函數(shù)(Function)是調度與運行的基本單位,更是一段代碼的處理邏輯。您需要根據函數(shù)計算提供的函數(shù)接口形式編寫代碼,并將代碼以函數(shù)的形式部署到函數(shù)計算。函數(shù)計算中的服務對應于軟件應用架構領域中的微服務。在函數(shù)計算平臺構建應用時,首先根據需求將業(yè)務邏輯抽象為微服務,然后再實現(xiàn)為函數(shù)計算中的服務。
前提條件
您已成功注冊阿里云賬號,并完成實名認證。具體信息,請參見賬號注冊(PC端)。
操作視頻
操作步驟
本文以使用內置運行時創(chuàng)建和使用自定義運行時創(chuàng)建函數(shù)的方式為例,介紹如何在函數(shù)計算控制臺創(chuàng)建函數(shù)。
步驟一:開通函數(shù)計算服務
訪問函數(shù)計算首頁。
單擊管理控制臺,根據頁面提示單擊領取試用套餐并開通,然后單擊立即購買即可自動開通服務,進入函數(shù)計算控制臺。
說明建議您使用阿里云賬號開通服務,RAM用戶使用服務。
如果您之前已開通過函數(shù)計算服務,頁面將直接跳轉至函數(shù)計算控制臺。
可選:首次登錄用戶,界面彈出推薦您創(chuàng)建 AliyunFcDefaultRole 默認角色對話框,單擊創(chuàng)建,頁面跳轉至角色快捷創(chuàng)建頁面,為您的賬號創(chuàng)建默認角色AliyunFCDefaultRole。
授權成功
授權成功即函數(shù)計算具有訪問云資源的權限。
授權失敗
當您授權失敗后您需要判斷您的賬號是否有授權能力。
如果您使用的是RAM用戶并且沒有創(chuàng)建函數(shù)計算FC默認角色的權限,您需要通過阿里云賬號進入角色快捷創(chuàng)建頁面進行授權操作。授權成功后,您通過RAM用戶再次登錄函數(shù)計算控制臺時將不再提示您進行授權。
如果您使用的是阿里云賬號或者RAM用戶已有創(chuàng)建函數(shù)計算FC默認角色的權限,授權失敗的原因可能是由于一些功能無法授權造成的。但函數(shù)計算仍可以正常使用。如果您仍需授予系統(tǒng)默認角色,請加入釘釘用戶群(釘釘群號11721331)咨詢。
關于權限管理的詳細信息,請參見權限管理。
步驟二:創(chuàng)建服務
- 登錄函數(shù)計算控制臺,在左側導航欄,單擊服務及函數(shù)。
- 在頂部菜單欄,選擇地域,然后在服務列表頁面,單擊創(chuàng)建服務。
在創(chuàng)建服務面板,填寫服務名稱和描述,并按需設置以下配置項,然后單擊確定。
配置項
說明
示例
日志功能
是否啟用阿里云日志服務。取值說明如下:
啟用:函數(shù)的執(zhí)行日志被持久化保存到日志服務,方便您代碼調試、故障分析和數(shù)據分析等。
禁用:函數(shù)的執(zhí)行日志將無法通過日志服務存儲和查詢。
啟用
高級配置
鏈路追蹤功能
是否啟用阿里云鏈路追蹤功能。取值說明如下:
啟用:您可以使用Jaeger上傳鏈路信息,來跟蹤函數(shù)的執(zhí)行,快速分析和診斷Serverless架構下的性能瓶頸。更多信息,請參見鏈路追蹤簡介。
禁用:不啟用鏈路追蹤功能。
啟用
服務角色
配置服務中函數(shù)所使用的角色,使函數(shù)可以獲得角色所擁有的權限。更多信息,請參見授予函數(shù)計算訪問其他云服務的權限。
AliyunFCDefaultRole
允許訪問 VPC
是否允許函數(shù)訪問VPC內資源。更多信息,請參見配置網絡。
是
專有網絡
允許訪問 VPC選擇是時必填。創(chuàng)建新的VPC或在下拉列表中選擇要訪問的VPC ID。
fc.auto.create.vpc.1632317****
交換機
允許訪問 VPC選擇是時必填。創(chuàng)建新的交換機或在下拉列表中選擇交換機ID。
fc.auto.create.vswitch.vpc-bp1p8248****
安全組
允許訪問 VPC選擇是時必填。創(chuàng)建新的安全組或在下拉列表中選擇安全組。
fc.auto.create.SecurityGroup.vsw-bp15ftbbbbd****
允許函數(shù)訪問公網
是否允許函數(shù)訪問公網。關閉后,當前服務中的函數(shù)將無法通過函數(shù)計算的默認網卡訪問公網。
重要使用固定公網IP地址功能時,您必須關閉允許函數(shù)訪問公網,否則配置的固定公網IP地址不生效。更多信息,請參見配置固定公網IP地址。
是
創(chuàng)建完成后,在服務及函數(shù)頁面的服務列表,查看已創(chuàng)建的服務及其配置信息。
步驟三:創(chuàng)建函數(shù)
- 登錄函數(shù)計算控制臺,在左側導航欄,單擊服務及函數(shù)。
- 在頂部菜單欄,選擇地域,然后在服務列表頁面,單擊目標服務。
- 在函數(shù)管理頁面,單擊創(chuàng)建函數(shù)。
在創(chuàng)建函數(shù)頁面,按需選擇創(chuàng)建函數(shù)的方式,配置以下配置項,然后單擊創(chuàng)建。
說明本文以使用內置運行時創(chuàng)建和使用自定義運行時創(chuàng)建方式為例進行說明。如果函數(shù)計算提供的環(huán)境無法滿足您的業(yè)務需求,您可以使用容器鏡像創(chuàng)建方式部署函數(shù)。具體操作,請參見創(chuàng)建Custom Container函數(shù)。
基本設置:配置函數(shù)的基本信息,包括函數(shù)名稱和請求處理程序類型。請求處理程序類型包括以下兩種。
處理事件請求:通過定時器、調用API/SDK或其他阿里云服務的觸發(fā)器來觸發(fā)函數(shù)執(zhí)行。
處理 HTTP 請求:用于處理HTTP請求或WebSocket請求的函數(shù)。如果您的使用場景是Web場景,建議您使用自定義運行時創(chuàng)建。
函數(shù)代碼:配置函數(shù)的運行環(huán)境和代碼相關信息。
配置項
說明
示例
運行環(huán)境
選擇您熟悉的語言,例如Python、Java、PHP或Node.js等。函數(shù)計算支持的運行環(huán)境,請參見函數(shù)計算支持的函數(shù)運行環(huán)境列表。
Node.js14
代碼上傳方式
選擇上傳函數(shù)代碼到函數(shù)計算的方式。
使用示例代碼:默認方式,您可以根據業(yè)務需要選擇函數(shù)計算為您提供的創(chuàng)建函數(shù)的示例代碼。
通過 ZIP 包上傳代碼:選擇函數(shù)代碼ZIP包并上傳。
通過 JAR 包上傳代碼:選擇函數(shù)代碼JAR包并上傳。
通過文件夾上傳代碼:選擇包含函數(shù)代碼的文件夾并上傳。
通過 OSS 上傳代碼:選擇上傳函數(shù)代碼的Bucket 名稱和文件名稱。
說明代碼上傳方式選擇使用示例代碼時,不需要修改請求處理程序。當選擇其他代碼上傳方式時,則需要根據實際情況修改請求處理程序,否則函數(shù)執(zhí)行時會報錯。
當運行環(huán)境選擇為Java 8或Java 11時,只支持使用示例代碼、通過 JAR 包上傳代碼和通過 OSS 上傳代碼。其余運行環(huán)境支持使用示例代碼、通過 ZIP 包上傳代碼、通過文件夾上傳代碼和通過 OSS 上傳代碼。
使用示例代碼
啟動命令
說明僅當您選擇使用自定義運行時創(chuàng)建函數(shù)時,需設置此配置項。
程序的啟動命令。如果不配置啟動命令,您需要在代碼的根目錄手動創(chuàng)建一個名稱為bootstrap的啟動腳本,您的程序通過此腳本來啟動。
npm run start
監(jiān)聽端口
說明僅當您選擇使用自定義運行時創(chuàng)建函數(shù)時,需設置此配置項。
您的代碼中的HTTP Server所監(jiān)聽的端口。
9000
高級配置:配置函數(shù)的實例相關信息和函數(shù)執(zhí)行超時時間等。
配置項
說明
示例
規(guī)格方案
根據您的業(yè)務情況,選擇或手動輸入合理的vCPU規(guī)格和內存規(guī)格組合。關于各資源使用的計費詳情,請參見計費概述。
說明vCPU大?。▎挝粸楹耍┡c內存大?。▎挝粸镚B)的比例必須設置在1∶1到1∶4之間。
0.35核,512 MB
臨時硬盤大小
根據您的業(yè)務情況,選擇臨時存儲文件的硬盤大小。
取值說明如下。
512 MB:默認值。不計費,函數(shù)計算為您提供512 MB以內的硬盤免費使用額度。
10 GB:按9.5 GB進行計費。
說明臨時硬盤中所有目錄可寫,共享臨時硬盤的空間。
臨時硬盤大小與底層執(zhí)行函數(shù)的實例生命周期一致,實例被系統(tǒng)回收后,硬盤上的數(shù)據也會消失。如您需要對文件進行持久化保存,可以選擇掛載NAS或OSS。具體操作,請參見配置NAS文件系統(tǒng)和配置OSS文件系統(tǒng)。
512 MB
實例并發(fā)度
設置函數(shù)實例的并發(fā)度。具體信息,請參見設置實例并發(fā)度。
10
執(zhí)行超時時間
設置超時時間。執(zhí)行超時時間默認為60秒,最長為86400秒。
說明超過設置的超時時間,函數(shù)將以執(zhí)行失敗結束。如需更長的超時時間限制,請加入釘釘用戶群(釘釘群號11721331)申請。
60
請求處理程序
設置請求處理程序,函數(shù)計算的運行時會加載并調用您的請求處理程序處理請求。選擇使用自定義運行時創(chuàng)建和使用容器鏡像創(chuàng)建函數(shù)時,無需設置此配置項。
說明代碼上傳方式選擇使用示例代碼時,不需要修改請求處理程序。當選擇其他代碼上傳方式時,則需要根據實際情況修改請求處理程序,否則函數(shù)執(zhí)行時會報錯。
index.handler
時區(qū)
選擇函數(shù)的時區(qū)。此處設置函數(shù)的時區(qū)后,將自動為函數(shù)添加一條環(huán)境變量TZ,其值為您設置的目標時區(qū)。
UTC
環(huán)境變量:設置函數(shù)運行環(huán)境中的環(huán)境變量。更多信息,請參見環(huán)境變量。
觸發(fā)器配置:設置函數(shù)的觸發(fā)器,您可以使用觸發(fā)器觸發(fā)函數(shù)執(zhí)行。更多信息,請參見觸發(fā)器管理。
步驟四:執(zhí)行函數(shù)
- 登錄函數(shù)計算控制臺,在左側導航欄,單擊服務及函數(shù)。
- 在頂部菜單欄,選擇地域,然后在服務列表頁面,單擊目標服務。
在函數(shù)管理頁面,單擊目標函數(shù),然后選擇函數(shù)代碼頁簽,可以查看函數(shù)的代碼。
本文以使用內置運行時創(chuàng)建為例,代碼示例如下:
說明您可以在代碼編輯器內編輯代碼實現(xiàn)二次開發(fā),然后需要單擊部署代碼,代碼部署成功后編輯的代碼才會生效。
'use strict'; exports.handler = (event, context, callback) => { console.log('hello world'); callback(null, 'hello world'); }
單擊測試函數(shù)。
執(zhí)行完畢后,您可以在函數(shù)代碼頁簽,查看執(zhí)行結果和詳細的日志信息。
相關文檔
函數(shù)計算為您提供豐富的示例代碼,可以幫助您在創(chuàng)建或者配置函數(shù)時,快速選擇所需要的函數(shù)代碼。具體示例代碼,請參見示例代碼。
如果您的函數(shù)在執(zhí)行時報錯"Unable to import module 'index'",需要先確認請求處理程序(函數(shù)入口)配置是否錯誤,然后確認依賴是否安裝,具體請參見為函數(shù)安裝第三方依賴。
函數(shù)計算提供通過Serverless Devs工具構建應用、調試應用和部署應用。具體操作,請參見通過Serverless Devs工具管理函數(shù)資源。
函數(shù)計算支持直接觸發(fā)函數(shù)和通過事件觸發(fā)函數(shù)。關于事件觸發(fā)函數(shù),請參見觸發(fā)器簡介。