更新时间:2025-08-18 GMT+08:00

通过OBS上传函数代码

本章节介绍如何将存储在OBS中的函数代码文件,上传至函数工作流控制台。

操作场景

函数工作流控制台支持通过输入OBS地址,上传OBS桶中文件大小不超过300MB的函数代码文件对象,支持上传ZIP格式的代码文件进行函数代码部署。

当前所有运行时均支持从OBS上传函数代码,请参见函数工程打包规范在本地打包代码文件并上传至OBS桶。

约束与限制

  • 请确保函数与OBS桶所在区域一致。
  • 如OBS桶中的代码文件大小超过300MB,或代码文件解压后的源代码大小超过1.5G,请提交工单处理。
  • 当代码编辑器中部署的代码大于20MB时将不展示代码,如图1所示,但仍可以正常测试函数代码。
    图1 编辑器不展示代码

前提条件

已将函数代码文件上传至OBS桶,并已设置匿名用户对该对象的读取权限,权限开启方法请参见对所有账号授予指定对象的读权限

上传函数代码

  1. 登录对象存储服务控制台,请参考匿名用户通过URL访问对象复制所需的代码文件对象URL。
  2. 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
  3. 在函数列表中,单击函数名称进入函数详情页。
  4. 在“代码”页签,右侧选择“上传代码 > OBS地址”。
  5. 在弹出的窗口中,输入复制的OBS桶对象URL。
  6. (可选,仅“拉美-圣保罗一”区域支持配置)可根据实际需求选择使用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"
              }
          ]
      }

  7. OBS地址输入完成后,单击“确定”,代码将自动部署到代码编辑区中。

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