当前位置:  开发笔记 > 编程语言 > 正文

可以在AWS Lambda函数中编写bash脚本

如何解决《可以在AWSLambda函数中编写bash脚本》经验,为你挑选了4个好方法。

我可以在Lambda函数中编写一个bash脚本吗?我在aws文档中读到它可以执行用Python,NodeJS和Java 8编写的代码.

在一些文件中提到可能使用Bash但没有具体证据支持它或任何例子



1> 小智..:

可能有帮助的东西,我正在使用Node来调用bash脚本.我使用以下代码作为处理程序将脚本和nodejs文件以zip格式上传到lambda.

exports.myHandler = function(event, context, callback) {
  const execFile = require('child_process').execFile;
  execFile('./test.sh', (error, stdout, stderr) => {
    if (error) {
      callback(error);
    }
    callback(null, stdout);
  });
}


2> Thomas L...:

正如您所提到的,AWS没有提供使用Bash编写Lambda函数的方法.

要解决它,如果你真的需要bash函数,你可以用任何语言"包装"你的bash脚本.

以下是Java的一个示例:

Process proc = Runtime.getRuntime().exec("./your_script.sh");  

根据您的业务需求,您应该考虑使用本机语言(Python,NodeJS,Java)来避免性能损失.



3> mturatti..:

AWS最近宣布了“ Lambda运行时API和Lambda层”,这两个新功能使开发人员能够构建自定义运行时。因此,现在可以直接在Lambda中甚至运行bash脚本而不会受到黑客攻击。

由于这是一项非常新的功能(2018年11月),因此尚无太多资料,仍然需要完成一些手动工作,但是您可以查看此Github存储库作为示例开始(免责声明:我没有测试)。在bash中的示例处理程序下面:

function handler () {
  EVENT_DATA=$1
  echo "$EVENT_DATA" 1>&2;
  RESPONSE="{\"statusCode\": 200, \"body\": \"Hello World\"}"
  echo $RESPONSE
}

这实际上为在Lambda中运行任何编程语言提供了可能性。这是有关发布自定义Lambda运行时的AWS教程。



4> Naveen Vijay..:

我只是能够uname使用Amazon Lambda - Python 捕获shell命令输出.

下面是代码库.

from __future__ import print_function

import json
import commands

print('Loading function')

def lambda_handler(event, context):
    print(commands.getstatusoutput('uname -a'))

它显示了输出

START RequestId: 2eb685d3-b74d-11e5-b32f-e9369236c8c6 Version: $LATEST
(0, 'Linux ip-10-0-73-222 3.14.48-33.39.amzn1.x86_64 #1 SMP Tue Jul 14 23:43:07 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux')
END RequestId: 2eb685d3-b45d-98e5-b32f-e9369236c8c6
REPORT RequestId: 2eb685d3-b74d-11e5-b31f-e9369236c8c6  Duration: 298.59 ms Billed Duration: 300 ms     Memory Size: 128 MB Max Memory Used: 9 MB   

有关更多信息,请查看链接 - https://aws.amazon.com/blogs/compute/running-executables-in-aws-lambda/

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有