driver

package
v1.6.3 Latest Latest
Warning

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

Go to latest
Published: May 23, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package driver defines the interface for serverless function service implementations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Alias added in v1.2.0

type Alias struct {
	FunctionName    string
	Name            string
	FunctionVersion string
	Description     string
	RoutingConfig   *AliasRoutingConfig
	AliasARN        string
	CreatedAt       string
}

Alias represents a function alias.

type AliasConfig added in v1.2.0

type AliasConfig struct {
	FunctionName    string
	Name            string
	FunctionVersion string
	Description     string
	RoutingConfig   *AliasRoutingConfig // for weighted aliases
}

AliasConfig configures a function alias.

type AliasRoutingConfig added in v1.2.0

type AliasRoutingConfig struct {
	AdditionalVersion string
	Weight            float64 // 0.0-1.0, traffic percentage to additional version
}

AliasRoutingConfig defines weighted routing between versions.

type ConcurrencyConfig added in v1.2.0

type ConcurrencyConfig struct {
	FunctionName                 string
	ReservedConcurrentExecutions int
}

ConcurrencyConfig configures function concurrency.

type EventSourceMappingConfig added in v1.4.0

type EventSourceMappingConfig struct {
	EventSourceArn   string
	FunctionName     string
	BatchSize        int
	Enabled          bool
	StartingPosition string // "LATEST", "TRIM_HORIZON"
}

EventSourceMappingConfig describes an event source mapping to create.

type EventSourceMappingInfo added in v1.4.0

type EventSourceMappingInfo struct {
	UUID             string
	EventSourceArn   string
	FunctionName     string
	BatchSize        int
	Enabled          bool
	StartingPosition string
	State            string // "Enabled", "Disabled", "Creating", "Deleting"
	CreatedAt        string
}

EventSourceMappingInfo describes an event source mapping.

type FunctionConfig

type FunctionConfig struct {
	Name        string
	Runtime     string
	Handler     string
	Memory      int // MB
	Timeout     int // seconds
	Environment map[string]string
	Tags        map[string]string
}

FunctionConfig describes a serverless function to create.

type FunctionInfo

type FunctionInfo struct {
	Name         string
	ARN          string
	Runtime      string
	Handler      string
	Memory       int
	Timeout      int
	State        string
	Environment  map[string]string
	Tags         map[string]string
	LastModified string
}

FunctionInfo describes a serverless function.

type FunctionVersion added in v1.2.0

type FunctionVersion struct {
	FunctionName string
	Version      string // "1", "2", etc. or "$LATEST"
	Description  string
	CodeSHA256   string
	CreatedAt    string
}

FunctionVersion represents a published version of a function.

type HandlerFunc

type HandlerFunc func(ctx context.Context, payload []byte) ([]byte, error)

HandlerFunc is a function handler that processes invocations.

type InvokeInput

type InvokeInput struct {
	FunctionName string
	Payload      []byte
	InvokeType   string // "RequestResponse" or "Event"
}

InvokeInput configures a function invocation.

type InvokeOutput

type InvokeOutput struct {
	StatusCode int
	Payload    []byte
	Error      string
}

InvokeOutput is the result of a function invocation.

type LayerConfig added in v1.2.0

type LayerConfig struct {
	Name               string
	Description        string
	Content            []byte
	CompatibleRuntimes []string
}

LayerConfig configures a new layer version.

type LayerVersion added in v1.2.0

type LayerVersion struct {
	Name               string
	Version            int
	Description        string
	ContentSHA256      string
	ContentSize        int64
	CompatibleRuntimes []string
	CreatedAt          string
	ARN                string
}

LayerVersion represents a published layer version.

type ProvisionedConcurrencyConfig added in v1.2.0

type ProvisionedConcurrencyConfig struct {
	FunctionName string
	Qualifier    string // version or alias
	Provisioned  int
}

ProvisionedConcurrencyConfig configures provisioned concurrency.

type Serverless

type Serverless interface {
	CreateFunction(ctx context.Context, config FunctionConfig) (*FunctionInfo, error)
	DeleteFunction(ctx context.Context, name string) error
	GetFunction(ctx context.Context, name string) (*FunctionInfo, error)
	ListFunctions(ctx context.Context) ([]FunctionInfo, error)
	UpdateFunction(ctx context.Context, name string, config FunctionConfig) (*FunctionInfo, error)
	Invoke(ctx context.Context, input InvokeInput) (*InvokeOutput, error)
	RegisterHandler(name string, handler HandlerFunc)

	// Versions
	PublishVersion(ctx context.Context, functionName, description string) (*FunctionVersion, error)
	ListVersions(ctx context.Context, functionName string) ([]FunctionVersion, error)

	// Aliases
	CreateAlias(ctx context.Context, config AliasConfig) (*Alias, error)
	UpdateAlias(ctx context.Context, config AliasConfig) (*Alias, error)
	DeleteAlias(ctx context.Context, functionName, aliasName string) error
	GetAlias(ctx context.Context, functionName, aliasName string) (*Alias, error)
	ListAliases(ctx context.Context, functionName string) ([]Alias, error)

	// Layers
	PublishLayerVersion(ctx context.Context, config LayerConfig) (*LayerVersion, error)
	GetLayerVersion(ctx context.Context, name string, version int) (*LayerVersion, error)
	ListLayerVersions(ctx context.Context, name string) ([]LayerVersion, error)
	DeleteLayerVersion(ctx context.Context, name string, version int) error
	ListLayers(ctx context.Context) ([]LayerVersion, error)

	// Concurrency
	PutFunctionConcurrency(ctx context.Context, config ConcurrencyConfig) error
	GetFunctionConcurrency(ctx context.Context, functionName string) (*ConcurrencyConfig, error)
	DeleteFunctionConcurrency(ctx context.Context, functionName string) error

	// Event Source Mappings
	CreateEventSourceMapping(ctx context.Context, config EventSourceMappingConfig) (*EventSourceMappingInfo, error)
	DeleteEventSourceMapping(ctx context.Context, uuid string) error
	GetEventSourceMapping(ctx context.Context, uuid string) (*EventSourceMappingInfo, error)
	ListEventSourceMappings(ctx context.Context, functionName string) ([]EventSourceMappingInfo, error)
	UpdateEventSourceMapping(ctx context.Context, uuid string, config EventSourceMappingConfig) (*EventSourceMappingInfo, error)
}

Serverless is the interface that serverless provider implementations must satisfy.

Jump to

Keyboard shortcuts

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