Documentation ¶
Index ¶
- Constants
- type Context
- type DockerImageBuilder
- type Exec
- type FaaSDriver
- type FnRun
- type Function
- type FunctionError
- type FunctionExecution
- type ImageBuilder
- type Message
- type Middleware
- type Runnable
- type Runner
- type Schema
- type Schemas
- type SecretInjector
- type ServiceInjector
- type UserError
- type Validator
Constants ¶
const ( LogsKey = "logs" EventKey = "event" HTTPContextKey = "httpContext" )
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
type DockerImageBuilder ¶ added in v0.1.13
type DockerImageBuilder struct {
// contains filtered or unexported fields
}
DockerImageBuilder builds function images
func NewDockerImageBuilder ¶ added in v0.1.13
func NewDockerImageBuilder(imageRegistry, registryAuth string, docker *docker.Client) *DockerImageBuilder
NewDockerImageBuilder is the constructor for the DockerImageBuilder
func (*DockerImageBuilder) BuildImage ¶ added in v0.1.13
func (ib *DockerImageBuilder) BuildImage(faas, fnID string, exec *Exec) (string, error)
BuildImage packages a function into a docker image. It also adds any FaaS specfic image layers
type Exec ¶
type Exec struct { // Code is the function code, either as readable text or base64 encoded (for .zip and .jar archives) Code string // Main is the function's entry point (aka main function), by default "main" Main string // Image is the function's docker image Image string // Name is the function's name Name string }
Exec includes data required to execute a function
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(f *Function, exec *Exec) error // Delete deletes the function in the FaaS implementation. // f is a reference to function defition. Delete(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 *models.Logs `json:"logs,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"` Code string `json:"code"` Main string `json:"main"` ImageName string `json:"image"` Schema *Schema `json:"schema,omitempty"` Secrets []string `json:"secrets,omitempty"` Services []string `json:"services,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 RunID string FunctionID string FaasID string Schemas *Schemas Secrets []string Services []string Cookie string }
FunctionExecution represents single instance of function execution
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(faas, fnID string, e *Exec) (string, error) }
ImageBuilder builds a docker image for a serverless function.
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(secrets []string, cookie string) Middleware
}
SecretInjector injects secrets into function execution
type ServiceInjector ¶ added in v0.1.13
type ServiceInjector interface {
GetMiddleware(services []string, cookie string) Middleware
}
ServiceInjector injects service bindings into function execution
type UserError ¶
type UserError interface {
AsUserErrorObject() interface{}
}
UserError represents user error
type Validator ¶
type Validator interface {
GetMiddleware(schemas *Schemas) Middleware
}
Validator validates function input/output