0
就像标题所说,我想用OpsWorks堆栈注册新的EC2。问题是,命令“register”只能从CLI(shell脚本)运行,而不能从Lambda函数(Python,Java或JS)运行。有没有办法解决这个问题?以编程方式从SDK注册实例到AWS OpsWorks Stack
就像标题所说,我想用OpsWorks堆栈注册新的EC2。问题是,命令“register”只能从CLI(shell脚本)运行,而不能从Lambda函数(Python,Java或JS)运行。有没有办法解决这个问题?以编程方式从SDK注册实例到AWS OpsWorks Stack
看看这个:register_instance Boto3/OpsWork。在注册实例时有两部分,Boto3只能做第二部分。
我们不建议使用此操作来注册实例。 完整注册操作有两个主要步骤:在该实例上安装AWS OpsWorks代理,并使用 注册堆栈。 RegisterInstance只处理第二步。您应该使用AWS CLI注册命令 ,该命令执行整个 注册操作。欲了解更多信息,请参阅注册的 实例与AWS OpsWorks堆栈
要在lambda函数运行CLI,请确保您的拉姆达Exec的角色具有执行OpsWork CLI并调用一些像这样的事情在特权您的蟒蛇Lambda:
import subprocess
subprocess.call(["aws", "--region", "us-east-1", "opsworks", "register-instance", "--stack-id", "<stack-id>"])
查看OpsWorks CLI了解更多信息。
的确,这就是为什么我需要知道是否可以从Lambda运行CLI – Casper
@Casper我已经更新了我的答案。 – helloV
谢谢,但它甚至工作?我如何传递SSH密钥和配置文件?从python,我已经有ssh密钥和访问键作为变量。另外,我可以检索返回输出吗? – Casper