2017-02-22 107 views
1

我想設置一個EC2實例變量與從我在一個變量instanceId想過去作爲資源添加標籤上的Python腳本以下電話:傳遞參數到AWS CLI命令

subprocess.call('aws ec2 create-tags --resources $instanceId --tags "Key=somekey, Value=someval"') 

但我得到這個錯誤:

An error occurred (MissingParameter) when calling the CreateTags operation: The request must contain the parameter resourceIdSet 
255 

然而,當我打印出來instanceId,我看到了實例的正確的ID,因此一定有什麼毛病我傳遞變量的方式。這是否有不同的約定?

+0

你運行的是舊版本的AWS CLI工具?運行'aws --version'來查看你安裝的版本。 –

+0

按照文檔https://docs.python.org/2/library/subprocess.html#using-the-subprocess-module,你應該叫'subprocess.call()'使用參數列表 – ZdaR

回答

1

你的可變$instanceId在您的AWS CLI命令最終會被一個shell變量,並且不會從Python代碼取代。

所以,如果$instanceId是一個Python的變量,你可能需要做一些事情,如:

subprocess.call('aws ec2 create-tags --resources ' + $instanceId + ' --tags "Key=somekey, Value=someval"') 

注:我不是一個Python開發,所以這是一個在黑暗中刺傷。