amazon-web-services
  • jar
  • clojure
  • aws-lambda
  • amazonica
  • 2016-05-05 45 views 2 likes 
    2

    的莲测试的AWS LAMBDA API(link)是从一个Javascript BLOB创建lambda函数的一个简单的例子(role是一个角色的ARN字符串,可以创建Lambda表达式):如何从Clojure项目或jar中创建AWS Lambda函数?

    (def handler "exports.helloWorld = function(event, context) { 
            console.log('value1 = ' + event.key1) 
            console.log('value2 = ' + event.key2) 
            console.log('value3 = ' + event.key3) 
            context.done(null, 'Hello World') 
           }") 
    
    (create-function :role role :function handler) 
    

    有谁知道create-function是否可以从jar中创建Lambda?简单地将文件流或二进制字符串传递给create-function是一个坏主意,即使它确实有效?

    我想我可以在AWS CLI中使用bash脚本从jar中创建一个lambda,但首先我想检查一下在Clojure中是否有一个已知的简单方法。

    另一种选择是将jar上传到S3存储桶,然后让CloudFormation脚本部署它,基于示例here。看起来有点愚蠢,因为有一个S3存储桶只是为了容纳构建物,而Lambda会自己存储它们。

    回答

    1

    你绝对可以做到通过S3上传,我有这样的一个作为例子:https://github.com/langford/clj-aws-lambda-example

    在这种方法也很感兴趣。我同意在S3中的进站似乎可以移除。

    +2

    如果这个例子发生任何事情,相关的工具是来自https://github.com/mhjort/clj-lambda-utils的'lein lambda'。看起来像是一个很好的解决方案,下次我与Lambdas合作时,我会尝试一下。 –

    1

    我很抱歉,我不能完全回答你的问题,但我试过 部署你好世界Clojure的应用程序,所以希望你指出 正确的方向:

    • 登录到您的AWS控制台
    • 导航到LAMBDA
    • 开拓的Hello World示例应用程序
    • 从下拉菜单中选择Java 8
    • 直接上传JAR
    • 填入Classpath到你的入门函数(不要问我为什么;我还没有得到这个权利又或者)
    • 点击角色框,然后按照提示创建默认配置reccomended

    如果这是没有帮助的,请让我知道角色!

    +0

    直接jar上传方法最终失败,因为你的jar变得越来越大。我不记得确切的门槛值,但当你找出S3时,它会突然变得有点工作。 – Michael

    相关问题