2015-09-30 109 views
10

是否有可能在python中使用boto3創建一個ec2實例? Boto3文件在這裏沒有幫助,我找不到任何幫助文件在線。請提供一些示例代碼/鏈接。如何使用boto3創建一個ec2實例

回答

20

的API已經改變了,但它就在那裏的文檔中

# Boto 3 
ec2.create_instances(ImageId='<ami-image-id>', MinCount=1, MaxCount=5) 

鏈接到文件: http://boto3.readthedocs.org/en/latest/guide/migrationec2.html#launching-new-instances

+0

您是否知道是否有關鍵字參數來指定安全組?這樣我可以創建實例,並設置正確的安全組,讓我ssh進入服務器。 – applecider

+2

它應該接受'SecurityGroups = ['secgroup',..]'關鍵字參數。這個[issue](https://github.com/boto/boto3/issues/136)似乎表明'create_instances'在後臺運行經典的boto2'run_instances',所以'run_instances'的原始參數應該是有效的。看到[文檔](http://botocore.readthedocs.org/en/latest/reference/services/ec2.html#EC2.Client.run_instances) – gbs

+0

感謝隊友,會給它一個鏡頭 – applecider

0

你真正想在文檔中找到的鏈接是create_instances() method of the ServiceResource object。這是對象的,如果你創建一個EC2資源這樣您所呼叫的類型:

s = boto3.Session(region_name="us-west-1") 
ec2 = s.resource('ec2') 
... 
instance = ec2.create_instances(**y_kwargs) 

這包含了更詳細的例子和可用參數列表較長。

您也可以爲正在使用AWS命令行界面已經運行AWS實例參數值:

$ aws ec2 describe-instances 

這會打印出從相關參數可以被提取,並傳遞到create_instances()方法的JSON文件。 (或者,您可以使用boto客戶端並撥打describe_instances() method。)

(注意:如果您想知道客戶端和資源之間有什麼不同,它們爲相同目的提供不同目的 - 客戶端較低級別的接口,而資源是較高級別的接口。)