lambada, 更热情地编写 AWS Lambda函数的方法

分享于 

3分钟阅读

GitHub

  繁體 雙語
A more passionate way to write AWS Lambda functions
  • 源代码名称:lambada
  • 源代码网址:http://www.github.com/uswitch/lambada
  • lambada源代码文档
  • lambada源代码下载
  • Git URL:
    git://www.github.com/uswitch/lambada.git
    Git Clone代码到本地:
    git clone http://www.github.com/uswitch/lambada
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/uswitch/lambada
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    lambada

    使用clojure创建更热情的AWS Lambda函数。

    当前版本:

    Clojars Project

    用法

    你可以使用 uswitch.lambada.core 提供的deflambdafn 宏定义一个Lambda处理程序:

    (nsexample.lambda (:require [uswitch.lambada.core :refer [deflambdafn]]))
    (deflambdafnexample.lambda.MyLambdaFn [in out ctx]
     (println"OMG I'm running in the cloud!!!111oneone"))

    当这个命名空间是AOT编译时,它将生成一个类调用 example.lambda.MyLambdaFn,它使用参数和主体提供程序来实现AWS的Lambda RequestStreamHandler

    部署的最简单方法是使用leiningen或者引导创建一个 uberjar,然后使用它作为你上传到 AWS Lambda的jar。 假设在 target 中有名为 my-lambda-project.jar的uberjar,以下命令将执行这里任务:

    
    $ aws lambda create-function 
    
    
     --region eu-west-1 
    
    
     --function-name my-lambda-project 
    
    
     --zip-file fileb://$(pwd)/target/my-lambda-project.jar 
    
    
     --role arn:aws:iam::YOUR-AWS-ACCOUNT-ID:role/lambda_basic_execution 
    
    
     --handler example.lambda.MyLambdaFn 
    
    
     --runtime java8 
    
    
     --timeout 15 
    
    
     --memory-size 512
    
    
    ...
    
    
    
    $ aws lambda invoke 
    
    
     --invocation-type RequestResponse 
    
    
     --function-name my-lambda-project 
    
    
     --region eu-west-1 
    
    
     --log-type Tail 
    
    
     --payload '{"some":"input"}' 
    
    
     outfile.txt
    
    
    ...
    
    
    
    
    

    有关示例项目,请参见示例

    许可证

    版权所有 © 2015 Ragnar Dahlen。

    在 Eclipse public 许可证下分发,与Clojure相同。


    相关文章