本文整理汇总了Golang中github.com/apex/apex/function.Function类的典型用法代码示例。如果您正苦于以下问题:Golang Function类的具体用法?Golang Function怎么用?Golang Function使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Function类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Run
// Run adds the shim when runtime is "golang".
func (p *Plugin) Run(hook function.Hook, fn *function.Function) error {
if hook != function.OpenHook || fn.Runtime != "golang" {
return nil
}
fn.Shim = true
fn.Runtime = "nodejs"
fn.Hooks.Build = "GOOS=linux GOARCH=amd64 go build -o main main.go"
fn.Hooks.Clean = "rm -f main"
return nil
}
示例2: Open
// Open adds python defaults.
func (p *Plugin) Open(fn *function.Function) error {
if fn.Runtime != "python" {
return nil
}
fn.Runtime = "python2.7"
if fn.Handler == "" {
fn.Handler = "main.handle"
}
return nil
}
示例3: Open
// Open adds python defaults.
func (p *Plugin) Open(fn *function.Function) error {
if fn.Runtime != Runtime {
return nil
}
fn.Runtime = RuntimeCanonical
if fn.Handler == "" {
fn.Handler = "main.handle"
}
return nil
}
示例4: Run
// Run specifies python defaults.
func (p *Plugin) Run(hook function.Hook, fn *function.Function) error {
if hook != function.OpenHook || fn.Runtime != "python" {
return nil
}
fn.Runtime = "python2.7"
if fn.Handler == "" {
fn.Handler = "main.handle"
}
return nil
}
示例5: Open
// Open adds the shim and golang defaults.
func (p *Plugin) Open(fn *function.Function) error {
if fn.Runtime != Runtime {
return nil
}
if fn.Hooks.Build == "" {
fn.Hooks.Build = "GOOS=linux GOARCH=amd64 go build -o main main.go"
}
fn.Shim = true
fn.Runtime = nodejs.Runtime
fn.Hooks.Clean = "rm -f main"
return nil
}
示例6: Open
// Open adds java defaults.
func (p *Plugin) Open(fn *function.Function) error {
if fn.Runtime != Runtime {
return nil
}
fn.Runtime = RuntimeCanonical
if fn.Handler == "" {
fn.Handler = "lambda.Main::handler"
}
fn.Hooks.Clean = "mvn clean"
return nil
}
示例7: Build
// Build injects a script for loading the environment.
func (p *Plugin) Build(fn *function.Function, zip *archive.Archive) error {
if len(fn.Environment) == 0 {
return nil
}
fn.Log.Debug("injecting prelude")
var buf bytes.Buffer
file := strings.Split(fn.Handler, ".")[0]
method := strings.Split(fn.Handler, ".")[1]
err := prelude.Execute(&buf, struct {
EnvFile string
HandleFile string
HandleMethod string
}{
EnvFile: ".env.json",
HandleFile: file,
HandleMethod: method,
})
if err != nil {
return err
}
fn.Handler = "_apex_index.handle"
return zip.AddBytes("_apex_index.js", buf.Bytes())
}
示例8: Build
// Build injects a script for loading the environment.
func (p *Plugin) Build(fn *function.Function, zip *archive.Archive) error {
if fn.Runtime != RuntimeCanonical || len(fn.Environment) == 0 {
return nil
}
fn.Log.Debug("injecting prelude")
var buf bytes.Buffer
file := strings.Split(fn.Handler, ".")[0]
method := strings.Split(fn.Handler, ".")[1]
err := prelude.Execute(&buf, struct {
EnvFile string
HandleFile string
HandleMethod string
}{
EnvFile: env.FileName,
HandleFile: file,
HandleMethod: method,
})
if err != nil {
return err
}
fn.Handler = "_apex_main.handle"
return zip.AddBytesMTime("_apex_main.py", buf.Bytes(), time.Unix(0, 0))
}
示例9: Build
// Build injects a script for loading the environment.
func (p *Plugin) Build(fn *function.Function, zip *archive.Zip) error {
if fn.Runtime != RuntimeCanonical || len(fn.Environment) == 0 {
return nil
}
if len(strings.Split(fn.Handler, ".")) < 2 {
return errors.New("lambda requires handler function name to be of the format 'filename.function_name'")
}
fn.Log.Debug("injecting prelude")
var buf bytes.Buffer
file := strings.Split(fn.Handler, ".")[0]
method := strings.Split(fn.Handler, ".")[1]
err := prelude.Execute(&buf, struct {
EnvFile string
HandleFile string
HandleMethod string
}{
EnvFile: env.FileName,
HandleFile: file,
HandleMethod: method,
})
if err != nil {
return err
}
fn.Handler = "_apex_main." + method
return zip.AddBytes("_apex_main.py", buf.Bytes())
}
示例10: Open
// Open adds java defaults. No clean operation is implemented, as it is
// assumed that the build tool generating the fat JAR will handle that workflow
// on its own.
func (p *Plugin) Open(fn *function.Function) error {
if fn.Runtime != Runtime {
return nil
}
if fn.Handler == "" {
fn.Handler = "lambda.Main::handler"
}
if len(fn.IgnoreFile) == 0 {
// Since we're deploying a fat jar, we don't need anything else.
fn.IgnoreFile = []byte(`
*
!**/apex.jar
`)
}
return nil
}
示例11: Open
// Open adds nodejs defaults.
func (p *Plugin) Open(fn *function.Function) error {
if fn.Runtime != "nodejs" {
return nil
}
if fn.Handler == "" {
fn.Handler = "index.handle"
}
return nil
}
示例12: Run
// Run specifies nodejs defaults.
func (p *Plugin) Run(hook function.Hook, fn *function.Function) error {
if hook != function.OpenHook || fn.Runtime != "nodejs" {
return nil
}
if fn.Handler == "" {
fn.Handler = "index.handle"
}
return nil
}
示例13: Open
// Open adds nodejs defaults.
func (p *Plugin) Open(fn *function.Function) error {
if !p.runtimeSupported(fn) {
return nil
}
if fn.Handler == "" {
fn.Handler = "index.handle"
}
return nil
}
示例14: Run
// Run checks for files in the function directory to infer its runtime.
func (p *Plugin) Run(hook function.Hook, fn *function.Function) error {
if hook != function.OpenHook || fn.Runtime != "" {
return nil
}
fn.Log.Debug("inferring runtime")
for name, runtime := range p.Files {
if _, err := os.Stat(filepath.Join(fn.Path, name)); err == nil {
fn.Log.WithField("runtime", runtime).Debug("inferred runtime")
fn.Runtime = runtime
return nil
}
}
return nil
}
示例15: Build
// Build adds the jar contents to zipfile.
func (p *Plugin) Build(fn *function.Function, zip *archive.Zip) error {
if fn.Runtime != Runtime {
return nil
}
fn.Runtime = RuntimeCanonical
fn.Log.Debugf("searching for JAR (%s) in directories: %s", jarFile, strings.Join(jarSearchPaths, ", "))
expectedJarPath := findJar(fn.Path)
if expectedJarPath == "" {
return errors.New("Expected jar file not found")
}
fn.Log.Debugf("found jar path: %s", expectedJarPath)
fn.Log.Debug("appending compiled files")
reader, err := azip.OpenReader(expectedJarPath)
if err != nil {
return err
}
defer reader.Close()
for _, file := range reader.File {
r, err := file.Open()
if err != nil {
return err
}
b, err := ioutil.ReadAll(r)
if err != nil {
return err
}
r.Close()
zip.AddBytes(file.Name, b)
}
return nil
}