簡體   English   中英

如何從 Clojure 項目或 jar 創建 AWS Lambda 函數?

[英]How to create an AWS Lambda function from a Clojure project or a jar?

針對 AWS Lambda API 的 Amazonica 測試( 鏈接)顯示了從 Javascript blob 創建 Lambda 函數的簡單示例( role是可以創建 Lambda 的角色的 ARN 字符串):

(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? 簡單地將文件流或 jar 的二進制字符串傳遞給create-function是一個壞主意,即使它確實有效?

我想我可以使用 AWS CLI 的 bash 腳本從 jar 創建一個 Lambda,但首先我想檢查是否有一種已知的直接方法可以在 Clojure 中執行此操作。

另一種選擇是將 jar 上傳到 S3 存儲桶,然后根據此處的示例讓 CloudFormation 腳本部署它。 不過,當 Lambda 將自己存儲它們時,擁有一個 S3 存儲桶只是為了保存構建工件,這似乎有點愚蠢。

很抱歉,我無法徹底回答您的問題,但我已嘗試部署一個 hello-world clojure 應用程序,因此希望為您指明正確的方向:

  • 登錄您的 AWS 控制台
  • 導航到 Lambda
  • 打開 Hello World 示例應用程序
  • 從下拉菜單中選擇 Java 8
  • 直接上傳你的 JAR
  • 將 Classpath 填寫到您的 starter 函數中(不要問我為什么;我也沒有弄明白)
  • 單擊“角色”框並按照提示創建默認的推薦角色配置

如果這沒有幫助,請告訴我!

你絕對可以通過 S3 上傳,我在這里有一個例子: https : //github.com/langford/clj-aws-lambda-example

對這個方法也很感興趣。 我同意 S3 的進站似乎可以移除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM