2

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 存储桶来保存构建工件似乎有点愚蠢。

4

2 回答 2

1

您绝对可以通过 S3 进行上传,我在这里有一个这样做的示例:https ://github.com/langford/clj-aws-lambda-example

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

于 2016-12-21T21:17:52.950 回答
1

很抱歉,我无法彻底回答您的问题,但我已尝试部署一个 hello-world clojure 应用程序,因此希望为您指明正确的方向:

  • 登录到您的 AWS 控制台
  • 导航到 Lambda
  • 打开 Hello World 示例应用程序
  • 从下拉菜单中选择 Java 8
  • 直接上传你的 JAR
  • 将 Classpath 填入你的 starter 函数(不要问我为什么;我还没有搞定这个)
  • 单击角色框并按照提示创建默认的推荐角色配置

如果这没有帮助,请告诉我!

于 2016-05-06T21:25:21.953 回答