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