Help us shape the future of Go! Take the 2026 Go Developer Survey

function

package
v0.9.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2026 License: Apache-2.0 Imports: 3 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Delete

func Delete(client *golangsdk.ServiceClient, funcURN string) (err error)

func Export added in v0.9.3

func Export(client *golangsdk.ServiceClient, funcURN string, opts ExportOpts) error

func UpdateStatus added in v0.9.3

func UpdateStatus(client *golangsdk.ServiceClient, funcUrn, state string) (err error)

Types

type CreateOpts

type CreateOpts struct {
	Name                string                `json:"func_name" required:"true"`
	Package             string                `json:"package" required:"true"`
	Runtime             string                `json:"runtime" required:"true"`
	Timeout             int                   `json:"timeout" required:"true"`
	Handler             string                `json:"handler" required:"true"`
	DependVersionList   []string              `json:"depend_version_list,omitempty"`
	FuncVpc             *FuncVpc              `json:"func_vpc,omitempty"`
	MemorySize          int                   `json:"memory_size" required:"true"`
	GpuMemory           *int                  `json:"gpu_memory,omitempty"`
	CodeType            string                `json:"code_type" required:"true"`
	CodeURL             string                `json:"code_url,omitempty"`
	CodeFilename        string                `json:"code_filename,omitempty"`
	CustomImage         *CustomImage          `json:"custom_image,omitempty"`
	UserData            string                `json:"user_data,omitempty"`
	EncryptedUserData   string                `json:"encrypted_user_data,omitempty"`
	Xrole               string                `json:"xrole,omitempty"`
	AppXrole            string                `json:"app_xrole,omitempty"`
	Description         string                `json:"description,omitempty"`
	FuncCode            *FuncCode             `json:"func_code,omitempty"`
	MountConfig         *MountConfig          `json:"mount_config,omitempty"`
	InitHandler         string                `json:"initializer_handler,omitempty"`
	InitTimeout         *int                  `json:"initializer_timeout,omitempty"`
	PreStopHandler      string                `json:"pre_stop_handler,omitempty"`
	PreStopTimeout      *int                  `json:"pre_stop_timeout,omitempty"`
	EnterpriseProjectId string                `json:"enterprise_project_id,omitempty"`
	Type                string                `json:"type,omitempty"`
	LogConfig           *FuncLogConfig        `json:"log_config,omitempty"`
	NetworkController   *NetworkControlConfig `json:"network_controller,omitempty"`
	IsStatefulFunction  *bool                 `json:"is_stateful_function,omitempty"`
	EnableDynamicMemory *bool                 `json:"enable_dynamic_memory,omitempty"`
	LtsCustomTag        map[string]string     `json:"lts_custom_tag,omitempty"`
	EnableLtsLog        *bool                 `json:"enable_lts_log,omitempty"`
}

type CustomImage added in v0.9.3

type CustomImage struct {
	Enabled    *bool  `json:"enabled,omitempty"`
	Image      string `json:"image,omitempty"`
	Command    string `json:"command,omitempty"`
	Args       string `json:"args,omitempty"`
	WorkingDir string `json:"working_dir,omitempty"`
	UID        string `json:"uid,omitempty"`
	GID        string `json:"gid,omitempty"`
}

type Dependency

type Dependency struct {
	ID           string `json:"id"`
	Owner        string `json:"owner"`
	Link         string `json:"link"`
	Runtime      string `json:"runtime"`
	Etag         string `json:"etag"`
	Size         int    `json:"size"`
	Name         string `json:"name"`
	Description  string `json:"description"`
	FileName     string `json:"file_name"`
	Version      int    `json:"version"`
	DepID        string `json:"dep_id"`
	LastModified string `json:"last_modified"`
}

type ExportOpts added in v0.9.3

type ExportOpts struct {
	Config string `q:"config"`
	Code   string `q:"code"`
	Type   string `q:"type"`
}

type FuncCode added in v0.9.3

type FuncCode struct {
	File string `json:"file,omitempty"`
	Link string `json:"link,omitempty"`
}

type FuncGraph added in v0.9.3

type FuncGraph struct {
	FuncID                   string               `json:"func_id"`
	FuncURN                  string               `json:"func_urn"`
	FuncName                 string               `json:"func_name"`
	DomainID                 string               `json:"domain_id"`
	ProjectID                string               `json:"namespace"`
	ProjectName              string               `json:"project_name"`
	Package                  string               `json:"package"`
	Runtime                  string               `json:"runtime"`
	Timeout                  int                  `json:"timeout"`
	Handler                  string               `json:"handler"`
	MemorySize               int                  `json:"memory_size"`
	GpuMemory                int                  `json:"gpu_memory"`
	CPU                      int                  `json:"cpu"`
	CodeType                 string               `json:"code_type"`
	CodeURL                  string               `json:"code_url"`
	CodeFilename             string               `json:"code_filename"`
	CodeSize                 int                  `json:"code_size"`
	DomainNames              string               `json:"domain_names"`
	UserData                 string               `json:"user_data"`
	EncryptedUserData        string               `json:"encrypted_user_data"`
	Digest                   string               `json:"digest"`
	Version                  string               `json:"version"`
	ImageName                string               `json:"image_name"`
	Xrole                    string               `json:"xrole"`
	AppXrole                 string               `json:"app_xrole"`
	Description              string               `json:"description"`
	LastModified             string               `json:"last_modified"`
	FuncVpc                  FuncVpc              `json:"func_vpc"`
	MountConfig              MountConfig          `json:"mount_config"`
	ReservedInstanceCount    int                  `json:"reserved_instance_count"`
	DependVersionList        []string             `json:"depend_version_list"`
	StrategyConfig           StrategyConfig       `json:"strategy_config"`
	ExtendConfig             string               `json:"extend_config"`
	Dependencies             []Dependency         `json:"dependencies"`
	InitHandler              string               `json:"initializer_handler"`
	InitTimeout              int                  `json:"initializer_timeout"`
	PreStopHandler           string               `json:"pre_stop_handler"`
	PreStopTimeout           int                  `json:"pre_stop_timeout"`
	LongTime                 bool                 `json:"long_time"`
	LogGroupID               string               `json:"log_group_id"`
	LogStreamID              string               `json:"log_stream_id"`
	Type                     string               `json:"type"`
	EnableDynamicMemory      bool                 `json:"enable_dynamic_memory"`
	EnterpriseProjectId      string               `json:"enterprise_project_id"`
	IsStatefulFunction       bool                 `json:"is_stateful_function"`
	CustomImage              CustomImage          `json:"custom_image"`
	IsBridgeFunction         bool                 `json:"is_bridge_function"`
	ApigRouteEnable          bool                 `json:"apig_route_enable"`
	HeartbeatHandler         string               `json:"heartbeat_handler"`
	EnableClassIsolation     bool                 `json:"enable_class_isolation"`
	GpuType                  string               `json:"gpu_type"`
	AllowEphemeralStorage    bool                 `json:"allow_ephemeral_storage"`
	EphemeralStorage         int                  `json:"ephemeral_storage"`
	NetworkController        NetworkControlConfig `json:"network_controller"`
	ResourceID               string               `json:"resource_id"`
	EnableAuthInHeader       bool                 `json:"enable_auth_in_header"`
	ReservedInstanceIdleMode bool                 `json:"reserved_instance_idle_mode"`
	PeeringCIDR              string               `json:"peering_cidr"`
	LtsCustomTag             map[string]string    `json:"lts_custom_tag"`
	EnableLtsLog             *bool                `json:"enable_lts_log"`
}

func Create

func Create(client *golangsdk.ServiceClient, opts CreateOpts) (*FuncGraph, error)

func GetMetadata

func GetMetadata(client *golangsdk.ServiceClient, funcURN string) (*FuncGraph, error)

GetFuncMetadata is basically /GET instance function

func Import added in v0.9.3

func Import(client *golangsdk.ServiceClient, opts ImportOpts) (*FuncGraph, error)

func UpdateFuncMetadata added in v0.9.3

func UpdateFuncMetadata(client *golangsdk.ServiceClient, opts UpdateFuncMetadataOpts) (*FuncGraph, error)

func UpdateMaxInstances added in v0.9.3

func UpdateMaxInstances(client *golangsdk.ServiceClient, opts UpdateFuncInstancesOpts) (*FuncGraph, error)

type FuncGraphCode added in v0.9.3

type FuncGraphCode struct {
	FuncURN           string         `json:"func_urn"`
	FuncName          string         `json:"func_name"`
	DomainID          string         `json:"domain_id"`
	Runtime           string         `json:"runtime"`
	CodeType          string         `json:"code_type"`
	CodeURL           string         `json:"code_url"`
	CodeFilename      string         `json:"code_filename"`
	CodeSize          int            `json:"code_size"`
	Digest            string         `json:"digest"`
	LastModified      string         `json:"last_modified"`
	FuncCode          FuncCode       `json:"func_code"`
	DependVersionList []string       `json:"depend_version_list"`
	StrategyConfig    StrategyConfig `json:"strategy_config"`
	Dependencies      []Dependency   `json:"dependencies"`
}

func GetCode

func GetCode(client *golangsdk.ServiceClient, funcURN string) (*FuncGraphCode, error)

func UpdateFuncCode added in v0.9.3

func UpdateFuncCode(client *golangsdk.ServiceClient, opts UpdateFuncCodeOpts) (*FuncGraphCode, error)

type FuncLogConfig added in v0.9.3

type FuncLogConfig struct {
	GroupName  string `json:"group_name,omitempty"`
	GroupID    string `json:"group_id,omitempty"`
	StreamName string `json:"stream_name,omitempty"`
	StreamID   string `json:"stream_id,omitempty"`
}

type FuncMount

type FuncMount struct {
	MountType      string `json:"mount_type" required:"true"`
	MountResource  string `json:"mount_resource" required:"true"`
	MountSharePath string `json:"mount_share_path,omitempty"`
	LocalMountPath string `json:"local_mount_path" required:"true"`
}

type FuncVpc

type FuncVpc struct {
	DomainId       string   `json:"domain_id,omitempty"`
	ProjectID      string   `json:"namespace,omitempty"`
	VpcName        string   `json:"vpc_name,omitempty"`
	VpcID          string   `json:"vpc_id,omitempty"`
	SubnetName     string   `json:"subnet_name,omitempty"`
	SubnetID       string   `json:"subnet_id,omitempty"`
	CIDR           string   `json:"cidr,omitempty"`
	Gateway        string   `json:"gateway,omitempty"`
	SecurityGroups []string `json:"security_groups"`
}

type ImportOpts added in v0.9.3

type ImportOpts struct {
	FuncName string `json:"func_name" required:"true"`
	FileName string `json:"file_name" required:"true"`
	FileType string `json:"file_type" required:"true"`
	FileCode string `json:"file_code" required:"true"`
	Package  string `json:"package,omitempty"`
}

type ListFuncResponse added in v0.9.3

type ListFuncResponse struct {
	Functions  []FuncGraph `json:"functions"`
	NextMarker int         `json:"next_marker"`
	Count      int         `json:"count"`
}

func List

func List(client *golangsdk.ServiceClient, opts ListOpts) (*ListFuncResponse, error)

type ListOpts

type ListOpts struct {
	Marker      string `q:"marker"`
	MaxItems    string `q:"max_items"`
	PackageName string `q:"package_name"`
}

type MountConfig

type MountConfig struct {
	MountUser  MountUser   `json:"mount_user" required:"true"`
	FuncMounts []FuncMount `json:"func_mounts" required:"true"`
}

type MountUser

type MountUser struct {
	UserID      string `json:"user_id" required:"true"`
	UserGroupID string `json:"user_group_id" required:"true"`
}

type NetworkControlConfig added in v0.9.3

type NetworkControlConfig struct {
	DisablePublicNetwork *bool       `json:"disable_public_network,omitempty"`
	TriggerAccessVpcs    []VpcConfig `json:"trigger_access_vpcs,omitempty"`
}

type StrategyConfig

type StrategyConfig struct {
	Concurrency   *int `json:"concurrency"`
	ConcurrentNum int  `json:"concurrent_num"`
}

type UpdateFuncCodeOpts added in v0.9.3

type UpdateFuncCodeOpts struct {
	FuncUrn           string    `json:"-"`
	CodeType          string    `json:"code_type" required:"true"`
	CodeURL           string    `json:"code_url,omitempty"`
	CodeFilename      string    `json:"code_filename,omitempty"`
	FuncCode          *FuncCode `json:"func_code,omitempty"`
	DependVersionList []string  `json:"depend_version_list"`
}

type UpdateFuncInstancesOpts added in v0.9.3

type UpdateFuncInstancesOpts struct {
	FuncUrn        string `json:"-"`
	MaxInstanceNum int    `json:"max_instance_num,omitempty"`
}

type UpdateFuncMetadataOpts added in v0.9.3

type UpdateFuncMetadataOpts struct {
	FuncUrn              string                `json:"-"`
	Name                 string                `json:"func_name" required:"true"`
	Runtime              string                `json:"runtime" required:"true"`
	Timeout              int                   `json:"timeout" required:"true"`
	Handler              string                `json:"handler" required:"true"`
	MemorySize           int                   `json:"memory_size" required:"true"`
	GpuMemory            *int                  `json:"gpu_memory,omitempty"`
	UserData             string                `json:"user_data,omitempty"`
	EncryptedUserData    string                `json:"encrypted_user_data,omitempty"`
	Xrole                string                `json:"xrole,omitempty"`
	AppXrole             string                `json:"app_xrole,omitempty"`
	Description          string                `json:"description,omitempty"`
	FuncVpc              *FuncVpc              `json:"func_vpc,omitempty"`
	MountConfig          *MountConfig          `json:"mount_config,omitempty"`
	StrategyConfig       *StrategyConfig       `json:"strategy_config,omitempty"`
	CustomImage          *CustomImage          `json:"custom_image,omitempty"`
	Package              string                `json:"package"`
	ExtendConfig         string                `json:"extend_config,omitempty"`
	InitHandler          string                `json:"initializer_handler"`
	InitTimeout          *int                  `json:"initializer_timeout"`
	PreStopHandler       string                `json:"pre_stop_handler,omitempty"`
	PreStopTimeout       *int                  `json:"pre_stop_timeout,omitempty"`
	EphemeralStorage     *int                  `json:"ephemeral_storage,omitempty"`
	EnterpriseProjectId  string                `json:"enterprise_project_id,omitempty"`
	LogConfig            *FuncLogConfig        `json:"log_config,omitempty"`
	NetworkController    *NetworkControlConfig `json:"network_controller,omitempty"`
	IsStatefulFunction   *bool                 `json:"is_stateful_function,omitempty"`
	EnableDynamicMemory  *bool                 `json:"enable_dynamic_memory,omitempty"`
	EnableAuthInHeader   *bool                 `json:"enable_auth_in_header,omitempty"`
	DomainNames          string                `json:"domain_names,omitempty"`
	RestoreHookHandler   string                `json:"restore_hook_handler,omitempty"`
	RestoreHookTimeout   *int                  `json:"restore_hook_timeout,omitempty"`
	HeartbeatHandler     string                `json:"heartbeat_handler,omitempty"`
	EnableClassIsolation *bool                 `json:"enable_class_isolation,omitempty"`
	GpuType              string                `json:"gpu_type,omitempty"`
	PeeringCIDR          string                `json:"peering_cidr,omitempty"`
	LtsCustomTag         map[string]string     `json:"lts_custom_tag"`
	EnableLtsLog         *bool                 `json:"enable_lts_log"`
}

type VpcConfig added in v0.9.3

type VpcConfig struct {
	VpcName string `json:"vpc_name,omitempty"`
	VpcID   string `json:"vpc_id,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL