实现Lambda函数以通过SSM运行命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现Lambda函数以通过SSM运行命令相关的知识,希望对你有一定的参考价值。

我在ssm中有一个运行文档,可以在服务器上安装一些代理。现在,我想通过在启动新实例时运行这些文档来自动执行此任务。我想通过aws lambda(在启动新实例时实现运行命令的脚本)来实现这一点。任何帮助将不胜感激!

答案

不幸的是,这是一个非常广泛的问题,一个无法简单回答的问题。

我首先建议您决定使用哪种语言编写lambda函数,目前有.NET,python,Node.js,Java和Go。

Node.js是一种相当容易使用的语言,因为它得到了很好的支持,你可以在内联的AWS代码编辑器中编写它。

我建议在控制台中创建一个新的lambda函数时,查看aws提供的模板Node.js lambda函数。这将有助于您了解如何将它们组合在一起以及可以使用的各种方法。如果您掌握了这些内容并发现它们很容易理解,那么您可以查看Node.js SSM api,它应该在lambda运行时默认可用,并尝试运行一些命令。

当然,如果你不能胜任Node.js并且主要使用另一种语言,那么这是一个完全不同的问题。

在线编写lambdas有很多资源和示例,可以很容易地找到它们。

另一答案

为此使用cloudwatch规则。

EC2 Instance State-change Notificationrunning状态创建一个cloudwatch规则。使用lambda作为目标,并从实例上的lambda(通过API)调用SSM命令。该事件将包含您需要的详细信息,例如实例ID。希望您熟悉AWS API以及如何使用它。您需要为Lambda提供适当的IAM角色才能使其正常工作。此外,请记住Cloudwatch事件是特定于区域的,并且只能在同一区域中调用lambda。

enter image description here

以上是关于实现Lambda函数以通过SSM运行命令的主要内容,如果未能解决你的问题,请参考以下文章

从 SSM 参数生成文件并包含在无服务器框架 lambda 包中

如何使用AWS Lambda函数在本地系统上执行文件

Java Lambda

在 AWS Lambda 中担任角色,在 SSM 调用时拒绝访问

触发物化视图刷新 - AWS Lambda

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?