Documentation
¶
Index ¶
- Constants
- type Context
- type DockerImageBuilder
- type FaaSDriver
- type FnRun
- type Function
- type FunctionError
- type FunctionExecution
- type FunctionResources
- type ImageBuilder
- type InputError
- type Message
- type Middleware
- type Runnable
- type Runner
- type Schema
- type Schemas
- type SecretInjector
- type ServiceInjector
- type Source
- type StackTracer
- type SystemError
- type Validator
Constants ¶
const ( LogsKey = "logs" EventKey = "event" ErrorKey = "error" HTTPContextKey = "httpContext" DeadlineKey = "deadline" )
Function context constants
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Context ¶
type Context map[string]interface{}
Context provides function context
func (Context) GetError ¶ added in v0.1.15
func (ctx Context) GetError() *v1.InvocationError
GetError returns the error from the context
func (Context) SetError ¶ added in v0.1.15
func (ctx Context) SetError(invocationError *v1.InvocationError)
SetError sets the error into the context
type DockerImageBuilder ¶ added in v0.1.13
type DockerImageBuilder struct {
ImageRegistry string
RegistryAuth string
PushImages bool
PullImages bool
// contains filtered or unexported fields
}
DockerImageBuilder builds function images
func NewDockerImageBuilder ¶ added in v0.1.13
func NewDockerImageBuilder(imageRegistry, registryAuth string, docker docker.CommonAPIClient) *DockerImageBuilder
NewDockerImageBuilder is the constructor for the DockerImageBuilder
func (*DockerImageBuilder) BuildImage ¶ added in v0.1.13
func (ib *DockerImageBuilder) BuildImage(ctx context.Context, f *Function, code []byte) (string, error)
BuildImage packages a function into a docker image. It also adds any FaaS specfic image layers
func (*DockerImageBuilder) RemoveImage ¶ added in v0.1.23
func (ib *DockerImageBuilder) RemoveImage(ctx context.Context, f *Function) error
RemoveImage removes a function image from the docker host
type FaaSDriver ¶
type FaaSDriver interface {
// Create creates (or updates, if is already exists) the function in the FaaS implementation.
// name is the name of the function.
// exec defines the function implementation.
Create(ctx context.Context, f *Function) error
// Delete deletes the function in the FaaS implementation.
// f is a reference to function defition.
Delete(ctx context.Context, f *Function) error
// GetRunnable returns a callable representation of a function.
// e is a reference to FunctionExecution.
GetRunnable(e *FunctionExecution) Runnable
}
FaaSDriver manages Serverless functions and allows to create or delete function, as well as to retrieve runnable representation of the function.
type FnRun ¶
type FnRun struct {
entitystore.BaseEntity
FunctionName string `json:"functionName"`
FunctionID string `json:"functionID"`
FaasID string `json:"faasId"`
Blocking bool `json:"blocking"`
Input interface{} `json:"input,omitempty"`
Output interface{} `json:"output,omitempty"`
Secrets []string `json:"secrets,omitempty"`
Services []string `json:"services,omitempty"`
HTTPContext map[string]interface{} `json:"httpContext,omitempty"`
Event *events.CloudEvent `json:"event,omitempty"`
Logs *v1.Logs `json:"logs,omitempty"`
Error *v1.InvocationError `json:"error,omitempty"`
FinishedTime time.Time `json:"finishedTime,omitempty"`
WaitChan chan struct{} `json:"-"`
}
FnRun struct represents single function run
type Function ¶
type Function struct {
entitystore.BaseEntity
FaasID string `json:"faasId"`
SourceURL string `json:"sourceURL"`
Handler string `json:"handler"`
ImageName string `json:"image"`
ImageURL string `json:"imageURL"`
FunctionImageURL string `json:"functionImageURL"`
Schema *Schema `json:"schema,omitempty"`
Secrets []string `json:"secrets,omitempty"`
Services []string `json:"services,omitempty"`
Timeout int64 `json:"timeout,omitempty"`
}
Function struct represents function entity that is stored in entity store
type FunctionError ¶
type FunctionError interface {
AsFunctionErrorObject() interface{}
}
FunctionError represents error caused by the function
type FunctionExecution ¶
type FunctionExecution struct {
Context Context
OrganizationID string
RunID string
FunctionID string
FaasID string
Schemas *Schemas
Secrets []string
Services []string
Cookie string
}
FunctionExecution represents single instance of function execution
type FunctionResources ¶ added in v0.1.21
FunctionResources Memory and CPU
type ImageBuilder ¶ added in v0.1.13
type ImageBuilder interface {
// BuildImage builds a function image and pushes it to the docker registry.
// Returns image full name.
BuildImage(ctx context.Context, f *Function, code []byte) (string, error)
// RemoveImage removes a function image from the docker host
RemoveImage(ctx context.Context, f *Function) error
}
ImageBuilder builds or removes a docker image for a serverless function.
type InputError ¶ added in v0.1.15
type InputError interface {
AsInputErrorObject() interface{}
}
InputError represents user/input error
type Message ¶ added in v0.1.13
type Message struct {
Context Context `json:"context"`
Payload interface{} `json:"payload"`
}
Message contains context and payload for function invocations and events
type Middleware ¶
Middleware allows injecting extra steps for each function execution
type Runner ¶
type Runner interface {
Run(fn *FunctionExecution, in interface{}) (interface{}, error)
}
Runner knows how to execute a function
type Schema ¶
type Schema struct {
In *spec.Schema `json:"in,omitempty"`
Out *spec.Schema `json:"out,omitempty"`
}
Schema struct stores input and output validation schemas
type Schemas ¶
type Schemas struct {
// SchemaIn is the function input validation schema data structure. Can be nil.
SchemaIn interface{}
// SchemaOut is the function output validation schema data structure. Can be nil.
SchemaOut interface{}
}
Schemas represent function validation schemas
type SecretInjector ¶
type SecretInjector interface {
GetMiddleware(organizationID string, secrets []string, cookie string) Middleware
}
SecretInjector injects secrets into function execution
type ServiceInjector ¶ added in v0.1.13
type ServiceInjector interface {
GetMiddleware(organizationID string, services []string, cookie string) Middleware
}
ServiceInjector injects service bindings into function execution
type Source ¶ added in v0.1.22
type Source struct {
entitystore.BaseEntity
Code []byte `json:"code"`
}
Source struct represents function source code that is stored in entity store
type StackTracer ¶ added in v0.1.15
type StackTracer interface {
StackTrace() errors.StackTrace
}
StackTracer is part of the errors pkg public API and returns the error stacktrace
type SystemError ¶ added in v0.1.15
type SystemError interface {
AsSystemErrorObject() interface{}
}
SystemError represents error in the Dispatch infrastructure
type Validator ¶
type Validator interface {
GetMiddleware(schemas *Schemas) Middleware
}
Validator validates function input/output