You need to enable JavaScript to run this app.
导航
CreateFunction
最近更新时间:2024.09.24 19:03:20首次发布时间:2024.07.08 11:32:09

创建函数,包含函数配置及函数代码。

请求说明

  • 请求方式:POST
  • 请求地址:http://open.volcengineapi.com/?Action=CreateFunction&Version=2024-06-06 HTTP/1.1

调试

请求参数

参数类型是否必选示例值描述
ActionStringCreateFunction接口名称。当前 API 的名称为 CreateFunction
VersionString2024-06-06接口版本。当前 API 的版本为 2024-06-06
NameStringofficial-site函数名称,同一账号内函数名称不可重复,只能包含大小写字母、数字、中划线、下划线,长度 4-64 个字符。
DescriptionString轻量级官网函数描述,长度小于 1000 个 unicode 字符。

Runtime

String

python3.8/v1

函数运行时,可选值有:

  • golang/v1
  • native/v1
  • nativejava8/v1
  • node14/v1
  • node20/v1
  • nodeprime14/v1
  • python3.12/v1
  • python3.8/v1
  • python3.9/v1
    当 SourceType == 'image' 时,Runtime 必须为 'native/v1'。

ExclusiveMode

Boolean

false

独占模式开关。

  • true:关闭单实例多并发,即同一时刻单实例只能处理一个请求的独占模式。
  • false(默认):开启单实例多并发,即同一时刻单实例可处理多个请求的非独占模式,可通过 MaxConcurrency 设置单实例能够承载的最大并发请求数量。
RequestTimeoutInteger30请求超时,单位:秒,范围 1 - 900,默认 30。
MaxConcurrencyInteger100单实例最大并发,ExclusiveMode = false 时可设置,范围 10-1000,默认 100。
MemoryMBInteger1024单实例最大内存,单位 MB,范围 512 - 4096,取值以 512 为梯度,默认 1024。

SourceType

String

tos

代码来源类型,可选值有:

  • tos:火山引擎对象存储
  • zip:本地压缩文件
  • image:火山引擎镜像仓库,支持基础版和企业版。仅白名单账户支持 Native/v1 自定义镜像。

Source

String

pqyqo9qa/3kw17emxrn71v3bs.zip

代码来源。

  • zip:base64 编码的二进制 zip。
  • tos:格式为 bucket_name:object_key 的字符串,例如: vefaas-test:vefaas-python38-default.zip
  • image:格式为host/namespace/repo:tag的镜像地址。例如:cp-enterprise-cn-beijing.cr.volces.com/demo/nginx:latest
EnvsArray of EnvVar[{"Key":"business_type","Value":"free"}]环境变量。
VpcConfigObject of VpcConfig{"EnableVpc":true,"VpcId":"vpc-rragpljjr9q8v0x57hsabcd","SubnetIds":["subnet-milbxl46sdfk5smt1aa8defg"],"SecurityGroupIds":["sg-rragprgn3fnkv0x584ghijk"],"EnableSharedInternetAccess":true}VPC 配置。
TlsConfigObject of TlsConfig{"EnableLog":true,"TlsProjectId":"a40202c5-fe22-4ea7-a3a5-06d1bca77abcd","TlsTopicId":"2ff955cb-1f03-4b9b-8982-306e98c27890"}TLS 日志配置。
SourceAccessConfigObject of SourceAccessConfig{"Username": "operator", "Password": "Feie&ffe123huabcd"}当用户设置跨账户自定义镜像时,需要提供访问配置。
NasStorageObject of NasStorage{"EnableNas":true,"NasConfigs":[{"FileSystemId":"cnas-cnbjb37c2193e51234","MountPointId":"mount-bce15678","RemotePath":"/","LocalMountPath":"/mnt/nas","Uid":1000,"Gid":1000}]}文件存储 NAS 挂载配置。
TosMountConfigObject of TosMountConfig{"EnableTos":true,"MountPoints":[{"BucketPath":"/","LocalMountPath":"/mnt/tos","ReadOnly":false,"BucketName":"ai-models","Endpoint":"http://tos-cn-beijing.ivolces.com"}],"Credentials":{"AccessKeyId": "TZTJjfewfweiFJIEFLDMFDKFabcd", "SecretAccessKey": "FweiffJEFJEWFJWERYTKRVFJlewjfwelFslfjsdflsjdfl=="}}对象存储 TOS 挂载配置。
InitializerSecInteger30函数初始化超时配置。
ProjectNameStringdefault项目名称

EnvVar

参数类型是否必选示例值描述
KeyStringbusiness_type环境变量的 Key。1 ~ 63 个字符,字符中可包含英文、数字以及下划线(_),并且不能以数字开头。同一函数下 Key 唯一。
ValueStringfree环境变量的 Value。

VpcConfig

参数类型是否必选示例值描述
VpcIdStringvpc-3rf87yoa8yn0g5zsk2hfevabcdVPC ID。如果 VPC ID 为空字符串,代表删除当前 VPC 配置。
EnableVpcBooleanfalse函数是否开启私有网络访问。
SubnetIdsArray of Stringsubnet-mj1lxywnkq2o5smt1bhyefghVPC 子网 ID。
SecurityGroupIdsArray of Stringsg-rs6schq63nk0v0x57j4wxyz安全组 ID。

EnableSharedInternetAccess

Boolean

false

函数访问公网开关。在用户绑定自己 VPC 的情况下,是否通过 vefaas VPC 共享 NAT 网关访问公网。

  • true:开启,通过默认网卡访问公网,会产生公网出流量费用。
  • false:关闭,函数无法通过默认网卡访问公网。

TlsConfig

参数类型是否必选示例值描述

EnableLog

Boolean

false

TlS 日志功能开关。

  • true:开启,函数的 stdout/stderr 日志将被采集至日志服务的指定日志项目和日志主题中。
  • false:关闭。不采集日志。
TlsTopicIdStringtls-vefaas-logstoreTLS 日志主题 ID。
TlsProjectIdStringtls-vefaasTLS 日志项目 ID。

SourceAccessConfig

参数类型是否必选示例值描述
PasswordStringFeie&ffe123huabcd镜像仓库密码。
UsernameStringoperator镜像仓库用户名。

NasStorage

参数类型是否必选示例值描述
EnableNasBooleanfalse是否开启 NAS 存储挂载。
NasConfigsArray of NasConfig[{"FileSystemId": "enas-cnsha0a8842997abcd", "MountPointId": "mount-6303defg", "RemotePath": "/", "LocalMountPath": "/mnt/nas", "Uid": "1000", "Gid": "1000"}]Nas 存储配置。

TosMountConfig

参数类型是否必选示例值描述
EnableTosBooleanfalse是否开启 TOS 存储挂载。
CredentialsObject of Credentials{"AccessKeyId": "TZTJjfewfweiFJIEFLDMFDKFabcd", "SecretAccessKey": "FweiffJEFJEWFJWERYTKRVFJlewjfwelFslfjsdflsjdfl=="}开启 TOS 后需要提供具有 TOS 域名访问权限的 AKSK。
MountPointsArray of TosMountPoint[{"Endpoint": "http://tos-cn-beijing.ivolces.com", "BucketName": "ai-model", "BucketPath": "/", "LocalMountPath": "/mnt/tos", "ReadOnly": "true"}]开启 TOS 后需要提供 TOS 存储配置列表,最多不超过 5 个。

NasConfig

参数类型是否必选示例值描述
GidLong1000文件系统中的用户组,暂时不支持自定义,如果提供该参数,参数值 1000(和函数 run user gid 保持一致)。
UidLong1000文件系统中的用户,暂时不支持自定义,如果提供该参数,参数值只能为 1000(和函数 run user uid 保持一致)。
RemotePathString/文件系统远端目录。长度 1-128 个字符,只能以“/”开头,支持大小写字母、数字和特殊字符(- . _ ~ / : @ = + ? # )。
FileSystemIdStringenas-cnsha0a8842997abcdNAS 文件系统 ID。
MountPointIdStringmount-6303defgNAS 挂载点 ID。
LocalMountPathString/mnt/nas函数本地挂载目录。长度 1-128 个字符,只能以“/”开头,支持大小写字母、数字和特殊字符(- . _ ~ / : @ = + ? # )。

Credentials

参数类型是否必选示例值描述
AccessKeyIdStringTZTJjfewfweiFJIEFLDMFDKFabcdAccess Key ID。
SecretAccessKeyStringFweiffJEFJEWFJWERYTKRVFJlewjfwelFslfjsdflsjdfl==Secret Access Key。

TosMountPoint

参数类型是否必选示例值描述
EndpointStringhttp://tos-cn-beijing.ivolces.comTOS 访问域名。

ReadOnly

Boolean

true

函数本地目录访问权限,挂载 TOS Bucket后,函数本地挂载目录的访问权限是否为只读。

  • true:只读
  • false(默认):读写
BucketNameStringai-modelTOS 存储桶。
BucketPathString/挂载的 TOS Bucket 路径。
LocalMountPathString/mnt/tos函数本地挂载目录。

请求示例

POST http://open.volcengineapi.com/?Action=CreateFunction&Version=2024-06-06 HTTP/1.1
Content-Type: application/json
{
    "Name": "official-site",
    "Description": "轻量级官网",
    "Runtime": "python3.8/v1",
    "ExclusiveMode": true,
    "RequestTimeout": 30,
    "MaxConcurrency": 100,
    "MemoryMB": 1024,
    "SourceType": "tos",
    "Source": "pqyqo9qa/3kw17emxrn71v3bs.zip",
    "Envs": [
        {
            "Key": "business_type",
            "Value": "free"
        }
    ],
    "VpcConfig": {
        "EnableVpc": true,
        "VpcId": "vpc-rragpljjr9q8v0x57hsabcd",
        "SubnetIds": [
            "subnet-milbxl46sdfk5smt1aa8defg"
        ],
        "SecurityGroupIds": [
            "sg-rragprgn3fnkv0x584ghijk"
        ],
        "EnableSharedInternetAccess": true
    },
    "TlsConfig": {
        "EnableLog": true,
        "TlsProjectId": "a40202c5-fe22-4ea7-a3a5-06d1bca77abcd",
        "TlsTopicId": "2ff955cb-1f03-4b9b-8982-306e98c27890"
    },
    "SourceAccessConfig": {
        "Username": "operator",
        "Password": "Feie&ffe123huabcd"
    },
    "NasStorage": {
        "EnableNas": true,
        "NasConfigs": [
            {
                "FileSystemId": "cnas-cnbjb37c2193e51234",
                "MountPointId": "mount-bce15678",
                "RemotePath": "/",
                "LocalMountPath": "/mnt/nas",
                "Uid": 1000,
                "Gid": 1000
            }
        ]
    },
    "TosMountConfig": {
        "EnableTos": true,
        "MountPoints": [
            {
                "BucketPath": "/",
                "LocalMountPath": "/mnt/tos",
                "ReadOnly": false,
                "BucketName": "ai-models",
                "Endpoint": "http://tos-cn-beijing.ivolces.com"
            }
        ],
        "Credentials": {
            "AccessKeyId": "TZTJjfewfweiFJIEFLDMFDKFabcd",
            "SecretAccessKey": "FweiffJEFJEWFJWERYTKRVFJlewjfwelFslfjsdflsjdfl=="
        }
    },
    "InitializerSec": 30
}

返回参数

参数类型示例值描述
IdStringpqyqo9qa函数 ID。
NameStringofficial-site函数名字。
DescriptionString轻量级官网函数描述。
RuntimeStringpython3.8/v1函数运行时。

ExclusiveMode

Boolean

false

独占模式开关。

  • true:关闭单实例多并发,即同一时刻单实例只能处理一个请求的独占模式。
  • false(默认):开启单实例多并发,即同一时刻单实例可处理多个请求的非独占模式,可通过 MaxConcurrency 设置单实例能够承载的最大并发请求数量。
RequestTimeoutInteger30请求超时(单位 秒)。
MaxConcurrencyInteger100单实例最大并发。
MemoryMBInteger1024单实例最大内存(单位 MB)。
CodeSizeInteger473代码包大小(单位 MB)。

CodeSizeLimit

Integer

256

代码包大小上限。

  • SourceType=zip,CodeSizeLimit=15MB。
  • SourceType=tos,CodeSizeLimit=256MB。
SourceLocationStringhttps://vefaas.tos-s3-cn.volces.com/template_dir/666ad75b9124c400072abcvefaas-python3.9-default.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKLTMTE1ZjQ2MTM0NWJjNDxxx2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=xxx&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=xxxxxx代码/镜像的来源地址。

SourceType

String

tos

代码来源类型,可选值有:

  • tos:火山引擎对象存储
  • zip:本地压缩文件
  • image:火山引擎镜像仓库,支持基础版和企业版。
EnvsArray of EnvVar[{"Key":"business_type","Value":"free"}]函数环境变量。
VpcConfigObject of VpcConfig{"EnableVpc": true, "VpcId": "vpc-rragpljjr9q8v0x57hsabcd", "SubnetIds": ["subnet-milbxl46sdfk5smt1aa8defg"], "SecurityGroupIds": ["sg-rragprgn3fnkv0x584ghijk"], "EnableSharedInternetAccess": true}VPC 配置。
CreationTimeString2024-06-14 15:31:07.143863441 +0800 CST m=+88714.902440864创建时间。
LastUpdateTimeString2024-06-14 15:31:07.143863491 +0800 CST m=+88714.902440914更新时间。
TlsConfigObject of TlsConfig{"EnableLog": true, "TlsProjectId": "a40202c5-fe22-4ea7-a3a5-06d1bca77abcd", "TlsTopicId": "2ff955cb-1f03-4b9b-8982-306e98c27890"}函数日志配置。
OwnerString1400001234函数所有者(账号 Id)。
TriggersCountInteger0该函数的触发器个数。
InstanceTypeString函数实例类型,非空则为 GPU 实例。
NasStorageObject of NasStorage{"EnableNas": true, "NasConfigs": [{"FileSystemId": "cnas-cnbjb37c2193e51234", "MountPointId": "mount-bce15678", "RemotePath": "/", "LocalMountPath": "/mnt/nas", "Uid": 1000, "Gid": 1000}]}文件存储 NAS 挂载配置。
TosMountConfigObject of TosMountConfig{"EnableTos": true, "MountPoints": [{"Endpoint": "http://tos-cn-beijing.ivolces.com", "BucketName": "ai-models", "BucketPath": "/", "LocalMountPath": "/mnt/tos", "ReadOnly": false}]}对象存储 TOS 挂载配置。
InitializerSecInteger30函数初始化超时配置。
ProjectNameStringdefault项目名称

EnvVar

参数类型示例值描述
KeyStringbusiness_type环境变量的 Key。1 ~ 63 个字符,字符中可包含英文、数字以及下划线(_),并且不能以数字开头。同一函数下 Key 唯一。
ValueStringfree环境变量的 Value。

VpcConfig

参数类型示例值描述
VpcIdStringvpc-3rf87yoa8yn0g5zsk2hfevabcdVPC ID。如果 VPC ID 为空字符串,代表删除当前 VPC 配置。
EnableVpcBooleanfalse函数是否开启私有网络访问。
SubnetIdsArray of Stringsubnet-mj1lxywnkq2o5smt1bhyefghVPC 子网 ID。
SecurityGroupIdsArray of Stringsg-rs6schq63nk0v0x57j4wxyz安全组 ID。

EnableSharedInternetAccess

Boolean

false

函数访问公网开关。在用户绑定自己 VPC 的情况下,是否通过 vefaas VPC 共享 NAT 网关访问公网。

  • true:开启,通过默认网卡访问公网,会产生公网出流量费用。
  • false:关闭,函数无法通过默认网卡访问公网。

TlsConfig

参数类型示例值描述

EnableLog

Boolean

false

TlS 日志功能开关。

  • true:开启,函数的 stdout/stderr 日志将被采集至日志服务的指定日志项目和日志主题中。
  • false:关闭。不采集日志。
TlsTopicIdStringtls-vefaas-logstoreTLS 日志主题 ID。
TlsProjectIdStringtls-vefaasTLS 日志项目 ID。

NasStorage

参数类型示例值描述
EnableNasBooleanfalse是否开启 NAS 存储挂载。
NasConfigsArray of NasConfig[{"FileSystemId": "enas-cnsha0a8842997abcd", "MountPointId": "mount-6303defg", "RemotePath": "/", "LocalMountPath": "/mnt/nas", "Uid": "1000", "Gid": "1000"}]Nas 存储配置。

TosMountConfig

参数类型示例值描述
EnableTosBooleanfalse是否开启 TOS 存储挂载。
CredentialsObject of Credentials{"AccessKeyId": "TZTJjfewfweiFJIEFLDMFDKFabcd", "SecretAccessKey": "FweiffJEFJEWFJWERYTKRVFJlewjfwelFslfjsdflsjdfl=="}开启 TOS 后需要提供具有 TOS 域名访问权限的 AKSK。
MountPointsArray of TosMountPoint[{"Endpoint": "http://tos-cn-beijing.ivolces.com", "BucketName": "ai-model", "BucketPath": "/", "LocalMountPath": "/mnt/tos", "ReadOnly": "true"}]开启 TOS 后需要提供 TOS 存储配置列表,最多不超过 5 个。

NasConfig

参数类型示例值描述
GidLong1000文件系统中的用户组,暂时不支持自定义,如果提供该参数,参数值 1000(和函数 run user gid 保持一致)。
UidLong1000文件系统中的用户,暂时不支持自定义,如果提供该参数,参数值只能为 1000(和函数 run user uid 保持一致)。
RemotePathString/文件系统远端目录。长度 1-128 个字符,只能以“/”开头,支持大小写字母、数字和特殊字符(- . _ ~ / : @ = + ? # )。
FileSystemIdStringenas-cnsha0a8842997abcdNAS 文件系统 ID。
MountPointIdStringmount-6303defgNAS 挂载点 ID。
LocalMountPathString/mnt/nas函数本地挂载目录。长度 1-128 个字符,只能以“/”开头,支持大小写字母、数字和特殊字符(- . _ ~ / : @ = + ? # )。

Credentials

参数类型示例值描述
AccessKeyIdStringTZTJjfewfweiFJIEFLDMFDKFabcdAccess Key ID。
SecretAccessKeyStringFweiffJEFJEWFJWERYTKRVFJlewjfwelFslfjsdflsjdfl==Secret Access Key。

TosMountPoint

参数类型示例值描述
EndpointStringhttp://tos-cn-beijing.ivolces.comTOS 访问域名。

ReadOnly

Boolean

true

函数本地目录访问权限,挂载 TOS Bucket后,函数本地挂载目录的访问权限是否为只读。

  • true:只读
  • false(默认):读写
BucketNameStringai-modelTOS 存储桶。
BucketPathString/挂载的 TOS Bucket 路径。
LocalMountPathString/mnt/tos函数本地挂载目录。

返回示例

HTTP/1.1 200 OK
Content-Type: application/json
{
    "ResponseMetadata": {
        "RequestId": "20230604110420****100232280022D31",
        "Action": "CreateFunction",
        "Version": "2024-06-06",
        "Service": "vefaas",
        "Region": "cn-beijing"
    },
    "Result": {
        "Id": "pqyqo9qa",
        "Name": "official-site",
        "Description": "轻量级官网",
        "Runtime": "python3.8/v1",
        "ExclusiveMode": true,
        "RequestTimeout": 30,
        "MaxConcurrency": 100,
        "MemoryMB": 1024,
        "CodeSize": 473,
        "CodeSizeLimit": 256,
        "SourceLocation": "https://vefaas.tos-s3-cn.volces.com/template_dir/666ad75b9124c400072abcvefaas-python3.9-default.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKLTMTE1ZjQ2MTM0NWJjNDxxx2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=xxx&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=xxxxxx",
        "SourceType": "tos",
        "Envs": [
            {
                "Key": "business_type",
                "Value": "free"
            }
        ],
        "VpcConfig": {
            "EnableVpc": true,
            "VpcId": "vpc-rragpljjr9q8v0x57hsabcd",
            "SubnetIds": [
                "subnet-milbxl46sdfk5smt1aa8defg"
            ],
            "SecurityGroupIds": [
                "sg-rragprgn3fnkv0x584ghijk"
            ],
            "EnableSharedInternetAccess": true
        },
        "CreationTime": "2024-06-14 15:31:07.143863441 +0800 CST m=+88714.902440864",
        "LastUpdateTime": "2024-06-14 15:31:07.143863491 +0800 CST m=+88714.902440914",
        "TlsConfig": {
            "EnableLog": true,
            "TlsProjectId": "a40202c5-fe22-4ea7-a3a5-06d1bca77abcd",
            "TlsTopicId": "2ff955cb-1f03-4b9b-8982-306e98c27890"
        },
        "ResourcePoolId": "ujdsugabcd",
        "Owner": "1400001234",
        "TriggersCount": 0,
        "UseStatus": "normal",
        "DebugInstanceEnable": true,
        "InstanceType": "",
        "NasStorage": {
            "EnableNas": true,
            "NasConfigs": [
                {
                    "FileSystemId": "cnas-cnbjb37c2193e51234",
                    "MountPointId": "mount-bce15678",
                    "RemotePath": "/",
                    "LocalMountPath": "/mnt/nas",
                    "Uid": 1000,
                    "Gid": 1000
                }
            ]
        },
        "TosMountConfig": {
            "EnableTos": true,
            "MountPoints": [
                {
                    "Endpoint": "http://tos-cn-beijing.ivolces.com",
                    "BucketName": "ai-models",
                    "BucketPath": "/",
                    "LocalMountPath": "/mnt/tos",
                    "ReadOnly": false
                }
            ]
        },
        "InitializerSec": 30
    }
}

错误码

当前接口暂无独立错误码,若接口调用返回异常,可参考 公共错误码 进行故障排查。