Updated on 2026-10-27 GMT+08:00

Importing a Function

Function

This API is used to import a function.

Calling Method

For details, see Calling APIs.

Authorization Information

Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions. For details about the required permissions, see Permissions Policies and Supported Actions.

URI

POST /v2/{project_id}/fgs/functions/import

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Parameter description:

Project ID. For details, see Obtaining a Project ID.

Constraints:

None

Value range:

32 characters, including letters and digits.

Default value:

None

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Parameter description:

User token.

The token can be obtained by calling the IAM API. The value of X-Subject-Token in the response header is the user token.

Constraints:

None

Value range:

None

Default value:

None

Content-Type

Yes

String

Parameter description:

Specifies the type (or format) of the message body.

Constraints:

None

Value range:

Only application/json is supported.

Default value:

application/json

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

func_name

Yes

String

Parameter description:

Name of the imported function.

Constraints:

You need to export the function first.

Value range:

which contains letters, digits, underscores (_), and hyphens (-). It must start with a letter and end with a letter or digit. The length cannot exceed 60 characters.

Default Value:

None

file_name

Yes

String

Parameter description:

Name of the file generated when a function is exported. Generally, the file name extension is .zip.

Constraints:

You need to export the function first.

Value range:

The size cannot exceed 300 MB.

Default Value:

N/A

file_type

Yes

String

Parameter description:

Supported File Type:

Constraints:

You need to export the function first.

Value range:

Currently, only zip is supported.

Default Value:

ZIP

file_code

Yes

String

Parameter description:

Function code. The code must be encoded using Base64.

Constraints:

You need to export the function first.

Value range:

None

Default Value:

None

package

No

String

Parameter description:

Name of the app where the exported function is located.

Constraints:

You need to export the function first.

Value range:

File names can contain letters, digits, and underscores (_).

Default Value:

default

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

func_urn

String

Parameter description:

Function URN.

Value range:

None

func_name

String

Parameter description:

Function name.

Value range:

None

domain_id

String

Parameter description:

Specifies the tenant account ID.

Value range:

None

namespace

String

Parameter description:

Project ID.

Value range:

None

project_name

String

Parameter description:

Project name.

Value range:

None

package

String

Parameter description:

Group to which the function belongs. This field is defined to group functions.

Value range:

N/A

runtime

String

Parameter description:

Specifies the runtime of a FunctionGraph function, that is, the function execution environment.

Value range:

  • Java8: Java 8

  • Java11: Java 11

  • Java17: Java 17

  • Java21: Java 21

  • Python2.7: Python 2.7

  • Python3.6: Python 3.6

  • Python3.9: Python 3.9

  • Python3.10: Python 3.10

  • Python3.12: Python 3.12

  • Go1.x: Go 1.x

  • Node.js6.10: Nodejs 6.10

  • Node.js8.10: Nodejs 8.10

  • Node.js10.16: Nodejs 10.16

  • Node.js12.13: Nodejs 12.13

  • Node.js14.18: Nodejs 14.18

  • Node.js16.17: Nodejs 16.17

  • Node.js18.15: Nodejs 18.15

  • Node.js20.15: Nodejs 20.15

  • C#(.NET Core 2.1): C# 2.1

  • C#(.NET Core 3.1): C# 3.1

  • C#(.NET Core 6.0): C# 6.0

  • C#(.NET Core 8.0): C# 8.0

  • Custom: custom runtime

  • PHP7.3: Php 7.3

  • PHP8.3: Php 8.3

  • Cangjie1.0

  • Cangjie0.52.3

  • HTTP

Custom image-based functions

timeout

Integer

Parameter description:

Timeout duration of a function. If the timeout duration is reached, the function will be forcibly stopped.

Value range:

3 to 259,200 seconds

handler

String

Parameter description:

Handler

It is in the format of "xx.xx" and must contain a period (.). The handler of a custom image function is -.

For example, for Node.js function myfunction.handler, the file name is myfunction.js, and the handler function is handler. Can contain a maximum of 128 characters.

Value range:

3 to 128 characters

memory_size

Integer

Parameter description:

Memory (MB) consumed by the function.

Value range:

  • 128

  • 256

  • 512

  • 768

  • 1024

  • 1280

  • 1536

  • 1792

  • 2048

  • 2560

  • 3072

  • 3584

  • 4096

gpu_memory

Integer

Parameter description:

GPU memory. This parameter is available only for functions created with a custom runtime or image. The unit is MB.

Value range:

  • 1024

  • 2048

  • 3072

  • 4096

  • 5120

  • 6144

  • 7168

  • 8192

  • 9216

  • 10240

  • 11264

  • 12288

  • 13312

  • 14336

  • 15360

  • 16384

cpu

Integer

Parameter description:

CPU resources of a function.

Unit: millicore (1 core = 1000 millicores).

The value of this field is proportional to that of MemorySize. By default, 100 CPU millicores are required for 128 MB memory.

Value range:

None

code_type

String

Parameter description:

Function code type

Value range:

The options are as follows:

inline: inline code

zip: ZIP file

obs: function code stored in an OBS bucket

jar: JAR file, mainly for Java functions

Custom-Image-Swr: The function code comes from the SWR custom image.

code_url

String

Parameter description:

If CodeType is set to obs, enter the OBS URL of the function code package. If CodeType is not set to obs, leave this parameter blank.

Value range:

OBS link address

code_filename

String

Parameter description:

Name of a function file. This parameter is mandatory only when CodeType is set to jar or zip.

Value range:

None

code_size

Long

Parameter description:

Code size in bytes.

Value range:

None

user_data

String

Parameter description:

Name/Value information defined for the function. These are parameters used in the function. For example, if a function needs to access a host, you can set a custom parameter Host={host_ip}. The total length cannot exceed 4 KB.

Value range:

json indicates a character string in JSON format.

digest

String

Parameter description:

SHA512 hash value of function code, which is used to determine whether the function is changed.

Value range:

None

version

String

Parameter description:

Function version, which is automatically generated by the system. The version name is in the format of "vYYYYMMDD-HHMMSS" (v+year/month/day-hour/minute/second).

Value range:

None

image_name

String

Parameter description:

Internal identifier of a function version.

Value range:

None

xrole

String

Parameter description:

Configuration agency. You need to create an agency on the IAM console. This field is mandatory when a function needs to access other services. After specifying a function configuration agency, you can use the context method in the function handler to obtain a token, an AK, and an SK for accessing other cloud services. No agency is required if FunctionGraph does not access any cloud services.

Value range:

None

app_xrole

String

Parameter description:

Execution agency. You can optimize performance by configuring a separate agency for function execution, otherwise, the same agency is used for both execution and configuration.

Value range:

None

description

String

Parameter description:

Description of the function.

Value range:

None

version_description

String

Parameter description:

Description of the function version.

Value range:

None

last_modified

String

Parameter description:

Time when the function was last updated.

Value range:

Timestamp in seconds

func_vpc

FuncVpc object

VPC configuration. An agency with VPC permissions must be configured for the function.

depend_list

Array of strings

Parameter description:

Dependency IDs.

Value range:

None

depend_version_list

Array of strings

Parameter description:

Dependency versions.

Value range:

None

strategy_config

StrategyConfig object

Parameter description:

Function policy configuration.

status

Integer

Parameter description:

Function status.

Value range:

0: enabled

1: disabled

extend_config

String

Parameter description:

Extended function configuration, which is a discarded field.

Value range:

None

initializer_handler

String

Parameter description:

Initializer of the function in the format of "xx.xx". It must contain a period (.). ". This parameter is mandatory when the initialization function is configured.

For example, for the Node.js function myfunction.initializer, the file name is myfunction.js, and the initialization input is

The interface function name is initializer.

Value range:

None

initializer_timeout

Integer

Parameter description:

Initialization timeout interval. The timeout function will be forcibly stopped. This parameter is mandatory when the initialization function is configured.

Value range:

[1, 300]

pre_stop_handler

String

The pre-stop handler of a function. The value must contain a period (.) in the format of xx.xx. For example, for Node.js function myfunction.pre_stop_handler, the file name is myfunction.js, and the initialization function is pre_stop_handler.

pre_stop_timeout

Integer

Parameter description:

Initialization timeout interval. The timeout function will be forcibly stopped.

Value range:

1 to 90 seconds.

enterprise_project_id

String

Parameter description:

Enterprise project ID. This parameter is mandatory if you create a function as an enterprise user.

Value range:

None

last_modified_utc

Integer

Definition

Unix timestamp (in seconds) of the last modification time.

Range

N/A

long_time

Boolean

Definition

Whether it is a long-time execution function.

Range

  • true: yes

  • false: no

type

String

Definition

Function type.

Range

  • v1: deprecated version.

  • v2: official version.

enable_cloud_debug

String

Definition

Whether to enable cloud debugging to adapt to the CloudDebug scenario.

Range

N/A

enable_dynamic_memory

Boolean

Definition

Whether to enable dynamic memory.

Range

  • true: yes

  • false: no

custom_image

Object

Definition

Custom image configuration.

Range

N/A

is_stateful_function

Boolean

Definition

Whether stateful functions are supported. This parameter is supported in FunctionGraph v2.

Range

  • true: yes

  • false: No

is_bridge_function

Boolean

Definition

Whether this is a bridge function.

Range

  • true: yes

  • false: no

enable_custom_rpc

Boolean

Definition

Whether to enable custom RPC.

Range

  • true: yes

  • false: no

is_return_stream

Boolean

Definition

Whether to return streaming data.

Range

  • true: yes

  • false: no

stream_response

Boolean

Definition

Streaming response switch.

Range

N/A

is_websocket_function

Boolean

Definition

Whether this is a WebSocket function.

Range

  • true: yes

  • false: no

enable_auth_in_header

Boolean

Definition

Whether authentication information can be added to the request header. This is only applicable to custom image-based functions.

Range

  • true: yes

  • false: no

reserved_instance_idle_mode

Boolean

Definition

Whether to enable idle mode for reserved instances.

Range

  • true: yes

  • false: no

ephemeral_storage

Integer

Definition

Ephemeral storage.

Range

  • 512: 512 MB.

  • 10240: 10 GB.

is_shared

Boolean

Definition

Whether it is a shared function.

Range

N/A

resource_id

String

Definition

Unique ID of a function resource.

Range

N/A

disable_insecure_ak_sk

Boolean

Definition

Whether to disable insecure methods for obtaining the AK/SK.

Range

  • true: yes

  • false: no

is_safety

Boolean

Definition

Whether the function can access the VPC in a secure manner.

Range

  • true: yes

  • false: no

func_code

FuncCode object

Response body of the FuncCode structure.

FuncCode

Object

Definition

Function code object (deprecated).

Range

N/A

Table 5 FuncVpc

Parameter

Type

Description

domain_id

String

Parameter description:

Tenant account ID.

Value range:

None

namespace

String

Parameter description:

Project ID.

Value range:

None

vpc_name

String

Definition:

VPC name

Value range:

None

vpc_id

String

Parameter description:

VPC ID.

Value range:

None

subnet_name

String

Parameter description:

Subnet name.

Value range:

None

subnet_id

String

Parameter description:

Subnet ID.

Value range:

None

cidr

String

Parameter description:

Subnet mask.

Value range:

None

gateway

String

Parameter description:

Gateway.

Value range:

None

security_groups

Array of strings

Parameter description:

Security Group

Value range:

Character string list

is_safety

Boolean

Definition

Whether to enable secure access. When secure access is enabled, you need to configure the VPCEP network to establish a secure VPC connection to private domain names. Once enabled, this feature cannot be disabled.

Range

  • true: Yes

  • false: No

Table 6 StrategyConfig

Parameter

Type

Description

concurrency

Integer

Parameter description:

Specifies the maximum number of instances for a function. The value -1 indicates that the number of instances is not limited.

Value range:

v1: 0 and -1

v2: [–1, 1000]

concurrent_num

Integer

Parameter description:

Specifies the number of concurrent requests per instance. This parameter is supported in v2.

Value range:

[1, 1000]

Table 7 FuncCode

Parameter

Type

Description

file

String

Parameter description:

Function code, which must be encoded using Base64. If this parameter is left blank, the default code is used.

Value range:

Base64-encoded string.

link

String

Parameter description:

Function code URL.

Value range:

OBS link address

Status code: 409

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 500

Table 9 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Example Requests

Import a function from a Base64-encoded file test.zip.

POST https://{Endpoint}/v2/{project_id}/fgs/functions/import

{
  "func_name" : "test",
  "file_name" : "test.zip",
  "file_type" : "zip",
  "file_code" : "xxxxxxxxxxxxxxxxxxxxx"
}

Example Responses

Status code: 200

{
  "func_urn" : "urn:fss:{region}:46b6f338fc3445b8846c71dfb1fbxxxx:function:default:test_v1_2",
  "func_name" : "test_v1_2",
  "domain_id" : "14ee2e35****a7998b******aa24cabf",
  "namespace" : "46b6f338fc3445b8846c71dfb1fbxxxx",
  "project_name" : "{region}",
  "package" : "default",
  "runtime" : "Node.js6.10",
  "timeout" : 3,
  "handler" : "index.handler",
  "memory_size" : 128,
  "cpu" : 1024,
  "code_type" : "zip",
  "code_filename" : "index.zip",
  "code_size" : 6709,
  "digest" : "faa825575c45437cddd4e369bea69893bcbe195d478178462ad90984fe72993f3f59d15f41c5373f807f3e05fb9af322c55dabeb16565c386e402413458e6068",
  "version" : "latest",
  "image_name" : "latest-191025153727@zehht",
  "last_modified" : "1572005847",
  "status" : 0,
  "strategy_config" : {
    "concurrency" : -1
  },
  "enterprise_project_id" : "46b6f338fc3445b8846c71dfb1fbxxxx"
}

Status code: 409

{
  "error_code" : "FSS.1061",
  "error_msg" : "The function has existed"
}

SDK Sample Code

The SDK sample code is as follows.

Java

Import a function from a Base64-encoded file test.zip.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.functiongraph.v2.region.FunctionGraphRegion;
import com.huaweicloud.sdk.functiongraph.v2.*;
import com.huaweicloud.sdk.functiongraph.v2.model.*;


public class ImportFunctionSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        FunctionGraphClient client = FunctionGraphClient.newBuilder()
                .withCredential(auth)
                .withRegion(FunctionGraphRegion.valueOf("<YOUR REGION>"))
                .build();
        ImportFunctionRequest request = new ImportFunctionRequest();
        ImportFunctionRequestBody body = new ImportFunctionRequestBody();
        body.withFileCode("xxxxxxxxxxxxxxxxxxxxx");
        body.withFileType("zip");
        body.withFileName("test.zip");
        body.withFuncName("test");
        request.withBody(body);
        try {
            ImportFunctionResponse response = client.importFunction(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Python

Import a function from a Base64-encoded file test.zip.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkfunctiongraph.v2.region.functiongraph_region import FunctionGraphRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkfunctiongraph.v2 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = FunctionGraphClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(FunctionGraphRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ImportFunctionRequest()
        request.body = ImportFunctionRequestBody(
            file_code="xxxxxxxxxxxxxxxxxxxxx",
            file_type="zip",
            file_name="test.zip",
            func_name="test"
        )
        response = client.import_function(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

Import a function from a Base64-encoded file test.zip.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    functiongraph "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/functiongraph/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/functiongraph/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/functiongraph/v2/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth, err := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        SafeBuild()

    if err != nil {
        fmt.Println(err)
        return
    }

    hcClient, err := functiongraph.FunctionGraphClientBuilder().
         WithRegion(region.ValueOf("<YOUR REGION>")).
         WithCredential(auth).
         SafeBuild()


    if err != nil {
        fmt.Println(err)
        return
    }

    client := functiongraph.NewFunctionGraphClient(hcClient)

    request := &model.ImportFunctionRequest{}
	request.Body = &model.ImportFunctionRequestBody{
		FileCode: "xxxxxxxxxxxxxxxxxxxxx",
		FileType: "zip",
		FileName: "test.zip",
		FuncName: "test",
	}
	response, err := client.ImportFunction(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

More

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

ok

409

Conflict

500

Internal server error.

Error Codes

See Error Codes.