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
ConcurrencyConfig configures function concurrency.
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 ¶
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 ¶
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
}
Serverless is the interface that serverless provider implementations must satisfy.