全部產品
Search
文件中心

Function Compute:快速建立函數

更新時間:Jan 15, 2025

使用Function Compute,您無需採購和管理伺服器等基礎設施,只需編寫並上傳代碼或鏡像,就可以實現彈性可靠的應用。本文介紹如何在Function Compute控制台快速開發一個簡單的Serverless Hello World函數。

背景資訊

通過Function Compute控制台快速建立函數的流程包括:開通Function Compute服務、建立服務、建立函數和執行函數。

服務(Service)是Function Compute的基本資源單位。您可以在服務等級上授權、配置日誌和建立函數等。函數(Function)是調度與啟動並執行基本單位,更是一段代碼的處理邏輯。您需要根據Function Compute提供的函數介面形式編寫代碼,並將代碼以函數的形式部署到Function ComputeFunction Compute中的服務對應於軟體應用架構領域中的微服務。在Function Compute平台構建應用時,首先根據需求將商務邏輯抽象為微服務,然後再實現為Function Compute中的服務。

前提條件

您已成功註冊阿里雲帳號,並完成實名認證。

操作步驟

本文以使用內建運行時建立使用自訂運行時建立函數的方式為例,介紹如何在Function Compute控制台建立函數。

步驟一:開通Function Compute服務

  1. 訪問Function Compute首頁

  2. 單擊控制台,根據頁面提示單擊領取試用套餐並開通,然後單擊立即購買即可自動開通服務,進入Function Compute控制台

    說明
    • 建議您使用阿里雲帳號開通服務,RAM使用者使用服務。

    • 如果您之前已開通過Function Compute服務,頁面將直接跳轉至Function Compute控制台

  3. 可選:首次登入使用者,介面彈出推薦您建立 AliyunFcDefaultRole 預設角色對話方塊,單擊建立,頁面跳轉至角色快捷建立頁面,為您的帳號建立預設角色AliyunFCDefaultRole

    • 授權成功

      授權成功即Function Compute具有訪問雲資源的許可權。

    • 授權失敗

      當您授權失敗後您需要判斷您的帳號是否有授權能力。

      • 如果您使用的是RAM使用者並且沒有建立Function ComputeFC預設角色的許可權,您需要通過阿里雲帳號進入角色快捷建立頁面進行授權操作。授權成功後,您通過RAM使用者再次登入Function Compute控制台時將不再提示您進行授權。

      • 如果您使用的是阿里雲帳號或者RAM使用者已有建立Function ComputeFC預設角色的許可權,授權失敗的原因可能是由於一些功能無法授權造成的。但Function Compute仍可以正常使用。如果您仍需授予系統預設角色,請加入DingTalk使用者群(DingTalk群號64970014484)諮詢。

    關於許可權管理的詳細資料,請參見許可權管理

步驟二:建立服務

  1. 登入Function Compute控制台,在左側導覽列,單擊服務及函數

  2. 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊建立服務

  3. 建立服務面板,填寫服務名稱和描述,並按需設定以下配置項,然後單擊確定

    配置項

    說明

    樣本

    日誌功能

    是否啟用阿里雲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地址

    建立完成後,在服務及函數頁面的服務列表,查看已建立的服務及其配置資訊。

步驟三:建立函數

  1. 登入Function Compute控制台,在左側導覽列,單擊服務及函數

  2. 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。

  3. 函數管理頁面,單擊建立函數

  4. 建立函數頁面,按需選擇建立函數的方式,配置以下配置項,然後單擊建立

    說明

    本文以使用內建運行時建立使用自訂運行時建立方式為例進行說明。如果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 8Java 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

    • 環境變數:設定函數運行環境中的環境變數。更多資訊,請參見環境變數

    • 觸發器配置:設定函數的觸發器,您可以使用觸發器觸發函數執行。更多資訊,請參見觸發器管理

步驟四:執行函數

  1. 登入Function Compute控制台,在左側導覽列,單擊服務及函數

  2. 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。

  3. 函數管理頁面,單擊目標函數,然後選擇函數代碼頁簽,可以查看函數的代碼。

    本文以使用內建運行時建立為例,程式碼範例如下:

    說明

    您可以在代碼編輯器內編輯代碼實現二次開發,然後需要單擊部署代碼,代碼部署成功後編輯的代碼才會生效。

    'use strict';
    
    exports.handler = (event, context, callback) => {
      console.log('hello world');
      callback(null, 'hello world');
    }
    
  4. 單擊測試函數

    執行完畢後,您可以在函數代碼頁簽,查看執行結果和詳細的日誌資訊。

相關文檔

  • Function Compute為您提供豐富的範例程式碼,可以協助您在建立或者配置函數時,快速選擇所需要的函數代碼。具體範例程式碼,請參見範例程式碼

  • 如果您的函數在執行時報錯"Unable to import module 'index'",需要先確認請求處理常式(函數入口)配置是否錯誤,然後確認依賴是否安裝,具體請參見為函數安裝第三方依賴

  • Function Compute提供通過Serverless Devs工具構建應用、調試應用和部署應用。具體操作,請參見通過Serverless Devs管理函數

  • Function Compute支援直接觸發函數和通過事件觸發函數。關於事件觸發函數,請參見觸發器簡介

常見問題