amazon-web-services
  • jar
  • clojure
  • aws-lambda
  • amazonica
  • 2016-05-05 46 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

    相關問題