更新时间:2025-07-09 GMT+08:00
分享

直接上传函数代码

本章节介绍如何通过函数工作流控制台,直接上传函数代码文件进行部署。

操作场景

当函数的代码文件大小不超过40MB时,可以在函数工作流控制台直接上传本地开发完成的ZIP或JAR代码文件进行函数代码部署。运行时支持直接上传的代码文件类型请参考表1,请参见函数工程打包规范在本地打包代码文件。
表1 直接上传代码支持的文件类型

运行时

上传ZIP文件

上传JAR文件

说明

Node.js

支持

不支持

-

Python

支持

不支持

用python语言编写代码时,自己创建的依赖包名不能与python标准库同名,否则会提示module加载失败,例如“json”、“lib”、“os”等。

Java

支持

支持

部署Java代码文件支持上传ZIP文件或JAR文件。

上传JAR文件

  • 如果函数代码没有引入依赖包,可以直接上传函数代码JAR文件。
  • 如果函数代码引入了依赖包,可以在创建函数后先配置函数依赖包,再上传函数代码JAR文件部署。

上传ZIP文件

如果函数代码引入了依赖包,也可以制作并上传包含所有依赖包和函数代码JAR文件的ZIP代码文件。具体示例可参见使用IDEA工具创建普通Java项目使用IDEA工具创建maven项目

Go

支持

不支持

编译后的动态库文件名称必须与函数执行入口的插件名称保持一致,例如:动态库名称为testplugin.so,则“函数执行入口”命名为testplugin.Handler。

C#

支持

不支持

-

PHP

支持

不支持

-

定制运行时

支持

不支持

-

Cangjie

支持

不支持

-

约束与限制

  • 直接上传的代码文件大小限制为40MB以内,如文件大小超过该限制,请使用从OBS上传函数代码的方式上传代码文件。
  • 如果代码中包含敏感信息(如账户密码等),请自行加密,以防信息泄露。
  • 当代码编辑器中部署的代码大于20MB时将不展示代码,如图1所示,但仍可以正常测试函数代码。
    图1 编辑器不展示代码

上传函数代码

  1. 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
  2. 在函数列表中,单击函数名称进入详情页。
  3. 选择“代码”页签,右侧选择“上传代码 > Zip文件”或“上传代码 > JAR文件”。
  4. 在弹出的窗口中,单击“添加文件”,选择本地函数代码文件。
  5. (可选,仅“拉美-圣保罗一”区域支持配置)可根据实际需求选择使用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"
              }
          ]
      }

  6. 文件上传完成后,单击“确定”,代码将自动部署到代码编辑区中。

    如需修改代码编辑区中的代码,请在每次修改完成后单击“部署代码”,进行代码更新部署。如需修改函数执行入口,请参见修改函数执行入口

相关文档