使用Function Compute,您無需採購和管理伺服器等基礎設施,只需編寫並上傳代碼或鏡像,就可以實現彈性可靠的應用。本文介紹如何在Function Compute控制台快速開發一個簡單的Serverless Hello World函數。
背景資訊
通過Function Compute控制台快速建立函數的流程包括:開通Function Compute服務、建立服務、建立函數和執行函數。
服務(Service)是Function Compute的基本資源單位。您可以在服務等級上授權、配置日誌和建立函數等。函數(Function)是調度與啟動並執行基本單位,更是一段代碼的處理邏輯。您需要根據Function Compute提供的函數介面形式編寫代碼,並將代碼以函數的形式部署到Function Compute。Function Compute中的服務對應於軟體應用架構領域中的微服務。在Function Compute平台構建應用時,首先根據需求將商務邏輯抽象為微服務,然後再實現為Function Compute中的服務。
前提條件
您已成功註冊阿里雲帳號,並完成實名認證。
操作步驟
本文以使用內建運行時建立和使用自訂運行時建立函數的方式為例,介紹如何在Function Compute控制台建立函數。
步驟一:開通Function Compute服務
單擊控制台,根據頁面提示單擊領取試用套餐並開通,然後單擊立即購買即可自動開通服務,進入Function Compute控制台。
說明建議您使用阿里雲帳號開通服務,RAM使用者使用服務。
如果您之前已開通過Function Compute服務,頁面將直接跳轉至Function Compute控制台。
可選:首次登入使用者,介面彈出推薦您建立 AliyunFcDefaultRole 預設角色對話方塊,單擊建立,頁面跳轉至角色快捷建立頁面,為您的帳號建立預設角色AliyunFCDefaultRole。
授權成功
授權成功即Function Compute具有訪問雲資源的許可權。
授權失敗
當您授權失敗後您需要判斷您的帳號是否有授權能力。
如果您使用的是RAM使用者並且沒有建立Function ComputeFC預設角色的許可權,您需要通過阿里雲帳號進入角色快捷建立頁面進行授權操作。授權成功後,您通過RAM使用者再次登入Function Compute控制台時將不再提示您進行授權。
如果您使用的是阿里雲帳號或者RAM使用者已有建立Function ComputeFC預設角色的許可權,授權失敗的原因可能是由於一些功能無法授權造成的。但Function Compute仍可以正常使用。如果您仍需授予系統預設角色,請加入DingTalk使用者群(DingTalk群號64970014484)諮詢。
關於許可權管理的詳細資料,請參見許可權管理。
步驟二:建立服務
登入Function Compute控制台,在左側導覽列,單擊服務及函數。
在頂部功能表列,選擇地區,然後在服務列表頁面,單擊建立服務。
在建立服務面板,填寫服務名稱和描述,並按需設定以下配置項,然後單擊確定。
配置項
說明
樣本
日誌功能
是否啟用阿里雲Log Service。取值說明如下:
啟用:函數的執行日誌被持久化儲存到Log Service,方便您代碼調試、故障分析和資料分析等。
禁用:函數的執行日誌將無法通過Log Service儲存和查詢。
啟用
進階配置
鏈路追蹤功能
是否啟用阿里雲鏈路追蹤功能。取值說明如下:
啟用:您可以使用Jaeger上傳鏈路資訊,來跟蹤函數的執行,快速分析和診斷Serverless架構下的效能瓶頸。更多資訊,請參見鏈路追蹤簡介。
禁用:不啟用鏈路追蹤功能。
啟用
服務角色
佈建服務中函數所使用的角色,使函數可以獲得角色所擁有的許可權。更多資訊,請參見授予Function Compute訪問其他雲端服務的許可權。
AliyunFCDefaultRole
允許訪問 VPC
是否允許函數訪問VPC內資源。更多資訊,請參見配置網路。
是
專用網路
允許訪問 VPC選擇是時必填。建立新的VPC或在下拉式清單中選擇要訪問的VPC ID。
fc.auto.create.vpc.1632317****
交換器
允許訪問 VPC選擇是時必填。建立新的交換器或在下拉式清單中選擇交換器ID。
fc.auto.create.vswitch.vpc-bp1p8248****
安全性群組
允許訪問 VPC選擇是時必填。建立新的安全性群組或在下拉式清單中選擇安全性群組。
fc.auto.create.SecurityGroup.vsw-bp15ftbbbbd****
允許函數訪問公網
是否允許函數訪問公網。關閉後,當前服務中的函數將無法通過Function Compute的預設網卡訪問公網。
重要使用固定公網IP地址功能時,您必須關閉允許函數訪問公網,否則配置的固定公網IP地址不生效。更多資訊,請參見配置固定公網IP地址。
是
建立完成後,在服務及函數頁面的服務列表,查看已建立的服務及其配置資訊。
步驟三:建立函數
登入Function Compute控制台,在左側導覽列,單擊服務及函數。
在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。
在函數管理頁面,單擊建立函數。
在建立函數頁面,按需選擇建立函數的方式,配置以下配置項,然後單擊建立。
說明本文以使用內建運行時建立和使用自訂運行時建立方式為例進行說明。如果Function Compute提供的環境無法滿足您的業務需求,您可以使用容器鏡像建立方式部署函數。具體操作,請參見建立Custom Container函數。
基本設定:配置函數的基本資料,包括函數名稱和請求處理常式類型。請求處理常式類型包括以下兩種。
處理事件請求:通過定時器、調用API/SDK或其他阿里雲服務的觸發器來觸發函數執行。
處理 HTTP 要求:用於處理HTTP請求或WebSocket請求的函數。如果您的使用情境是Web情境,建議您使用自訂運行時建立。
函數代碼:配置函數的運行環境和代碼相關資訊。
配置項
說明
樣本
運行環境
選擇您熟悉的語言,例如Python、Java、PHP或Node.js等。Function Compute支援的運行環境,請參見Function Compute支援的函數運行環境列表。
Node.js14
代碼上傳方式
選擇上傳函數代碼到Function Compute的方式。
使用範例程式碼:預設,您可以根據業務需要選擇Function Compute為您提供的建立函數的範例程式碼。
通過 ZIP 包上傳代碼:選擇函數代碼ZIP包並上傳。
通過 JAR 包上傳代碼:選擇函數代碼JAR包並上傳。
通過檔案夾上傳代碼:選擇包含函數代碼的檔案夾並上傳。
通過 OSS 上傳代碼:選擇上傳函數代碼的Bucket 名稱和檔案名稱。
說明代碼上傳方式選擇使用範例程式碼時,不需要修改請求處理常式。當選擇其他代碼上傳方式時,則需要根據實際情況修改請求處理常式,否則函數執行時會報錯。
當運行環境選擇為Java 8或Java 11時,只支援使用範例程式碼、通過 JAR 包上傳代碼和通過 OSS 上傳代碼。其餘運行環境支援使用範例程式碼、通過 ZIP 包上傳代碼、通過檔案夾上傳代碼和通過 OSS 上傳代碼。
使用範例程式碼
啟動命令
說明僅當您選擇使用自訂運行時建立函數時,需設定此配置項。
程式的啟動命令。如果不配置啟動命令,您需要在代碼的根目錄手動建立一個名稱為bootstrap的啟動指令碼,您的程式通過此指令碼來啟動。
npm run start
監聽連接埠
說明僅當您選擇使用自訂運行時建立函數時,需設定此配置項。
您的代碼中的HTTP Server所監聽的連接埠。
9000
進階配置:配置函數的執行個體相關資訊和函數執行逾時時間等。
配置項
說明
樣本
規格方案
根據您的業務情況,選擇或手動輸入合理的vCPU規格和記憶體規格組合。關於各資源使用的計費詳情,請參見計費概述。
說明vCPU大小(單位為核)與記憶體大小(單位為GB)的比例必須設定在1∶1到1∶4之間。
0.35核,512 MB
臨時硬碟大小
根據您的業務情況,選擇臨時隱藏檔的硬碟大小。
取值說明如下。
512 MB:預設值。不計費,Function Compute為您提供512 MB以內的硬碟免費使用額度。
10 GB:按9.5 GB進行計費。
說明臨時硬碟中所有目錄可寫,共用臨時硬碟的空間。
臨時硬碟大小與底層執行函數的執行個體生命週期一致,執行個體被系統回收後,硬碟上的資料也會消失。如您需要對檔案進行持久化儲存,可以選擇掛載NAS或OSS。具體操作,請參見配置NAS檔案系統和配置OSS檔案系統。
512 MB
執行個體並發度
設定函數執行個體的並發度。具體資訊,請參見設定執行個體並發度。
10
執行逾時時間
設定逾時時間。執行逾時時間預設為60秒,最長為86400秒。
60
請求處理常式
佈建要求處理常式,Function Compute的運行時會載入並調用您的請求處理常式處理請求。選擇使用自訂運行時建立和使用容器鏡像建立函數時,無需設定此配置項。
說明代碼上傳方式選擇使用範例程式碼時,不需要修改請求處理常式。當選擇其他代碼上傳方式時,則需要根據實際情況修改請求處理常式,否則函數執行時會報錯。
index.handler
時區
選擇函數的時區。此處設定函數的時區後,將自動為函數添加一條環境變數TZ,其值為您設定的目標時區。
UTC
環境變數:設定函數運行環境中的環境變數。更多資訊,請參見環境變數。
觸發器配置:設定函數的觸發器,您可以使用觸發器觸發函數執行。更多資訊,請參見觸發器管理。
步驟四:執行函數
登入Function Compute控制台,在左側導覽列,單擊服務及函數。
在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。
在函數管理頁面,單擊目標函數,然後選擇函數代碼頁簽,可以查看函數的代碼。
本文以使用內建運行時建立為例,程式碼範例如下:
說明您可以在代碼編輯器內編輯代碼實現二次開發,然後需要單擊部署代碼,代碼部署成功後編輯的代碼才會生效。
'use strict'; exports.handler = (event, context, callback) => { console.log('hello world'); callback(null, 'hello world'); }
單擊測試函數。
執行完畢後,您可以在函數代碼頁簽,查看執行結果和詳細的日誌資訊。
相關文檔
Function Compute為您提供豐富的範例程式碼,可以協助您在建立或者配置函數時,快速選擇所需要的函數代碼。具體範例程式碼,請參見範例程式碼。
如果您的函數在執行時報錯"Unable to import module 'index'",需要先確認請求處理常式(函數入口)配置是否錯誤,然後確認依賴是否安裝,具體請參見為函數安裝第三方依賴。
Function Compute提供通過Serverless Devs工具構建應用、調試應用和部署應用。具體操作,請參見通過Serverless Devs管理函數。
Function Compute支援直接觸發函數和通過事件觸發函數。關於事件觸發函數,請參見觸發器簡介。