要創建FunctionGraph函數,首先需要創建函數部署程序包(包含代碼和所有依賴項的文件)。用戶可以自行創建部署程序包或直接在FunctionGraph函數控制臺在線編輯代碼,控制臺將創建并上傳部署程序包,從而實現FunctionGraph函數的創建。用戶在編輯函數代碼時支持類似工程方式的管理,可以創建文件、文件夾并對其進行編輯。如果用戶代碼是上傳zip包的方式,則前端進行相應解壓展示,提供編輯能力。
說明
?用戶在本地開發程序之后打包,必須是ZIP包(Java、Node.js、Python、Go)或者JAR包(Java),上傳至FunctionGraph即可運行,無需其它的部署操作。
制作ZIP包的時候,單函數入口文件必須在根目錄,保證解壓后,直接出現函數執行入口文件,才能正常運行。
對于Go runtime,必須在編譯之后打zip包,編譯后的動態庫文件名稱必須與函數執行入口的插件名稱保持一致,例如:動態庫名稱為testplugin.so,則“函數執行入口”命名為testplugin.Handler。
對于Java runtime,由于Java是編譯型語言,所以不能在線編輯代碼。如果函數沒有引入其他第三方件,可以選擇上傳函數jar包。如果函數中引入其他三方件,則需要制作包含所有依賴三方件和函數jar的zip包,選擇上傳zip文件。
FunctionGraph函數支持的上傳程序包的方式下表。
代碼上傳方式說明
| 運行時 | 在線編輯 | 上傳ZIP文件 | 上傳JAR包 | 從OBS上傳文件 |
|---|---|---|---|---|
| Node.js | 支持 | 支持 | 不支持 | 支持 |
| Python | 支持 | 支持 | 不支持 | 支持 |
| Java | 不支持 | 支持 | 支持 | 支持 |
| GO | 不支持 | 支持 | 不支持 | 支持 |
| 定制運行時 | 支持 | 支持 | 不支持 | 支持 |
注意上傳代碼時,如果代碼中包含敏感信息(如帳戶密碼等),請您自行加密,以防止信息泄露。
函數代碼上傳方式表
代碼上傳方式說明 操作 在線編輯 用戶在編輯函數代碼時支持類似工程方式的管理,可以創建文件、文件夾并對其進行編輯。如果用戶代碼是上傳zip包的方式,則前端進行相應解壓展示,并支持用戶在函數詳情頁的“代碼”頁簽,進行在線編輯修改。
文件:支持創建文件和文件夾功能。其中包括新建文件,新建文件夾、保存、關閉所有文件功能。
編輯:支持在編碼框中,對代碼進行撤銷、恢復、剪切、復制、粘貼、查找、替換操作。
- 設置:支持設置編碼框中代碼字體大小、自動格式化和編碼框主題顏色。
上傳ZIP文件
在函數詳情頁的“代碼”頁簽,選擇“上傳自 > Zip文件”。
單擊“添加文件”上傳本地代碼至平臺。上傳的zip文件大小限制為50M,如超過50M,請通過OBS上傳。
從OBS上傳文件
在函數詳情頁的“代碼”頁簽,選擇“上傳自 > OBS地址”。
- 單擊“添加文件”上傳本地代碼至平臺。
Node.js程序包
在線編輯
FunctionGraph服務預裝了適用于Node.js的開發工具包,如果自定義代碼只需要軟件開發工具包庫,則可以使用FunctionGraph控制臺的內聯編輯器。使用控制臺可以編輯代碼并將代碼上傳到FunctionGraph,控制臺會將代碼及相關的配置信息壓縮到FunctionGraph服務能夠運行的部署程序包中。
上傳程序包
如果編寫的代碼需要用到其他資源(如使用圖形庫進行圖像處理),則需要先創建FunctionGraph函數部署程序包,然后再使用控制臺上傳部署程序包。Node.js編程語言支持以下兩種方式上傳程序包。
注意
制作zip包的時候,單函數入口文件必須在根目錄,保證解壓后,直接出現函數執行入口文件,才能正常運行。
解壓后的源代碼不能超過1.5G。
- 直接上傳程序包
在創建部署程序包后,可直接從本地上傳ZIP程序包,ZIP程序包大小限制為50MB,如果超過該限制,請使用OBS存儲桶。
更多函數資源的限制,請參見約束與限制。
- 上傳至OBS存儲桶
在創建部署程序包后,可先將.zip文件上傳到要在其中創建FunctionGraph函數的區域中的OBS存儲桶中,然后指定FunctionGraph函數中設置程序包的OBS存儲地址,OBS中ZIP包大小限制為300MB。
更多函數資源的限制,請參見約束與限制。
Python程序包
在線編輯
FunctionGraph服務預裝了適用于Python的開發工具包,如果自定義代碼只需要軟件開發工具包庫,則可以使用FunctionGraph控制臺的內聯編輯器。使用控制臺可以編輯代碼并將代碼上傳到FunctionGraph,控制臺會將代碼及相關的配置信息壓縮到FunctionGraph服務能夠運行的部署程序包中。
使用Python語言在線編輯代碼,需要輸出中文時,請在編輯器中增加如下代碼:
# -*- coding:utf-8 -*-
import json
def handler (event, context):
output = 'Hello message: ' + json.dumps(event,ensure_ascii=False)
return output
上傳程序包
如果編寫的代碼需要用到其他資源(如使用圖形庫進行圖像處理),則需要先創建FunctionGraph函數部署程序包,然后再使用控制臺上傳部署程序包。Python編程語言支持以下兩種方式上傳程序包。
注意
制作zip包的時候,單函數入口文件必須在根目錄,保證解壓后,直接出現函數執行入口文件,才能正常運行。
解壓后的源代碼不能超過1.5G。
用python語言寫代碼時,自己創建的包名不能與python標準庫同名,否則會提示module加載失敗。例如“json”、“lib”,“os”等。
- 直接上傳程序包
在創建部署程序包后,可直接從本地上傳ZIP程序包,ZIP程序包大小限制為50MB,如果超過該限制,請使用OBS存儲桶。
更多函數資源的限制,請參見約束與限制。
- 上傳至OBS存儲桶
在創建部署程序包后,可先將.zip文件上傳到要在其中創建FunctionGraph函數的區域中的OBS存儲桶中,然后指定FunctionGraph函數中設置程序包的OBS存儲地址,OBS中ZIP包大小限制為300MB。
更多函數資源的限制,請參見約束與限制。
Java程序包
由于Java是編譯型語言,所以不能在線編輯代碼,只能上傳程序包,部署程序包可以是.zip文件或獨立的jar文件。
上傳Jar包
- 如果函數沒有引入其他依賴包,可以直接上傳函數jar包。
- 如果函數引入了其他依賴包,可以先將依賴包上傳至OBS桶,創建函數時設置依賴包,并上傳函數jar包。
上傳zip
如果函數中引入其他三方件,也可以制作包含所有依賴三方件和函數jar的zip包,選擇上傳zip文件。
Java編程語言支持以下兩種方式上傳程序包。
注意
制作zip包的時候,單函數入口文件必須在根目錄,保證解壓后,直接出現函數執行入口文件,才能正常運行。
解壓后的源代碼不能超過1.5G。
- 直接上傳程序包
在創建部署程序包后,可直接從本地上傳ZIP程序包,ZIP程序包大小限制為50MB,如果超過該限制,請使用OBS存儲桶。
更多函數資源的限制,請參見約束與限制。
- 上傳至OBS存儲桶
在創建部署程序包后,可先將.zip文件上傳到要在其中創建FunctionGraph函數的區域中的OBS存儲桶中,然后指定FunctionGraph函數中設置程序包的OBS存儲地址,OBS中ZIP包大小限制為300MB。
更多函數資源的限制,請參見約束與限制
GO語言程序包
上傳程序包
只能上傳程序包,部署程序包必須是.zip文件。Go編程語言支持以下兩種方式上傳程序包。
注意
制作zip包的時候,單函數入口文件必須在根目錄,保證解壓后,直接出現函數執行入口文件,才能正常運行。
解壓后的源代碼不能超過1.5G。
- 直接上傳程序包
在創建部署程序包后,可直接從本地上傳ZIP程序包,ZIP程序包大小限制為50MB,如果超過該限制,請使用OBS存儲桶。
更多函數資源的限制,請參見約束與限制。
- 上傳至OBS存儲桶
在創建部署程序包后,可先將.zip文件上傳到要在其中創建FunctionGraph函數的區域中的OBS存儲桶中,然后指定FunctionGraph函數中設置程序包的OBS存儲地址,OBS中ZIP包大小限制為300MB。
更多函數資源的限制,請參見約束與限制。
定制運行時程序包
在線編輯
使用控制臺可以編輯代碼并將代碼上傳到FunctionGraph,控制臺會將代碼及相關的配置信息壓縮到FunctionGraph服務能夠運行的部署程序包中。
上傳程序包
如果編寫的代碼需要用到其他資源(如使用圖形庫進行圖像處理),則需要先創建FunctionGraph函數部署程序包,然后再使用控制臺上傳部署程序包。定制運行時支持以下兩種方式上傳程序包。
注意
制作zip包的時候,單函數入口文件必須在根目錄,保證解壓后,直接出現函數執行入口文件,才能正常運行。
?解壓后的源代碼不能超過1.5G。
- 直接上傳程序包
在創建部署程序包后,可直接從本地上傳ZIP程序包,ZIP程序包大小限制為50MB,如果超過該限制,請使用OBS存儲桶。
更多函數資源的限制,請參見約束與限制。
- 上傳至OBS存儲桶
在創建部署程序包后,可先將.zip文件上傳到要在其中創建FunctionGraph函數的區域中的OBS存儲桶中,然后指定FunctionGraph函數中設置程序包的OBS存儲地址,OBS中ZIP包大小限制為300MB。
更多函數資源的限制,請參見約束與限制。