直接上传函数代码
本章节介绍如何通过函数工作流控制台,直接上传函数代码文件进行部署。
操作场景
运行时 |
上传ZIP文件 |
上传JAR文件 |
说明 |
---|---|---|---|
Node.js |
支持 |
不支持 |
- |
Python |
支持 |
不支持 |
用python语言编写代码时,自己创建的依赖包名不能与python标准库同名,否则会提示module加载失败,例如“json”、“lib”、“os”等。 |
Java |
支持 |
支持 |
部署Java代码文件支持上传ZIP文件或JAR文件。 上传JAR文件
上传ZIP文件 如果函数代码引入了依赖包,也可以制作并上传包含所有依赖包和函数代码JAR文件的ZIP代码文件。具体示例可参见使用IDEA工具创建普通Java项目、使用IDEA工具创建maven项目。 |
Go |
支持 |
不支持 |
编译后的动态库文件名称必须与函数执行入口的插件名称保持一致,例如:动态库名称为testplugin.so,则“函数执行入口”命名为testplugin.Handler。 |
C# |
支持 |
不支持 |
- |
PHP |
支持 |
不支持 |
- |
定制运行时 |
支持 |
不支持 |
- |
Cangjie |
支持 |
不支持 |
- |
约束与限制
- 直接上传的代码文件大小限制为40MB以内,如文件大小超过该限制,请使用从OBS上传函数代码的方式上传代码文件。
- 如果代码中包含敏感信息(如账户密码等),请自行加密,以防信息泄露。
- 当代码编辑器中部署的代码大于20MB时将不展示代码,如图1所示,但仍可以正常测试函数代码。
上传函数代码
- 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
- 在函数列表中,单击函数名称进入详情页。
- 选择“代码”页签,右侧选择“上传代码 > Zip文件”或“上传代码 > JAR文件”。
- 在弹出的窗口中,单击“添加文件”,选择本地函数代码文件。
- (可选,仅“拉美-圣保罗一”区域支持配置)可根据实际需求选择使用KMS静态加密函数代码:
- (默认)functiongraph/default:函数会在DEW服务中自动创建默认密钥,您无需手动创建。
首次使用默认密钥进行加解密,需确保函数委托中拥有以下权限:kms:dek:decrypt、 kms:dek:create、 kms:cmk:create、kms:cmk:get、 kms:cmk:list。
- 使用用户主密钥:支持选择已创建的密钥加密函数代码,创建用户主密钥可参考创建自定义密钥。
使用用户主密钥,需确保函数委托中拥有以下权限:kms:dek:decrypt、 kms:dek:create、 kms:cmk:get、 kms:cmk:list。
若选择“使用用户主密钥”,在后续使用中请勿在DEW服务中删除用于函数加密的主密钥,否则将因加密数据无法解密而导致函数执行失败。
请参考JSON视图配置自定义策略前往IAM控制台将“委托权限策略”(以选择默认密钥为例)添加至函数委托中,并参考配置函数委托为该函数配置委托权限。{ "Version": "1.1", "Statement": [ { "Action": [ "kms:dek:decrypt", "kms:dek:create", "kms:cmk:create", "kms:cmk:get", "kms:cmk:list" ], "Effect": "Allow" } ] }
- (默认)functiongraph/default:函数会在DEW服务中自动创建默认密钥,您无需手动创建。
- 文件上传完成后,单击“确定”,代码将自动部署到代码编辑区中。
如需修改代码编辑区中的代码,请在每次修改完成后单击“部署代码”,进行代码更新部署。如需修改函数执行入口,请参见修改函数执行入口。