全部產品
Search
文件中心

Function Compute:功能特性

更新時間:Jul 06, 2024

Function Compute是一款事件驅動的全託管計算服務。本文列舉了Function Compute常見應用情境以及對應的功能特性,您可以結合您的業務需求選擇合適的情境。

功能集

功能

功能描述

參考文檔

服務管理

管理服務

服務是Function Compute資源管理的單位。建立函數前必須先建立服務,同一個服務下的所有函數共用一些相同的設定,例如服務授權和日誌配置等。

管理服務

管理版本

您可以為自己的服務發布一個或多個版本。版本相當於服務的快照,包括服務的配置、服務內的函數代碼及函數配置,不包括觸發器。

管理版本

管理別名

您可以為服務的版本建立別名。別名可以理解為指向特定版本的指標。您可以利用別名來輕鬆實現發布、復原以及灰階發布等功能。別名無法脫離服務或版本單獨存在。使用別名訪問服務或函數時,Function Compute會將別名解析為其指向的版本,調用方無需瞭解別名指向的具體版本。

管理別名

灰階發布

通過線上新舊版本共存的灰階發布方式,小範圍驗證新版本的能力,逐步切換流量到新版本。同時,可以快速地切換主要版本和灰階版本,只需變更別名指向的版本號碼,即可完成新舊版本的平滑切換。

使用版本和別名實現灰階發布

配置網路

您在Function Compute中建立的函數,預設可以通過公網調用,無法通過VPC調用。如果您需要函數能夠訪問VPC內的資源,或允許指定的VPC來調用函數,那麼您需要手動為服務配置網路和許可權。

配置網路

配置日誌

通過Log Service儲存函數日誌,需要在函數對應的服務中配置記錄項目和日誌庫,並授予該服務訪問Log Service的許可權。函數日誌會列印到配置的日誌庫中,同一地區的同一個服務下的所有函數日誌都會列印到同一個日誌庫中。

配置日誌

配置儲存

您可以為Function Compute的服務配置NAS掛載或OSS掛載,配置成功後,該服務下的函數可以像使用本地檔案系統一樣使用NAS或OSS儲存服務。

設定標籤

Function Compute支援將相同作用的服務資源通過標籤Tag歸類,便於搜尋和資源彙總。您還可以通過標籤功能將服務進行分組,可以實現不同角色對不同分組的服務擁有不同的操作許可權。

管理標籤

函數管理

管理函數

Function Compute的資源調度與運行以函數為單位。函數必須從屬於服務,同一個服務下可以建立多個函數,這些函數共用一些相同的設定,例如服務授權和日誌配置等。但這些函數彼此相互獨立,互不影響。

管理函數

管理函數層

層可以為您提供公用依賴庫、運行時環境及函數擴充等發布與部署能力。您可以將函數依賴的公用庫提煉到層或者使用Function Compute官方公用層,以減少部署或更新函數時的程式碼封裝體積。

環境變數

您可以使用環境變數,在不修改代碼的前提下靈活調整函數的行為。

環境變數

自訂DNS

自訂DNS功能適用於加速網站訪問等情境。您可以使用指定的DNS伺服器提供DNS解析服務。

在函數中配置自訂DNS

函數執行個體管理

執行個體生命週期

Function Compute基於傳統常駐應用所拓展的運行時擴充功能,能夠有效協助您消除閑置成本。每一個擴充函數對應一個回調程式,包括initializer回調、PreFreeze回調和PreStop回調。

函數執行個體生命週期

單一實例多並發

為了進一步減少執行個體資源使用量,最佳化資源成本,降低冷啟動,Function Compute支援單一實例多並發能力。預設情況下,函數的執行個體並發度為1,即一個執行個體同時只會處理一個請求。當您設定單一實例並發度大於1後,Function Compute在Auto Scaling時,充分利用完一個執行個體的並發度後才會建立新的執行個體。

設定執行個體並發度

健全狀態檢查

Function Compute支援為函數執行個體設定周期性健全狀態檢查,避免請求訊息被分配至異常執行個體而導致請求失敗。

設定執行個體自訂健全狀態檢查

執行個體命令列

執行個體命令列操作功能能夠支援在執行個體的真實運行環境中執行指定命令,例如登入進入執行個體查看執行個體環境資訊,或者使用Profiling或Coredump等工具收集上下文資訊來最佳化效能等。

函數執行個體命令列操作

函數調用

同步調用

當您同步調用一個函數時,事件將直接觸發函數,Function Compute會運行該函數並等待響應。當函數調用完成後,Function Compute會將執行結果直接返回給您,例如返回結果、執行摘要和日誌輸出。

同步調用

非同步呼叫

Function Compute系統接收非同步呼叫請求後,將請求持久化後會立即返迴響應,而不是等待請求執行完成後再返回。

非同步呼叫

非同步任務

當您對函數發起非同步呼叫時,相關請求會被持久化儲存到Function Compute內部隊列中,然後被可靠地處理。如果您想追蹤並儲存非同步呼叫各個階段的狀態,實現更豐富的任務控制和可觀測能力,可以選擇開啟任務模式處理非同步請求。

功能概覽

按量執行個體伸縮

為了防止過度調用函數導致費用失控,Function Compute對每個帳號在當前地區中按量執行個體數設定限制。另外,Function Compute還為函數的調用提供了更細粒度的按量調用執行個體數限制。

函數級按量執行個體伸縮控制

觸發器管理

管理觸發器

Function Compute提供一種事件驅動的計算模型。函數的執行是由事件驅動的。您可以在指定函數中建立觸發器,該觸發器描述了一組規則,當某個事件滿足這些規則,事件來源就會觸發關聯的函數。

自訂網域名

管理自訂網域名

您可以為應用綁定自訂網域名,可以實現通過固定網域名稱訪問應用。

配置自訂網域名

開啟Web Application Firewall

阿里雲Web Application Firewall(簡稱WAF 3.0)支援對函數或者應用的業務流量進行惡意特徵識別,對流量進行清洗和過濾後,將正常和安全的流量回源至後端函數,避免函數被惡意侵入。

開啟Web Application Firewall

多語言運行時

代碼開發

Function Compute支援Java、Python、Node.js、PHP、Go及.NET Core語言,並且支援通過Custom Runtime的方式來構建其他語言的Runtime,例如Go Custom Runtime、Ruby Custom Runtime和PowerShell Custom Runtime等。為了豐富使用情境,還提供自訂鏡像作為運行環境的能力。

其中,Python、Node.js、PHP除了支援通過開發人員工具部署和調用SDK部署,還支援在控制台直接調試代碼。

代碼開發概述

編程模式擴充

Function Compute基於傳統常駐應用所拓展的運行時擴充功能,協助您消除閑置成本。

編程模型擴充

應用中心

應用

阿里雲Serverless應用中心提供了情境化應用建立能力以及應用匯入能力。

在應用中心的建立應用頁面,可以看到多種情境以及情境化應用。您可以根據業務情況選擇合適的應用。

管理應用

環境

環境提供基礎設施的管理能力。您可以通過環境隔離服務,例如不同地區、不同VPC間服務隔離,實現生產服務的高可用或者低延遲。

管理環境

流水線

Serverless應用中心提供基本的流水線能力,提供可編輯的、高自由度的流程運行能力,協助使用者將代碼發布至Serverless應用。

監控警示

監控指標

您可以在Function Compute控制台查詢Function Compute資源概覽指標以及資源所在地區、服務和函數維度監控指標詳情。

監控指標

執行個體層級指標

Function Compute提供執行個體層級指標,通過執行個體層級指標您可以查看vCPU使用方式、記憶體使用量情況、執行個體網路情況和執行個體內請求數等核心指標資訊。

執行個體層級指標

鏈路追蹤

Function Compute與鏈路追蹤整合,使您能夠跟蹤函數的執行,協助您快速分析和診斷Serverless架構下的效能瓶頸,提高Serverless情境的開發診斷效率。

開發人員工具

Serverless Devs

通過Serverless Devs,您不僅可以可插拔式地使用Serverless的服務和架構,也可以參與組件和外掛程式的開發,提高營運效率。同時,您還可以更簡單、快速地開發、建立、測試和部署專案,實現專案全生命週期的管理。

什麼是Serverless Devs

WebIDE

WebIDE是Function Compute提供的線上開發IDE,提供接近原生VSCode的雲端開發體驗。

什麼是WebIDE

帳號管理

配額限制

Function Compute設定相關資源的使用限制,避免了誤配或者代碼有誤造成費用不可控的問題。

使用限制

許可權管理

Function Compute訪問阿里雲其他雲端服務或者您需通過事件來源觸發函數執行時,可以為Function Compute或者該事件來源授予相關許可權。

RAM授權

藉助存取控制的RAM使用者,您可以實現阿里雲帳號和RAM使用者的許可權分割,避免因暴露阿里雲帳號密鑰,造成安全風險。按需為RAM使用者賦予許可權後,您可以限定擁有指定許可權的RAM使用者在Function Compute控制台訪問或管理資源。